LockWorkStation funktioniert nicht in Powershell über Taskplaner

463
Explisam

Ich schreibe ein Skript, das von IFTTT gebrückte Befehle von Amazon Echo empfängt.

Der Prozess läuft wie folgt ab:

  • Ich bitte Alexa, "X" auszulösen
  • IFTTT sendet dies an das Dropbox-Applet
  • Dropbox schreibt eine Textdatei mit dem Namen "X" in ein Verzeichnis
  • Ein Task Scheduled Powershell-Skript durchläuft alle 5 Sekunden eine Schleife, um alle Dateien in diesem Verzeichnis zu ermitteln
  • Das Skript führt Befehle basierend auf dem Dateinamen aus

Hier ist ein kurzes Beispiel für das Skript:

$SearchDirectory = "C:\Users\Username\Dropbox\IFTTT" $SleepTime = 5 $Status = "none"  Remove-Item -Path "$SearchDirectory\shutdown.txt" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$SearchDirectory\restart.txt" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$SearchDirectory\sleep.txt" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$SearchDirectory\lock.txt" -Force -ErrorAction SilentlyContinue  While ($True) { Do { Start-Sleep -Seconds $SleepTime  if (Test-Path -Path "$SearchDirectory\shutdown.txt") { $Status = "shutdown" } if (Test-Path -Path "$SearchDirectory\restart.txt") { $Status = "restart" } if (Test-Path -Path "$SearchDirectory\sleep.txt") { $Status = "sleep" } if (Test-Path -Path "$SearchDirectory\lock.txt") { $Status = "lock" } } Until ($Status -ne "none")  switch ($Status) { "shutdown" { Remove-Item -Path "$SearchDirectory\shutdown.txt"; Stop-Computer -Force; break } "restart" { Remove-Item -Path "$SearchDirectory\restart.txt"; Restart-Computer -Force; break } "sleep" { Remove-Item -Path "$SearchDirectory\sleep.txt"; Suspend-Computer; break} "lock" { Remove-Item -Path "$SearchDirectory\lock.txt"; Invoke-Command ; break} "none" { break } }  $Status = "none" } 

Alle oben genannten Befehle funktionieren gut, mit Ausnahme rundll32.exe user32.dll,LockWorkStationderer, für die in der Konsole OK zu funktionieren scheint, jedoch nicht durch ein Skript im Taskplaner.

Ich kann das Problem nicht sehen. Warum funktioniert es nicht?

1
Läuft das Taskplaner-Skript als aktueller Benutzer? https://social.technet.microsoft.com/Forums/windowsserver/en-US/3f0ade25-acb1-4821-8a78-9384716850ff/creating-scheduled-task-for-currently -logged-on-user?forum=winserverGP Tyson vor 6 Jahren 0
Ja, und es wird auch mit den höchsten Berechtigungen für eine uneingeschränkte Ausführungsrichtlinie ausgeführt. Explisam vor 6 Jahren 0

0 Antworten auf die Frage