Não é possível obter o script do Exchange PowerShell para ser executado em Tarefas agendadas

1

Eu tenho um script do PowerShell que funciona quando inserido diretamente no PowerShell. O programa PowerShell é executado com o atalho:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'"

Eu tentei cerca de 10 maneiras diferentes no Agendador de Tarefas do Windows para primeiro abrir o atalho acima e depois executar o arquivo de script salvo, mas não funcionará. Pendura em 'Running'.

O script está localizado aqui:

Z:\Exchange PowerShell\MailboxesApproachingOverQuota.ps1

Observe que o conteúdo do script pode ser copiado e colado no atalho do PowerShell acima e ele funciona perfeitamente e envia a saída de e-mails como deveria.

Observe que a instância do PowerShell que eu uso é do atalho mostrado acima, o qual já possui argumentos. Por isso, estou perplexo com o que colocar no Agendador de Tarefas.

Alguma ajuda, por favor?

Obrigado :)

EDITAR Quando eu uso o seguinte diretamente no CMD:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'; &'Z:\Exchange Powershell\MailboxesApproachingOverQuota.ps1'"

Eu recebo: link

Quando uso o seguinte:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'; &'Z:\Exchange Powershell\MailboxesApproachingOverQuota.ps1'"

Eu recebo: link

Executando isso:

powershell -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -noexit -exec bypass -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'"

Abre o shell de gerenciamento do Exchange bem: link

    
por Logan 18.02.2014 / 00:37

4 respostas

5

Primeiro, deixe-me contar como você executaria o script a partir de uma tarefa:

Program/script: 
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Add arguments (optional): 
-PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'; &'Z:\Exchange Powershell\MailboxesApproachingOverQuota.ps1'"

Observe também que o ID do usuário que você está usando para executar o script pode precisar de permissões no servidor local.

update: Removido -noexit

    
por 18.02.2014 / 01:57
5

Eu estou supondo que este script não está assinado. Você ativou a execução de scripts não assinados usando o Set-ExecutionPolicy -ExecutionPolicy Unrestricted cmdlet?

    
por 18.02.2014 / 01:12
0

Eu estava tendo o mesmo problema e descobri que a maneira mais fácil era chamar o comando por meio de um arquivo bat. Eu poderia executar o comando inteiro a partir de uma linha de comando, mas se eu tentasse usar a tarefa agendada, ela não funcionaria independentemente do que eu fizesse.

Arquivo em lote de linha única corrigido.

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -version 2.0 -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; c:\psscripts\accessrights.ps1"

Eu configurei a transcrição em meu script PS para ver se ela foi concluída e quais comandos ela executou. Também executei o nome de usuário da identidade de entrada get-mailboxparmission: \ calendar para confirmar que as alterações foram refletidas.

Felicidades

Pete

    
por 11.12.2014 / 04:52
0

O arquivo de script simples funciona no agendador de tarefas. Quando eu uso o parâmetro -Sendmail:$true , isso está funcionando. Fiz um arquivo .bat e executei esse arquivo em vez do script Powershell no agendador de tarefas. Este arquivo .bat está funcionando no meu Exchange 2016.

PowerShell.exe -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; . C:\Script\Get-ExchangeEnvironmentReport.ps1 -HTMLReport C:\Script\Get-exchangeReport.html -SendMail:$true -MailFrom:[email protected] -MailTo:[email protected] -MailServer:mail.domain.com"
    
por 17.10.2017 / 17:04