Batch-Datei mit Aufgabenplanung ausführen
Hallo,
ich möchte bei meinen Server eine Benachrichtigungen kommen, wenn diese neu starten oder herunterfahren.
Ich nutze Windows Server 2019.
Folgende Umsetzung habe ich realisiert:
Ich habe die folgende Batch-Datei erstellt (siehe Anhang).
Wenn ich diese so durch Doppelklick ausführe klappt auch alles wunderbar.
In der Aufgabenplanung habe ich es so eingestellt, dass die Datei ausgeführt werden soll bei dem Ereignis ID 1074, welches ja bei einem Neustart herausgegeben wird.
Starte ich die Aufgabe manuell klappt auch alles. Starte ich jedoch dann den Server neu wird die Aufgabe nicht ausgeführt, vielmehr steht dann dort "Die letzte Ausführung dieser Aufgabe wurde durch den Benutzer beendet".
Was mache ich falsch?
ich möchte bei meinen Server eine Benachrichtigungen kommen, wenn diese neu starten oder herunterfahren.
Ich nutze Windows Server 2019.
Folgende Umsetzung habe ich realisiert:
Ich habe die folgende Batch-Datei erstellt (siehe Anhang).
Wenn ich diese so durch Doppelklick ausführe klappt auch alles wunderbar.
In der Aufgabenplanung habe ich es so eingestellt, dass die Datei ausgeführt werden soll bei dem Ereignis ID 1074, welches ja bei einem Neustart herausgegeben wird.
Starte ich die Aufgabe manuell klappt auch alles. Starte ich jedoch dann den Server neu wird die Aufgabe nicht ausgeführt, vielmehr steht dann dort "Die letzte Ausführung dieser Aufgabe wurde durch den Benutzer beendet".
Was mache ich falsch?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 662336
Url: https://administrator.de/contentid/662336
Ausgedruckt am: 22.11.2024 um 05:11 Uhr
10 Kommentare
Neuester Kommentar
Moin,
verschiebe das Script mal vom Deskop deines Admins nach z.B. C:\scripte
Anschließend den Task dahingehend anpassen, dass das Systemkonto die Mail versendet.
Ferner ist es eigentlich unnötig, eine batch zu starten, die wiederum ein PS-Script beinhaltet.
Erstelle eine info_mail.ps1 und lasse die starten. der TaskScheduler kann ja auch mit Powershell-Scripten umgehen bzw. kann man ja auch
ausführen lassen.
Edit: Zudem können Fehler beim Send-MailMessage innerhalb eines PS-Scripte besser abgefangen werden.
Wenn du den Befehl aus der BAtch heraus ausführst, ist es mitunter etwas schwieriger...
Gruß
em-pie
verschiebe das Script mal vom Deskop deines Admins nach z.B. C:\scripte
Anschließend den Task dahingehend anpassen, dass das Systemkonto die Mail versendet.
Ferner ist es eigentlich unnötig, eine batch zu starten, die wiederum ein PS-Script beinhaltet.
Erstelle eine info_mail.ps1 und lasse die starten. der TaskScheduler kann ja auch mit Powershell-Scripten umgehen bzw. kann man ja auch
powershell.exe -ExecutionPolicy Bypass -File "C:\scripte\info_mail.ps1"
Edit: Zudem können Fehler beim Send-MailMessage innerhalb eines PS-Scripte besser abgefangen werden.
Wenn du den Befehl aus der BAtch heraus ausführst, ist es mitunter etwas schwieriger...
Gruß
em-pie
Genauso wie eine batch-Datei erstellt wird. Nur, dass sie nicht *.bat oder *.cmd lautet, sondern *.ps1
Aufruf ist dann wie oben skizziert.
Prüfe mal, ob das Skript überhaupt gestartet wird.
Zu beginn einfach mal echo Ich wurde gestartet>>c:\test.txt in die batch schreiben und auf c:\ nach der test.txt schauen
Kommt die Powershell zum Einsatz, dann Add-Content c:\output.txt "Ich wurde gestartet" -Append
Aufruf ist dann wie oben skizziert.
Prüfe mal, ob das Skript überhaupt gestartet wird.
Zu beginn einfach mal echo Ich wurde gestartet>>c:\test.txt in die batch schreiben und auf c:\ nach der test.txt schauen
Kommt die Powershell zum Einsatz, dann Add-Content c:\output.txt "Ich wurde gestartet" -Append
Den eigentlich powershell-Befehl hast du ja schon. Send-MailMessage
Variablen werden hier erklärt:
https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell. ...
Variablen werden hier erklärt:
https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell. ...
Zitat von @em-pie:
Den eigentlich powershell-Befehl hast du ja schon. Send-MailMessage
Variablen werden hier erklärt:
https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell. ...
Den eigentlich powershell-Befehl hast du ja schon. Send-MailMessage
Variablen werden hier erklärt:
https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell. ...
Hier einmal (ungetestet) eine Mögliche Variante:
## SendMail
$computer = Get-ChildItem env:COMPUTERNAME
$SMTPServer = "myServer"
$SMTPFrom = "ich@contoso.tld"
$SMTPTo = "du@contoso.tld"
$SMTPSubject = "[INFO] $computer neugestartet"
$SMTPBody = "$computer: Neustart benötigt für Updates"
Send-MailMessage -SmtpServer $SMTPServer -From $SMTPFrom -To $SMTPTo -Subject $SMTPSubject -Body $SMTPBody
## NOTES
## Send-Mailmessage gilt als nicht sicher. Besser wäre es, MailKit einzusetzen:
## https://adamtheautomator.com/powershell-email/