Eu tenho um script do PowerShell no meu compartilhamento de rede (\ server \ dir \ my.ps1).
se eu executar isso no prompt de comando (arquivo de configuração "\ server \ dir \ my.ps1"), funcione conforme o esperado.
se eu criar uma tarefa básica no agendador com "Executar apenas quando o usuário fizer logon", funcionará conforme o esperado.
se marque a opção "Executar com o usuário conectado ou não", o script não será executado
na guia ação: Progam / Script -> PowerShell; Argumentos: -file "\ server \ dir \ my.ps1"
- no histórico de tarefas, vejo a tarefa correr bem ... mas o script não faz nada ...
o usuário é um usuário regular
Se eu mudar o usuário para administrador, tudo funcionará conforme o esperado ....
É possível executar tarefas agendadas com usuário comum com "executar se o usuário está conectado ou não"?
#Então eu fiz alguns testes:
No arquivo PS, eu coloquei este script:
Conexão de teste - SBS do computador | arquivo externo "c: \ script \ test.txt" $ olSession = (Novo-Objeto-Objeto do Outlook.Aplicativo) .Sessão $ olSession.Logon ('Outlook') $ contactsFolder = 10 $ elemek = $ olSession.GetDefaultFolder ($ ContactsFolder) .Items @ ($ elemek) | ForEach-Object {$ _. Delete ()}
- A primeira linha é executada conforme o esperado (com o usuário conectado ou não)
- O restante da linha não foi executado
- Se eu colar essas linhas no cmd, tudo será executado conforme o esperado
- Se eu alterar as configurações para "Executar apenas se o usuário estiver conectado", todas as linhas serão executadas conforme o esperado
- Se eu der direitos de administrador ao usuário, tudo será executado como esperado no logoff também ...
Então, algo com minhas linhas de sessão do Outlook ... eu não entendo ...
fonte