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

Ausgedruckt am: 28.03.2024 um 19:03 Uhr

Mitglied: mayho33
mayho33 20.02.2020 um 17:58:22 Uhr
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!
Mitglied: monstermania
monstermania 02.03.2020 um 10:28:45 Uhr
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.