hallo,
gibt es ein script für die Anzeige vom letzten chkdsk Ergebnis (z.B. über Notepad etc.)?
(Windows 7 64 prof)
Druckbare Version
hallo,
gibt es ein script für die Anzeige vom letzten chkdsk Ergebnis (z.B. über Notepad etc.)?
(Windows 7 64 prof)
Hallo,
noch nie was davon gehört. Du kannst aber eine Batch schreiben, darin CHDKDSK aufrufen und die Ausgabe in eine Datei (z.b. ergebnis.txt) umleiten. Dann kannst Du jederzeit auf das letzte Ergebnis zugreifen.
MfG
Ich habe sowas nie gebraucht. Und wenn, früher, hab ich es so gemacht, wie ich geschrieben hab.
In Windows wird das Prüfergebnis aber in einem "CHKDSK-Log" bzw. "CHKDSK-Protokoll" gespeichert. Das kann man nachträglich einsehen. Mal im Netz suchen. Suchbegriffe: "CHKDSK-Log" "CHKDSK-Protokoll" einsehen
Ich kann Dir aber nicht sagen, in welchen Dateien das dann steht. Aber aus Zeiten mit Visual Basic Weiß ich, dass man leicht auf viele windowsinterne Sachen zugreifen kann, mindestens auf die Systemregistrierungseinträge. Da Du ja den C++-Builder im Gange hast, könnte man sicher darüber auch was machen, da man die Ergebnisse auch über die windowsinternen Tools ansehen kann, wie Du bei den Suchergebnissen s.o. sehen wirst.
MfG
meine Frage war nicht, ob du so was noch nie gebraucht hast und/oder ob du es NICHT weißt, sondern:
es steht irgendwo in der Ereignisanzeige, aber irrsinnig schwer auffindbar, daher meine Frage nach einem Script, das das sofort auf den Schirm bringtZitat:
gibt es ein script für die Anzeige vom letzten chkdsk Ergebnis (z.B. über Notepad etc.)?
(Windows 7 64 prof)
ich habe da einen Stackoverflow Eintrag gefunden der als Ergebnis eine bat hat die deinen Zwecken dienen sollte :)
in der anderen Antwort steckt ein relativ kurzer Powershell Script, der bei mir zumindest 1 mal funktioniert hat
https://stackoverflow.com/questions/...at-run-on-boot
soweit ich den Inhalt verstanden habe macht er auch nichts böses :)
die Variante mit der Powershell aus der alternativen Antwort finde ich besser, weil minimalistischer
was meinst du mit powershell script?
das hier?
das gibt einen FehlerCode:get-winevent -FilterHashTable @{logname="Application"; id="1001"}| ?{$_.providername –match "wininit"} | fl timecreated, message | out-file Desktop\CHKDSKResults.txt
Zitat:
Der Befehl "get-winevent" konnte nicht gefunden werden.
Das Batchfile
hingegen ist auch nicht bauchbar, weil es nicht die chkdsk-Ergebnisse listet, die bereits gelaufen sind (z.B. auch bei von Windows selber erzeugten chkdsk Läufen auf Grund von Bootfehlern)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
::*******************************************************************
hast du den powershell script denn auch in der "powershell" ausgeführt? Die klassische cmd ist nur die "Konsole"
Zitat:
get-winevent -FilterHashTable @{logname="Application"; id="1001"}| ?{$_.providername –match "wininit"} | fl timecreated, message | out-file Desktop\CHKDSKResults.txt
da du die pro variante hast, sollte es sich über das startmenü tehoretisch leicht finden lassen
edit: habs gefunden, gibt aber auch Fehler:
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. Alle Rechte vorbehalten.
PS C:\Windows\System32\WindowsPowerShell\v1.0> get-winevent -FilterHashTable @{l
ogname="Application"; id="1001"}| ?{$_.providername -match "wininit"} | fl timec
reated, message | out-file Desktop\CHKDSKResults.txt
Out-File : Ein Teil des Pfades "C:\Windows\System32\WindowsPowerShell\v1.0\De sk
top\CHKDSKResults.txt" konnte nicht gefunden werden.
Bei Zeile:1 Zeichen:140
+ get-winevent -FilterHashTable @{logname="Application"; id="1001"}| ?{$_.provi
dername -match "wininit"} | fl timecreated, message | out-file <<<< Desktop\CH
KDSKResults.txt
+ CategoryInfo : OpenError: (:) [Out-File], DirectoryNotFoundExce
ption
+ FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.Ou
tFileCommand
PS C:\Windows\System32\WindowsPowerShell\v1.0>
irgendwie ist das verkorkst wie es scheint...
Du hast da glaube ich ein Leerzeichen reingehauen, passe mal das Ende der Zeile an, dass er die Datei auf einem absoluten und nciht relativen Pfad legt, also stattZitat:
De sk
top
out-file Desktop\CHKDSKResults.txt
out-file <AbsoluterPfadZuEinemOrdner>\CHKDSKResults.txt
bedenke dass Leerzeichen im Pfad problematisch sein können und du den Dateinamen eventuell inklusive Pfad in Anführungszeichen setzen musst
OT: "bedenke dass" oder "bedenke das" ??? hab grad irgendwie eine Data Corruption im Hirn .. da ist etwas von meiner Schulbildung verloren gegangen