Recomendado, 2024

Escolha Do Editor

Corrigir tarefa agendada não será executado para o arquivo .bat

Se você tiver um arquivo .BAT e estiver tentando executá-lo automaticamente usando o Agendador de Tarefas no Windows, talvez tenha se deparado com o problema em que ele simplesmente não é executado, a menos que você execute a tarefa manualmente.

Eu criei um arquivo em lotes que exclui tudo dentro de uma pasta temporária sempre que o computador é iniciado. Eu criei uma tarefa básica no Agendador de Tarefas e esperei o melhor. Infelizmente, nada aconteceu quando o meu computador ligou. Depois de muita tentativa e erro, descobri como fazer o script rodar.

Neste artigo, vou orientá-lo nas configurações e permissões necessárias para ajustar seu arquivo de lote a ser executado sem intervenção manual.

Etapa 1: verificar permissões de arquivo / pasta

A primeira etapa para corrigir esse problema é garantir que a conta que você está usando para executar o script no Agendador de Tarefas tenha permissões Controle Total na pasta que contém o script, o script em si e todas as pastas / arquivos que o script tocar quando for executado.

Por exemplo, criei o seguinte script em lote abaixo:

 set folder = "C: \ teste" cd / d% pasta% para / F "delims =" %% i em ('dir / b') fazer (rmdir "%% i" / s / q || del "% % i "/ s / q) 

Salvei o arquivo .BAT na minha pasta Documentos. O caminho é C: \ Users \ username \ Documents . Fui para C: \ Users \ nome de usuário, cliquei com o botão direito do mouse na pasta Documentos e cliquei em Propriedades . Então cliquei na guia Segurança .

Como você pode ver, a conta de usuário Aseem foi explicitamente adicionada e recebeu a permissão Full Control . Agora você precisa fazer o mesmo para a pasta que contém o script e para o script em si. Não assuma que, se você der permissões para a pasta que contém o script, você está pronto para ir, porque você não está. Por último, defina permissões em quaisquer arquivos e pastas com os quais o script irá interagir.

No meu caso, eu tive que ir para C: \ test, clique com o botão direito do mouse nessa pasta e adicione minha conta de usuário lá com permissões de Controle Total. É meio chato ter que fazer isso, mas é a única maneira de fazer o script rodar.

Nota : A conta que está sendo usada para executar o script deve fazer parte do grupo Administradores local no computador. No meu caso, a conta Aseem é uma conta de administrador e, portanto, faz parte do grupo Administradores local.

Etapa 2: Verificar as configurações do Agendador de Tarefas

Agora vamos ao Agendador de Tarefas e alterar as configurações apropriadas lá. Abra o Agendador de Tarefas e encontre sua tarefa na seção Tarefas Ativas . Eles devem ser listados em ordem alfabética.

Clique duas vezes nele e ele abrirá a tarefa sozinho na mesma janela. Para editar a tarefa, você terá que clicar com o botão direito nela e escolher Propriedades .

Existem várias guias e algumas coisas precisam ser verificadas e alteradas aqui. Em primeiro lugar, na guia Geral, você precisa verificar a conta de usuário que está sendo usada para executar a tarefa. No meu caso, é a conta do Aseem, à qual eu dei permissões anteriormente no sistema de arquivos e que faz parte do grupo Administradores no computador.

Em seguida, você deve escolher a opção Executar se o usuário está conectado ou não e escolher o Windows Vista, Windows Server 2008 na caixa Configurar para .

Na guia Ações, você deve selecionar o script, clicar em Editar e adicionar no caminho da pasta que contém o script na caixa Iniciar em (opcional) . Isso pode parecer desnecessário, mas não é. No meu caso, coloco C: \ Users \ Aseem \ Documents \ na caixa.

Agora clique em OK para salvar as configurações. Quando você fizer isso, uma caixa de diálogo pode aparecer onde você deve inserir a senha para a conta de usuário que executará a tarefa. Isso traz outro requisito. Você não pode usar uma conta que não tenha uma senha. A conta do usuário precisa ter uma senha para que a tarefa seja executada.

Por fim, você deve executar a tarefa manualmente uma vez no Agendador de Tarefas para garantir que ela seja executada. Se funcionar bem manualmente depois de alterar todas as configurações, ele deverá ser executado quando for necessário acioná-lo. No meu caso, deveria acontecer na inicialização e depois que eu fiz as alterações, tudo funcionou bem.

Observe que, se o script estiver acessando computadores diferentes em um domínio quando for executado, tente usar a conta de administrador de domínio para executar a tarefa. Isso garantirá que a conta tenha permissões suficientes para acessar os computadores remotos.

Outro item a ser observado é se o script acessa recursos em um compartilhamento de rede. Se o seu script estiver usando letras para acessar a rede, talvez ele não seja executado. Por exemplo, em vez de usar F: \ data \, você deve usar \\ machinename \ share_name \ data \ no script. Se você ainda não conseguir executar seu script, poste um comentário aqui e tentarei ajudar. Apreciar!

Top