ERRORLEVEL-Übergabe in einer FOR-Schleife mit psexec
Hi Leute,
komme einfach nicht weiter, bzw. auf keine einfache Lösung.
Ich sichere mehrere Server über eine Batch (Drive Snapshot) und bin gerade dabei diese flexibler zu gestalten und überarbeite das Teil.
Soweit funktioniert auch alles, aber das verschicken der Mails inkl. Log-Datei klappt nicht, solange ich dies in meiner FOR-Schleife ausführe.
Klar, er sichert erst alle Server nacheinander und erst beim letzten Server bekomme ich eine Mail zugestellt. Natürlich nur mit dem letzten errorlevel.
Ich hoffe euch verwirren die Variablen nicht, sind ja aber eigentlich sprechend.
Irgendwer muss meinen Knoten im Kopf befreien.
PS.: Ja, ich schreib gern alles in eine Zeile!
Vielen Dank und Grüße
Michél
komme einfach nicht weiter, bzw. auf keine einfache Lösung.
Ich sichere mehrere Server über eine Batch (Drive Snapshot) und bin gerade dabei diese flexibler zu gestalten und überarbeite das Teil.
Soweit funktioniert auch alles, aber das verschicken der Mails inkl. Log-Datei klappt nicht, solange ich dies in meiner FOR-Schleife ausführe.
Klar, er sichert erst alle Server nacheinander und erst beim letzten Server bekomme ich eine Mail zugestellt. Natürlich nur mit dem letzten errorlevel.
for /F "delims=" %%i in ("!serverlist!") do for %%A in (%%i) do "%tools%\psexec.exe" /accepteula \\%%A -u %domain%\%user% -p %password% -c -f -h %workdir%\snapshot.exe C: %destination%\%%A\$computername_$disk_$type.sna -L307200 --AllWriters --AutoBackupSize:512 --CreateDir --FullIfHashIsMissing -RWT --exclude:"\Windows\Memory.dmp","\Windows\Minidump","\Windows\Temp" -h"%SystemDrive%\Snapshot_hash\$computername_$disk.hsh" --LogFile:%logs%\$computername.txt
if '%errorlevel%'=='0' (
"%tools%\gbmail.exe" -v -to %mailrecipient% -h %mailserver% -from snapshot.%computername%@%maildomain% -s "Snapshot-Meldung: Auftrag erfolgreich" -file "%logs%\%computername%.txt"
) else (
"%tools%\gbmail.exe" -v -to %mailrecipient% -h %mailserver% -from snapshot.%computername%@%maildomain% -s "Snapshot-Meldung: Auftrag fehlgeschlagen" -file "%logs%\%computername%.txt"
)
Ich hoffe euch verwirren die Variablen nicht, sind ja aber eigentlich sprechend.
Irgendwer muss meinen Knoten im Kopf befreien.
PS.: Ja, ich schreib gern alles in eine Zeile!
Vielen Dank und Grüße
Michél
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 235027
Url: https://administrator.de/contentid/235027
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo zeusplanet und willkommen im Forum!
Versuch es mit dieser Schreibweise (ungetestet):
Grüße
bastla
Versuch es mit dieser Schreibweise (ungetestet):
for /F "delims=" %%i in ("!serverlist!") do for %%A in (%%i) do "%tools%\psexec.exe" /accepteula \\%%A -u %domain%\%user% -p %password% -c -f -h %workdir%\snapshot.exe C: %destination%\%%A\$computername_$disk_$type.sna -L307200 --AllWriters --AutoBackupSize:512 --CreateDir --FullIfHashIsMissing -RWT --exclude:"\Windows\Memory.dmp","\Windows\Minidump","\Windows\Temp" -h"%SystemDrive%\Snapshot_hash\$computername_$disk.hsh" --LogFile:%logs%\$computername.txt && (
"%tools%\gbmail.exe" -v -to %mailrecipient% -h %mailserver% -from snapshot.%computername%@%maildomain% -s "Snapshot-Meldung: Auftrag erfolgreich" -file "%logs%\%computername%.txt"
) || (
"%tools%\gbmail.exe" -v -to %mailrecipient% -h %mailserver% -from snapshot.%computername%@%maildomain% -s "Snapshot-Meldung: Auftrag fehlgeschlagen" -file "%logs%\%computername%.txt"
)
bastla