LockWorkStation não está funcionando no Powershell por meio do Agendador de Tarefas

1

Estou escrevendo um script que recebe comandos do Amazon Echo em ponte pelo IFTTT.

O processo é o seguinte:

  • Peço ao Alexa para acionar "X"
  • o IFTTT envia isso ao Miniaplicativo do Dropbox
  • O Dropbox grava um arquivo de texto chamado "X" em um diretório
  • Um script do Powershell agendado para tarefas faz um loop a cada 5 segundos para detectar quaisquer arquivos nesse diretório
  • O script executa comandos com base no nome do arquivo

Aqui está um pequeno exemplo do script:

$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 {rundll32.exe user32.dll,LockWorkStation}; break}
    "none" { break }
  }

  $Status = "none"
}

Todos os comandos acima funcionam bem, exceto por rundll32.exe user32.dll,LockWorkStation , que parece estar funcionando bem no console, mas não por meio de um script no Agendador de Tarefas.

Não consigo ver o problema, por que não está funcionando?

    
por Explisam 02.02.2018 / 03:14

0 respostas