Agendador de Tarefas - Lote "Executar se o usuário está conectado ou não" não está funcionando

2

Eu criei um arquivo de lote ( EnableDisable.bat ) que desativará um trabalho do Windows Agendador de tarefas ( SampleJob ) em um sistema local, se um trabalho com o mesmo nome ( SampleJob ) já está habilitado e em execução em outro sistema remoto.

Parece que, quando o trabalho é configurado com a opção Run whether user is logged on or not marcada junto com Run with Highest privileges , isso simplesmente não funciona e o motivo é difícil de determinar e não sei como solucionar problemas.

Arquivo em lote

for /f "tokens=1" %%j in ('schtasks /Query /S [servername] /TN "SampleJob" /NH ^| findstr "Ready ^| Running"') do schtasks /Change /Disable /TN "%%j"

Note: The remote system is referred to as [servername] and will be replaced by the actual remote server name where needed.

Configurações do trabalho do Agendador de Tarefas do Windows

  • Esse arquivo em lotes é configurado como um trabalho do Agendador de Tarefas do Windows
    • Nome : EnableDisableJob
    • Opção de segurança : Run whether user is logged on or not
      • Run with Highest privileges

Observações

Se eu executar o trabalho com o Run only when user is logged on , parece funcionar sem problemas. No entanto, parece que quando eu tento executá-lo com a outra opção, e porque essa conta não está conectada, ela não pode ser executada quando for esse o caso.

Pergunta

Como faço para solucionar esse tipo de problema e por onde devo começar a iniciar esse processo?

    
por t_venuga 28.06.2018 / 13:36

1 resposta

0

Para solucionar esse problema, veja algumas coisas

  1. Faça logoff da máquina em que você executa esse processo, como na conta User1 e faça o login na máquina como a conta User2 e garanta um perfil é construído para User2 . Portanto, a pasta C:\Users\User2 deve existir.
  2. Enquanto você está conectado a essa máquina como User2 run a tarefa agendada ou pelo menos testá-lo com Run only when user is logged on e Run with highest privileges e isso deve aparecer o comando janela de prompt quando ele é executado e mostra erros, etc., que você não veria executando com a opção Run whether user is logged on or not . Se você vir um erro de "acesso negado" ou algo dessa natureza, há um problema de permissão.

Problema de permissão

Você desejará garantir que a conta de usuário em que você executa a tarefa agendada Agendador de tarefas com Run whether user is logged on or not e Run with highest privileges tenha acesso. . .

  1. execute o prompt de comando ( cmd.exe ) da máquina na qual você executa a tarefa
  2. execute schtasks da máquina na qual você executa a tarefa
  3. executar schtasks remotamente no servidor remoto em que você executa a tarefa com

Outros itens

  1. Torne a conta User2 um administrador local na máquina em que você executa a tarefa temporariamente e, em seguida, faça logoff e volte para a máquina e tente novamente para descartar problemas de permissão da máquina local.

  2. Compare as diferenças de segurança com o User1 e o User2 no controle remoto máquina, grupos de segurança de domínio, etc. também.

Mais recursos

por 29.06.2018 / 15:15