monstermania
Goto Top

SCCM - Vorheriger Betriebszustand von PC in Tasksequenz auswerten

Moin,
wir wollen ein wichtiges Software-Update per SCCM per WOL/Tasksequenz ausrollen. Dabei möchten wir jedoch den Betriebszustand des PC berücksichtigen.
Sprich: War der PC bereits eingeschaltet, soll der PC nach Abschluss der Tasksequenz nicht heruntergefahren werden. War der PC hingegen zuvor ausgeschaltet, so soll der PC anschließend auch wieder heruntergefahren werden.

Eine schnelle Idee von mir wäre die Variable 'SMSTSPostAction' zu nutzen und dort ein kleines Powershellscript zu hinterlegen:
cmd.exe /c PowerShell.exe "if (((Get-Date) - (Get-CimInstance Win32_OperatingSystem).LastBootupTime | select -ExpandProperty TotalHours) -le 4) {stop-computer -Force}"  
Damit sollte der PC nur dann herunterfahren, wenn die aktuelle Laufzeit des PC <= 4 Stunden beträgt.
Muss aber noch ausprobieren, ob das auch im Rahmen einer TS sauber funktioniert
Hat Jemand von Euch so etwas schon einmal umgesetzt!?

Gruß
Dirk

Content-Key: 549720

Url: https://administrator.de/contentid/549720

Printed on: April 20, 2024 at 00:04 o'clock

Member: mayho33
mayho33 Feb 20, 2020 at 16:58:22 (UTC)
Goto Top
Hi!

Ad hoc würde ich sagen das passt. Prajwaldesai macht das auch so:

https://www.prajwaldesai.com/check-computer-uptime-in-windows-10/#Method ...


Aus ähnlichen Prüfungen in der TS bzgl. BIOS- Version usw. kann ich bestätigen, dass es funktioniert.

Grüße!
Member: monstermania
monstermania Mar 02, 2020 at 09:28:45 (UTC)
Goto Top
Ja, dass mit dem Skript funktioniert sehr gut.
Problem bleibt aber teilweise bestehen. Wir haben PC's dabei, die im Status 'Reboot-Pending' stehen. Die TS prüft das und führt dann erstmal einen Reboot durch, anschließend wird dann unsere Software aktualisiert.
Der PC wird nach Abschluss der TS dann heruntergefahren, weil ja der letzte Reboot erst ein paar Minuten her ist und dementsprechend die Laufzeitabfrage nicht greift.