Se você tiver um arquivo .BAT e estiver tentando executá-lo automaticamente usando o Agendador de Tarefas no Windows, talvez tenha encontrado o problema em que ele simplesmente não é executado, a menos que você execute a tarefa manualmente.
Eu criei um arquivo de lote que exclui tudo dentro de uma pasta temporária sempre que o computador é inicializado. Eu criei uma tarefa básica no Agendador de Tarefas e esperei o melhor. Infelizmente, nada aconteceu quando o meu computador inicializou. Depois de muita tentativa e erro, descobri como fazer o script ser executado.
Neste artigo, vou mostrar as configurações e as permissões que você precisa ajustar para obter seu arquivo de lote para ser executado sem intervenção manual.
Etapa 1: Verifique as permissões de arquivo / pasta
A primeira etapa para corrigir esse problema é garantir que a conta esteja sendo usada para executar o script no Agendador de tarefas tem permissões de controle total na pasta que contém o script, o script próprio e quaisquer pastas / arquivos que o script toca quando é executado.
Por exemplo, criei o seguinte script de lote abaixo:
set folder="C:\test"cd /d %folder% for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)
Salvei o arquivo .BAT na minha pasta Documentos. O caminho é C: \ Users \ nome do usuário \ Documents. Fui para C: \ Users \ nome de usuário, cliquei com o botão direito do mouse na pasta Documentse cliquei em Propriedades. Em seguida, cliquei na guia Segurança.
Como você pode ver, a conta de usuário Aseem foi adicionado explicitamente e recebeu a permissão Controle total. 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, é bom ir, porque não é. Por fim, 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 na pasta. e adicionar minha conta de usuário lá com permissões de controle total. É meio chato ter que fazer isso, mas é a única maneira de executar o script.
Observação: a conta que está sendo usada para executar o script deve fazer parte do grupo Administradoreslocal no computador. No meu caso, a conta do Aseem é uma conta de administrador e, portanto, faz parte do grupo Administradores local.
Etapa 2: verifique as configurações do Agendador de Tarefas
Agora, vamos para o Agendador de tarefas e alterar as configurações apropriadas. 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 sobre ele e ele abrirá a tarefa sozinho na mesma janela. Para editar a tarefa, você terá que clicar com o botão direito do mouse 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 Aseem, à qual eu concedi 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ãoe escolher Windows Vista, Windows Server 2008na caixa Configurar para.
Nas Açõesguia, você tem que selecionar o script, clique em Editare, em seguida, adicione o caminho para a pasta que contém o script na caixa e Iniciar em (opcional). Isso pode parecer desnecessário, mas não é. No meu caso, eu coloco C: \ Users \ Aseem \ Documents \na caixa.
Agora clique em OKpara salvar as configurações. Quando você fizer isso, um 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 tem que ter uma senha para que a tarefa seja executada.
Por fim, você deve executar a tarefa manualmente uma vez no Agendador de Tarefas. para se certificar de que funciona. Se funcionar bem manualmente depois de alterar todas as configurações, ele deverá ser executado quando for acionado. No meu caso, ele deveria acontecer na inicialização e depois que eu fiz as alterações, tudo funcionou bem.
Observe que, se o seu script for Ao acessar diferentes computadores em um domínio quando executado, você deve tentar 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 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. Aproveite!