2016-07-21 3 views
1

Problematische

CHKDSK lief, als meine Maschine neu gestartet, und ein paar Sachen angezeigt. Problem ist, ich habe keine Ahnung was es angezeigt hat, da es dann fortgefahren hat, die Maschine neu zu starten, als es fertig war. Wie bekomme ich es zu stoppen, Pause oder sonst lassen Sie mich sehen, was es getan hat?Wie kann ich die Ergebnisse eines CHKDSK erhalten, die beim Booten ausgeführt werden?

chkdsk kann nicht ausgeführt werden, weil das Volume von einem anderen Prozess verwendet wird bedeuten?, Muss CHKDSK exklusiven Zugriff auf die Platte es überprüft hat, wenn es Fixes oder Reparaturen angewiesen worden, zu versuchen. Wenn diese Festplatte Ihr Windows-Laufwerk (C :) ist, kann CHKDSK keinen exklusiven Zugriff haben, da Windows dieses Laufwerk verwendet, um Ihr System zu starten.

enter image description here

Wenn wir neu starten, wird die CHKDSK bevor Windows ausgeführt wird, geladen.

enter image description here

CHKDSK läuft, wie es normalerweise der Fall ist, und wenn es abgeschlossen ist, es startet das System neu - was natürlich keine Fortschritte oder Ergebnisse verursacht, die auf dem Bildschirm zu verschwinden angezeigt worden sein könnte.

Um ein hilfreiches Werkzeug für die Wartung meiner Festplatten zu erstellen, zu überprüfen, zu beheben und reparieren sie für Fehler.

Ich habe diese Charge

@echo off 
Title Check Disk drives for errors and fix them by Hackoo 2016 
mode con cols=67 lines=5 & Color 0A 
::::::::::::::::::::::::::::::::::::::::: 
:: Automatically check & get admin rights 
::::::::::::::::::::::::::::::::::::::::: 
set "TmpLog=%Tmp%\TmpLog.txt" 
set "Log=%~dp0%computername%_%~n0.txt" 
If Exist "%TmpLog%" Del "%TmpLog%" 
If exist "%Log%" Del "%Log%" 
REM --> Check for permissions 
Reg query "HKU\S-1-5-19\Environment" >nul 2>&1 
REM --> If error flag set, we do not have admin. 
if '%errorlevel%' NEQ '0' (
Echo. 
ECHO      ************************************** 
ECHO       Running Admin shell... Please wait... 
ECHO      ************************************** 

    goto UACPrompt 
) else (goto gotAdmin) 

:UACPrompt 
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" 
    set params = %*:"="" 
    echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" 

    "%temp%\getadmin.vbs" 
    del "%temp%\getadmin.vbs" 
    exit /B 

