LockWorkStation не работает в Powershell через планировщик задач

432
Explisam

Я пишу сценарий, который получает команды от Amazon Echo через IFTTT.

Процесс идет следующим образом:

  • Я прошу Алексу, чтобы вызвать "X"
  • IFTTT отправляет это в апплет Dropbox
  • Dropbox записывает текстовый файл с именем «X» в каталог
  • Сценарий запланированного задания Powershell зацикливается каждые 5 секунд, чтобы обнаружить любые файлы в этом каталоге
  • Скрипт выполняет команды на основе имени файла

Вот короткий пример скрипта:

$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" } 

Все вышеперечисленные команды работают нормально, за исключением того, rundll32.exe user32.dll,LockWorkStationчто они работают нормально в консоли, но не через скрипт в планировщике задач.

Я не вижу проблемы, так почему она не работает?

1
Сценарий планировщика заданий работает от имени текущего пользователя? 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 6 лет назад 0
Да, это так, и он также работает с наивысшими привилегиями в неограниченной политике выполнения. Explisam 6 лет назад 0

0 ответов на вопрос