PC soll E-Mail senden nach erfolgtem Neustart
Hi,
ich habe 4 VMs, die einen daily-reboot per Aufgabenplanung durchführen. Um kontrollieren zu können, ob die auch tatsächlich neu gestartet werden, möchte ich pro VM eine Mail nach erfolgtem Neustart versenden lassen.
Wie stelle ich es am "einfachsten" an? Ich finde per Google überwiegend Extratools (z.B. Sendmail). Lässt sich das auch mit komplett board eigenen Mitteln bewerkstelligen?
Alle VMs laufen auf Windows 10 Pro.
Gruß,
Stefan
ich habe 4 VMs, die einen daily-reboot per Aufgabenplanung durchführen. Um kontrollieren zu können, ob die auch tatsächlich neu gestartet werden, möchte ich pro VM eine Mail nach erfolgtem Neustart versenden lassen.
Wie stelle ich es am "einfachsten" an? Ich finde per Google überwiegend Extratools (z.B. Sendmail). Lässt sich das auch mit komplett board eigenen Mitteln bewerkstelligen?
Alle VMs laufen auf Windows 10 Pro.
Gruß,
Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1989211847
Url: https://administrator.de/contentid/1989211847
Ausgedruckt am: 04.12.2024 um 08:12 Uhr
9 Kommentare
Neuester Kommentar
Powershell Einzeiler, lässt sich auch komplett in die Argumente des Taskplaners pressen wenn man will.
Achtung: Send-MailMessage, supportet bei TLS nur STARTTLS Ports, kein SSL mit initialer Transportverschlüsselung!
Alternative dazu Mailkit nutzen das supportet auch moderne Authentifizierungsverfahren
Powershell: S-MIME verschlüsselte und signierte E-Mail inkl. sicherem Anhang verschicken (Mailkit-Bibliothek)
Grüße Uwe
Send-MailMessage -From "user@domain.de" -to "empfaenger@domain.de" -Subject "Reboot von $env:Computername erfolgt." -SmtpServer smtp.domain.de -Credential (New-Object PSCredential("USERNAME",(ConvertTo-SecureString 'PASSWORD' -AsPlainText -Force))) -UseSSL
Alternative dazu Mailkit nutzen das supportet auch moderne Authentifizierungsverfahren
Powershell: S-MIME verschlüsselte und signierte E-Mail inkl. sicherem Anhang verschicken (Mailkit-Bibliothek)
Grüße Uwe
Zitat von @Stefan007:
ich habe ein Problem.... (wer hätte das gedacht?). Wenn ich das Script manuell als Admin starte geht es. Über die Aufgabenplanung leider nicht.
Nutzt du wie im Skript die manuell angegebenen Credentials oder implizit über den Account der den Task ausführt?ich habe ein Problem.... (wer hätte das gedacht?). Wenn ich das Script manuell als Admin starte geht es. Über die Aufgabenplanung leider nicht.
Welche Rechte nutzt der Task und wie sind seine exakten Einstellungen? Welche Trigger & Co.? Wir können noch nicht hellsehen, sorry.
Gibt es in Powershell einen Command, den ich "innerhalb" des Scripts nutzen kann, um volle Adminrechte zu bekommen?
Ja, bringt dir hier aber nichts, da du Tasks schon direkt elevated ausführen kannst, entweder über das Setzen des Häkchens bei "Mit höchsten Rechten ausführen" oder durch Auswahl des SYSTEM Accounts, aber zum Mails schicken wäre das eigentlich Overkill und nicht nötig!Ich hasse die Aufgabenverwaltung....
Nee, man muss nur die Rechte genau kennen und wie diese dort genutzt werden 😉, es gibt nämlich auch Credentials wenn man die in Taskplaner nutzt gar keinen Netzzugriff haben.Debugging im Taskplaner ist auch ganz einfach indem du im Skript-Kopf ein
Start-Transcript c:\temp\log.txt
Stop-Transcript
Sollten bei dir dennoch alle Stricke reißen und du immer noch nicht zurecht kommen, mach ich dir morgen mal eine XML zum Import in den Taskplaner fertig.
Man muss den Taskplaner nur einmal kapiert haben und die Hintergründe kennen was bei welchen Credentials möglich ist und auch zu welchem Zeitpunkt dann ist das eine Spielerei, nur leider verstehen viele die Zusammenhänge dabei nicht und sind dann enttäuscht, zu unrecht.
#edit# hier die Task-XML die hier einwandfrei funktioniert (natürlich nach Anpassen der eigenen Daten in den Argumenten).
Ansonsten könnte es sein das das Netzwerk zum Rechnerstart noch nicht steht, dann musst du entweder einen Loop in das Skript einbauen das wartet bis eine erfolgreiche Verbindung zu stande gekommen ist (while Schleife mit Test-Connection), oder die bekannte GPO setzen das der Rechner auf das Netzwerk beim Start wartet.
Bitte zwingend als XML im Unicode-Encoding speichern und dann im Taskplaner importieren!)
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2022-02-24T10:56:36.0755354</Date>
<Author>@colinardo</Author>
<URI>\Send_Mail_On_Boot</URI>
</RegistrationInfo>
<Triggers>
<BootTrigger>
<Enabled>true</Enabled>
</BootTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-18</UserId>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>powershell</Command>
<Arguments>-EP Bypass -C "Send-MailMessage -From 'user@domain.de' -to 'user2@domain.de' -Subject ('Computer' + $env:Computername + ' wurde gestartet.') -SmtpServer 'smtp.domain.tld' -Credential (New-Object PSCredential('USERNAME',(ConvertTo-SecureString 'PASSWORD' -AsPlainText -Force))) -UseSSL -Port 587"</Arguments>
</Exec>
</Actions>
</Task>
Zitat von @Stefan007:
Hi Uwe,
Wenn ich deine XML importiere, dann sagt mir die Aufgabenplanung, dass "mit höchsten Privilegien ausführen" nicht aktiviert ist. Ist das so gewollt?
Bei der Verwendung des SYSTEM-Accounts läuft sowieso alles per Default eleviert mit höchsten Rechten, ob das Häkchen aktiviert ist oder nicht spielt dann keine Rolle mehr.Hi Uwe,
Wenn ich deine XML importiere, dann sagt mir die Aufgabenplanung, dass "mit höchsten Privilegien ausführen" nicht aktiviert ist. Ist das so gewollt?
Hostnamen werden jedoch nicht aufgelöst
Kann ich hier nicht bestätigen.Uwe, wie immer gilt dir mein Dank für deine Arbeit.
Immer gerne 👍