:gotAdmin 
:::::::::::::::::::::::::::: 
::   START   :: 
:::::::::::::::::::::::::::: 
(Echo Scan started @ & Date /T & Time /T & echo ************************) > "%TmpLog%" 
setlocal ENABLEDELAYEDEXPANSION 
for /f "tokens=2" %%i in ('wmic logicaldisk where "drivetype=3" ^|find /i ":"') do (
    set "fix=%%i" 
     Call :Affich !fix! 
    (
     echo !fix! Drive 
     echo ************************ 
     echo(
     (echo O 
     echo Y) | CHKDSK !fix! /f 
     echo(
     echo ************************ 
    )>> "%TmpLog%" 
) 
EndLocal 
Goto Question 
Exit /b 

:Question 
(echo Scan finished @ & Date /T & Time /T & echo ************************)>> "%TmpLog%" 
CMD /U /C Type "%TmpLog%" > "%Log%" 
If Exist "%TmpLog%" Del "%TmpLog%" 
(
    echo Answ = MsgBox("Did you want to reboot the computer to complete the scanning ?",VbYesNo+VbQuestion,"Reboot the computer to check hard disk drives for errors by Hackoo"^) 
    echo If Answ = VbYes then 
    echo  wscript.Quit(0^) 
    echo Else 
    echo  wscript.Quit(1^) 
    echo End If 
)>"%tmp%\%~n0.vbs" 

Cscript /nologo "%tmp%\%~n0.vbs" 
IF "%errorlevel%" EQU "1" (start "" "%Log%" & Exit) else (goto Shutdown) 

:Shutdown 
echo(
cls 
echo(
echo  Save your work - Reboot of your computer in 20 seconds 
echo(
echo Enregistrer vos documents - Redemarrage du PC dans 20 seconds 
Shutdown.exe /r /t 20 /c "Enregistrer vos documents - Redemarrage du PC dans 20 secondes" 
start "" %Log% 
pause>nul 
exit /b 

:Affich 
Cls 
echo(
echo    *********************************** 
Echo     Please wait a while Scanning "%~1" 
echo    *********************************** 
Timeout /T 2 /nobreak>nul 
exit /b 

Also, meine Frage ist: Wie kann ich die Ergebnisse einer CHKDSK erhalten, die durch Chargen- oder Powershell auf Start ausgeführt?

+0

Für wer diese Frage downvote sag mir warum? – Hackoo

+1

Nicht sicher, aber das Protokoll befindet sich möglicherweise im Ereignisprotokoll des Systems ... Vielleicht finden Sie die Antwort [hier] (https://support.microsoft.com/en-us/kb/272244) oder [hier] (https : //social.technet.microsoft.com/Forums/windowsserver/en-US/7e03326d-126a-4801-934a-c979acb53ebf/what-is-the-location-of-the-chkdskexe-log-file-in-both -windows-7-and-windows-xp? forum = w7itprogeneral) ... – aschipfl

+1

Wie auch immer, +1 für Ihre Bemühungen und für eine schöne Partie, die Sie getan haben. Und ja, IMHO ist deine Frage wirklich relevant. Glückwunsch. – statosdotcom

Antwort

0

ich die Antwort gefunden here:

get-winevent -FilterHashTable @{logname="Application"; id="1001"}| ?{$_.providername –match "wininit"} | fl timecreated, message | out-file Desktop\CHKDSKResults.txt 

Im Batch-Datei, die wir so tun können:

@echo off 
set "Log=%tmp%\CHKDSKResults.txt" 
If Exist "%Log%" del "%Log%" 
Powershell -Command "& "Get-winevent -FilterHashTable @{logname='Application'; id='1001'}^|?{$_.providername -match 'wininit'} ^| fl timecreated, message ^| out-file '%Log%'" 
Start "" "%Log%" 

EDIT: Am 27/07/2016 Der endgültige Code:

@echo off 
Title Check Disk drives for errors and fix them by Hackoo 2016 
mode con cols=67 lines=5 & Color 0A 
::::::::::::::::::::::::::::::::::::::::: 
:: Automatically check & get admin rights 
::::::::::::::::::::::::::::::::::::::::: 
set "TmpLog=%Tmp%\TmpLog.txt" 
set "Log=%~dp0%computername%_%~n0.txt" 
set "MyVBSFile=%~dp0%~n0_On_Boot.vbs" 
set "Value=CHKDSK_ON_BOOT" 
Set "Key=HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce" 
If Exist "%TmpLog%" Del "%TmpLog%" 
If exist "%Log%" Del "%Log%" 
REM --> Check for permissions 
Reg query "HKU\S-1-5-19\Environment" >nul 2>&1 
REM --> If error flag set, we do not have admin. 
if '%errorlevel%' NEQ '0' (
Echo. 
ECHO      ************************************** 
ECHO       Running Admin shell... Please wait... 
ECHO      ************************************** 

    goto UACPrompt 
) else (goto gotAdmin) 

:UACPrompt 
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" 
    set params = %*:"="" 
    echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" 

    "%temp%\getadmin.vbs" 
    del "%temp%\getadmin.vbs" 
    exit /B 

:gotAdmin 
:::::::::::::::::::::::::::: 
::   START   :: 
:::::::::::::::::::::::::::: 
(Echo Scan started @ & Date /T & Time /T & echo ************************) > "%TmpLog%" 
setlocal ENABLEDELAYEDEXPANSION 
for /f "tokens=2" %%i in ('wmic logicaldisk where "drivetype=3" ^|find /i ":"') do (
    set "fix=%%i" 
     Call :Affich !fix! 
    (
     echo !fix! Drive 
     echo ************************ 
     echo(
     (echo O 
     echo Y) | CHKDSK !fix! /f 
     echo(
     echo ************************ 
    )>> "%TmpLog%" 
) 
EndLocal 
Goto Question 
Exit /b 
::****************************************************************** 
:Question 
(echo Scan finished @ & Date /T & Time /T & echo ************************)>> "%TmpLog%" 
CMD /U /C Type "%TmpLog%" > "%Log%" 
If Exist "%TmpLog%" Del "%TmpLog%" 
(
    echo Answ = MsgBox("Did you want to reboot the computer to complete the scanning ?",VbYesNo+VbQuestion,"Reboot the computer to check hard disk drives for errors by Hackoo"^) 
    echo If Answ = VbYes then 
    echo  wscript.Quit(0^) 
    echo Else 
    echo  wscript.Quit(1^) 
    echo End If 
)>"%tmp%\%~n0.vbs" 

Cscript /nologo "%tmp%\%~n0.vbs" 
IF "%errorlevel%" EQU "1" (goto AddKey) else (goto Shutdown) 
::****************************************************************** 
:Shutdown 
echo(
cls 
echo(
echo  Save your work - Reboot of your computer in 120 seconds 
echo(
echo Enregistrer vos documents - Redemarrage du PC dans 120 seconds 
Call:AddKey && Shutdown.exe /r /t 120 /c "Enregistrer vos documents - Redemarrage du PC dans 120 secondes" 
pause>nul 
exit /b 
::****************************************************************** 
:Affich 
Cls 
echo(
echo    *********************************** 
Echo     Please wait a while Scanning "%~1" 
echo    *********************************** 
Timeout /T 2 /nobreak>nul 
exit /b 
::****************************************************************** 
:AddKey 
reg query "%key%" /v "%Value%" >nul 2>&1 
If "%errorlevel%" EQU "0" (Goto :EOF 
    ) Else (
    reg add "%Key%" /v "%Value%" /t REG_SZ /d "%MyVBSFile%">nul 
    (
     echo Option Explicit 
     echo 'Run as Admin 
     echo If Not WScript.Arguments.Named.Exists("elevate"^) Then 
     echo CreateObject("Shell.Application"^).ShellExecute DblQuote(WScript.FullName^) _ 
     echo , DblQuote(WScript.ScriptFullName^) ^& " /elevate", "", "runas", 1 
     echo  WScript.Quit 
     echo End If 
     echo Dim ws,PSCommand,LogFile,ret 
     echo LogFile = Left(Wscript.ScriptFullName,InstrRev(Wscript.ScriptFullName, "."^)^) ^& "txt" 
     echo set ws = createobject("wscript.shell"^) 
     echo PSCommand = "cmd /c Powershell -Command ""& ""Get-winevent -FilterHashTable @{logname='Application'; id='1001'}^|?{$_.providername -match 'wininit'} ^| fl timecreated, message ^| out-file "^& SimpleQuote(LogFile^) ^&"" 
     echo ret = ws.run(PScommand,0,True^) 
     echo ws.run DblQuote(LogFile^) 
     echo '************************************** 
     echo Function DblQuote(Str^) 
     echo DblQuote = chr(34^) ^& Str ^& chr(34^) 
     echo End function 
     echo '************************************** 
     echo Function SimpleQuote(Str^) 
     echo SimpleQuote = ChrW(39^) ^& Str ^& ChrW(39^) 
     echo End Function 
     echo '************************************** 
    )>"%MyVBSFile%" 
start "" "%Log%" 
) 
Exit /b 
::******************************************************************* 
3

Die Information ist recorded in the eventlog. Sie sollen sie erhalten können wie dieses (mit Powershell):

Get-EventLog -LogName Application -Source Wininit | 
    Where-Object { $_.Message -like '*checking file system*' } | 
    Sort-Object TimeGenerated -Descending | 
    Select-Object -First 1 -Expand Message 
+0

Vielen Dank für Ihre Antwort dies eine gute Idee ,, Ich werde daran arbeiten, aber ich frage mich, warum diese Frage abgelehnt wird, verstehe ich nicht, warum, ist es eine gute Frage nicht gefragt? Soll ich es in diesem Fall löschen? bitte ich brauche deinen rat Danke nochmal! – Hackoo

+0

Keiner der Downvotes gehört mir, daher konnte ich nur über die Gründe spekulieren, die ich nicht machen werde. –

+0

Ich habe nicht gesagt, dass der Downvote von dir kommt :) aber ich frage mich, wenn jemand eine Frage oder eine Antwort ablehnt, sagen Sie uns, warum wir das nächste Mal den gleichen Fehler vermeiden sollten, wenn ich es gemacht habe Hilfe. Ich schätze wirklich! – Hackoo

Verwandte Themen