Ich habe eine Aufgabe, die auf einem Hyper-V-Server ausgeführt wird, der wie folgt eingerichtet ist:
schtasks /CREATE /TN AutoShutdown /RU "SYSTEM" /TR "Powershell \"C:\AutoShutdown.ps1\"" /SC ONSTART
Es läuft ordnungsgemäß (soweit ich das beurteilen kann), das Skript enthält jedoch eine Zeile zum Herunterfahren des Computers, und das geschieht nie.
start-sleep 120
while (1) {$vm = get-vm; if ($vm.state -ne "Running") {stop-computer} else {"Running..."; start-sleep 10}}
Wenn ich die Aufgabe im Benutzerbereich ausführe:
schtasks /CREATE /TN AutoShutdown /TR "Powershell \"C:\AutoShutdown.ps1\"" /SC ONLOGIN
Es läuft perfekt.
Antwort1
Ich schätze, stop-computer benötigt das Flag -force, um zu funktionieren, wenn es als Prozess ausgeführt wird. Durch Umschalten auf stop-computer -force
wurde das Problem behoben.