CALENDÁRIO DE TAREFAS: O SCRIPT DO LOTE AGENDADO NÃO FUNCIONA
Propriedades do Agendador de Tarefas. . .
No Windows Task Scheduler
no trabalho Properties
(veja a maioria das capturas de tela na parte inferior) na. . .
1. General
, verifique se as opções abaixo estão marcadas / desmarcadas ou desmarcadas, conforme mostrado na Tela de impressão A
- Desmarque
Run only when user is logged on
- Verifica
Run whether user is logged on or not
- Verifica
Run with the highest privileges
2. Conditions
guia, verifique se as opções abaixo estão selecionadas , marcadas ou desmarcadas, conforme mostrado na Tela de impressão B
- Verifica
Wake the computer to run this task
3. Actions
guia, clique Edit
e verifique se a opção Start in (optional)
está definida como mostrado no exemplo abaixo ( NÃO coloque aspas duplas) para o caminho completo que indica onde o script em lote está localizado SEM uma barra invertida final " \
" Tela de impressão C
CONSIDERAÇÕES DE SEGURANÇA
Depois que você pressionar OK
( 2. acima), a credencial será solicitada para ser executada como, e essa credencial é o que precisará acessar EXECUTE
o arquivo em lotes onde ele existe e também precisará acessar para fazer o que o arquivo em lotes estiver executando. que você escreveu.
Talvez seja melhor configurar uma conta de usuário de serviço / proxy estático para esse processo e usar suas credenciais para executá-lo. Você precisaria garantir que sua senha seja forte e configurada para nunca expirar - e precisa acessar EXECUTE
o lote e executar o que o processo de script em lote estiver executando e quaisquer comandos e recursos, etc. utiliza também.
Parece que a opção que Run whether user is logged on or not
você DEVE verificar Run with highest privileges
é realmente executada conforme o esperado no Agendador de tarefas.
Verificação de erros
Se houver um problema com o script em lote real, mas o Agendador de Tarefas do Windows realmente o executar para executá-lo, mas a lógica do script em lotes for errada, etc. por qualquer motivo, o Agendador de Tarefas talvez não veja essa falha nesse nível. De sua perspectiva (por padrão, na maioria das vezes), ele está executando o arquivo em lotes, desde que possa executá-lo e tenha acesso a isso, seu trabalho é realizado com êxito.
Adicione verificação de erro ou log à lógica do script em lote para capturar (ou solucionar problemas ) problemas nesse nível, incluindo a garantia de que o contexto de segurança que o agendador em lote o executa como tenha acesso adequado aos comandos, recursos etc., nos quais o script em lote é executado.
Considerações sobre Diretiva de Grupo
VERIFIQUE A POLÍTICA DO GRUPO E LIGUE COMO PERMISSÕES DE TRABALHO DE LOTE
Resposta: No Windows, esse privilégio é concedido pela Diretiva de segurança local ou de domínio . Para fazer isso usando a Diretiva de Segurança Local , siga estas etapas.
- No Painel de Controle , abra Ferramentas Administrativas e Diretiva de Segurança Local
.
- Abaixo de Configurações de segurança , abra Políticas locais e realce Atribuição de direitos do usuário .
- Localize Logon como um trabalho em lotes . Abra as propriedades e adicione qualquer usuário que precise desse direito.
- Quando terminar, salve as alterações e feche a janela Configurações de segurança local .
Suas alterações devem entrar em vigor imediatamente. Para fazer alterações na Diretiva de Segurança do Domínio, em um controlador de domínio, use o utilitário Diretiva de Segurança do Domínio no Painel de Controle
Lógica de script em lote com unidades mapeadas ou caminho UNC completo e problemas. . .
Se o seu script estiver referenciando uma unidade de rede mapeada, mas você desejar Run whether the user is logged on or not
, nesse contexto, o mapeamento da unidade pode não estar lá para o processo em lote fazer o que é esperado.
Se possível, use UNC
caminhos na lógica de script em lote em vez de uma letra de unidade mapeada para evitar problemas. Caso contrário, pode ser necessário usar PUSHD \\ServerName\ShareName
no início do processo em lote e depois POPD
no final do processo em lote. Você pode mapear a unidade NET USE X: \\ServerName\ShareName
no início do processo em lote e, em seguida, desconectar a unidade NET USE X: /DELETE
no final do processo em lote.
OUTRAS
MS HOTFIX (KB977353): O item de preferência Tarefa Imediata da Diretiva de Grupo não é executado em um computador cliente que esteja executando o Windows 7 ou Windows Server 2008 R2
Veja a Settings
guia da tarefa agendada e a opção listada como Stop the task if it runs longer than:
. Se essa opção estiver marcada e o período for menor que um script em execução, o Agendador de Tarefas eliminará a tarefa mais cedo e, portanto, você poderá não obter os resultados esperados. Isso é outra coisa a verificar ao solucionar problemas apenas por precaução.
Na Triggers
guia da tarefa agendada, quando você seleciona a Edit
opção, certifique-se de definir a Start:
hora e a data de um valor que NÃO já foi passado. Certifique-se de que essa data e hora estejam definidas como as de um valor no futuro . Caso contrário, você poderá perceber que o trabalho indica que está programado para ser executado no próximo horário agendado, conforme o esperado; no entanto, ele não é executado pelo Agendador de tarefas nem a guia Agendador de tarefas History
mostra que ele é executado (porque não é). Simplesmente edite o gatilho e atualize-o com uma data e / ou hora futura para resolver esse problema, se você estiver enfrentando.
Telas de impressão
Imprimir tela A
Print Screen B
Print Screen C