Um den neuen Drive Snapshot Gesundheit Sensor nutzen zu können, müssen Sie ihr Sicherungsskript um eine Komponente erweitern, damit alle Vorgänge protokolliert werden in das Windows Event Log (Quelle "DriveSnapshotAgent").

Dadurch kann unser Sensor, die Ergebnisse abgreifen und im OCC für Sie zur Verfügung stellen.


Wichtig ist, dass hier mit der Variable %errorlevel% gearbeitet werden muss. Diese definiert nach einem Ausführen der snapshot.exe den Zustand (ob Erfolgreich oder Fehlerhaft).


Beispiel: 


  

set LogDir=C:\Backup\Logs
set error=false

snapshot.exe HD1:1 U:\MeineSicherungen\disk.sna -W --novss -L0 --LogFile: %LogDir%\Current.log --CreateDir
if not %errorlevel%==0 set error=true

  


Die EventLog Komponente die erweitert werden muss, sieht dabei wie folgt aus:


  

:eventlog

 setlocal enableextensions enabledelayedexpansion
 
 set eventtext=
 
 REM for /f "delims=" %%l in (%LogDir%\Current.log) do set eventtext=!eventtext!%%l
 
 for /f "delims=" %%l in (%LogDir%\Current.log) do set eventtext=!eventtext!%%%l___
 
 set eventtext_cut=!eventtext:~0,5000!
 
 if %error%==false (
  eventcreate /id 100 /l application /t information /so "DriveSnapshotAgent" /d "%eventtext_cut%"
  ) else (
  eventcreate /id 100 /l application /t error /so "DriveSnapshotAgent" /d "%eventtext_cut%"
  )
   
 setlocal disableextensions disabledelayedexpansion
 endlocal
    

  


Sie können auch gerne eine von einem Server-Eye Kunden angepasste Lösung nutzen, die Leerzeichen in der Ausgabe ermöglicht (Vielen Dank dafür).



REM Erstmal error auf falsch setzen
set error=false
 
REM Hier der snapshot Befehl
Snapshot.exe +Optionen
 
set logfile=“Speicherort Logfile z.B.: c:\snapshot.log“
 
REM Fehlerlevel entsprechend setzen
if not %errorlevel%==0 set error=true
 
REM Aktuelle OEM Codepage zwischenspeichern.
for /f "tokens=2 delims=:" %%i in ('chcp') do set /a "oemcp = %%~ni"
 
REM Codepage auf Windows-1252 stellen, um Umlaute korrekt übergeben zu können.
>nul chcp 1252
 
REM Carriage Return
for /f %%i in ('copy /z "%~f0" nul') do set "cr=%%i"
REM Line Feed (Die zwei Leerzeilen danach sind relevant!)
set lf=^
 
 
REM Verzögerte Variablenerweiterung, um den Text zusammen zu bauen und mit Zeilenumbrüchen arbeiten zu können.
setlocal EnableDelayedExpansion
 
REM Datei einlesen und einen Windows-Zeilenumbruch (CrLf) hinter jede Zeile packen.
set "eventtext="
<"!logfile!" (
  for /f %%i in ('type "!logfile!"^|find /c /v ""') do for /l %%j in (1 1 %%i) do (
    set "line=" &amp;set /p "line="
    set "eventtext=!eventtext!!line!!cr!!lf!"
  )
)
 
if %error%==false (
  eventcreate /id 100 /l application /t information /so "DriveSnapshotAgent" /d "!eventtext:~0,-2!"
  ) else (
  eventcreate /id 100 /l application /t error /so "DriveSnapshotAgent" /d "!eventtext:~0,-2!"
  )
setlocal disableextensions disabledelayedexpansion
endlocal
 
REM Zurück zur OEM Codepage.
>nul chcp %oemcp%
 
EXIT



Dazu wird das geschriebene Log in einem EventLog Eintrag protokolliert. 


Anbei findet sich noch ein komplettes Beispiel-Skript, welches für eine Sicherung verwendet werden kann. Vielen Dank hier an unseren Kunden "CSH Computerservice-Haibach", der uns dieses Skript zur Verfügung stellte und auf seinem Blog viele weitere interessante Punkte zu Drive-Snapshot (und auch Server-Eye) aufzeigt. Hier gehts zu Andys Blog