O script do PowerShell não conclui o que deve ser feito quando agendado com o Agendador de Tarefas do Windows

2

Eu encontrei um script que pode excluir arquivos com mais de X dias e alterá-lo um pouco para que eu possa verificar pastas de rede diferentes para ver se há arquivos com mais de X dias. Agora, quando executo o script com o ISE do PowerShell , o script está funcionando bem e fazendo o que deveria . Está demorando cerca de uma hora.

Agora, quando tento agendar o script com o Agendador de tarefas do Windows, a tarefa é iniciada e concluída 10 segundos depois, mas o script não foi executado. Então, nenhum arquivo foi deletado?

Configuração da tarefa agendada:

Geral

  • Execute uma tarefa com uma conta que tenha logon como privilégios de lote

  • Executar se o usuário está conectado ou não

  • Execute com privilégios mais altos

Trigger

  • Execução diária

Ação

  • Programa / script: Execute um programa C: \ windows \ system32 \ windowspowershell \ v1.0 \ powershell.exe

  • Argumento: -Arquivo "C: \ scripts \ deletefiles.ps1"

O que estou fazendo de errado? Ou por que não está executando o script?

O script pode ser encontrado aqui .

    
por Yves Strobbe 11.01.2013 / 10:14

1 resposta

3

Você precisa Set-ExecutionPolicy para que a conta que executa a tarefa agendada tenha permissão para executar scripts do PowerShell:

Set-ExecutionPolicy -Scope LocalMachine Unrestricted

Conforme o arquivo de ajuda de Set-ExecutionPolicy, um escopo de LocalMachine define a política para todos os usuários desse computador. Ao contrário de se você apenas Set-ExecutionPolicy Unrestricted de sua própria conta de usuário, ela apenas define essa política para sua própria conta de usuário. Além disso, há também políticas separadas para as versões de 32 bits e 64 bits do PowerShell.

E se Set-ExecutionPolicy -Scope LocalMachine Unrestricted for um compromisso de segurança muito grande para você, você poderá configurá-lo apenas para esse usuário, fazendo login como esse usuário e fazendo isso, ou executando um processo no contexto de segurança desse usuário e definindo a política para esse usuário.

Ah, e bem, isso provavelmente não precisa ser dito, mas não podemos saber se o usuário que você atribuiu a essa tarefa agendada tem as permissões necessárias para excluir itens daqueles caminhos UNC .

    
por 11.01.2013 / 16:08