Executando um script Python que acessa um arquivo protegido quando o Windows é iniciado

0

Eu tenho um script Python que adiciona algum texto ao arquivo hosts , que permite apenas o acesso de administrador. Então, o que eu faço é abrir primeiro cmd a partir do menu Iniciar no Windows 7 e, em seguida, clique com o botão direito e vá para Executar como administrador.

Isso funciona bem.

No entanto, minha intenção é que o script Python seja executado assim que o Windows for iniciado.

Se não houvesse nenhum arquivo hosts protegido entre, eu simplesmente mudaria a extensão do script Python de .py para .pyw e colocaria o script na pasta Startup para que o Windows o executasse na inicialização, mas neste caso o script não seria executado.

Alguém sugeriria como eu poderia fazer isso?

Edita : A cópia sugerida não resolve o meu problema. Se eu apontar para o script .py ou .pyw no Agendador de Tarefas, nada acontece.

Acho que eu deveria estar apontando para um arquivo .cmd ou .bat, mas não sei o que escrever em tal arquivo.

    
por multigoodverse 02.05.2016 / 15:48

2 respostas

1

Simples,

  1. Abra o bloco de notas
  2. Insira o seguinte código

@echo off

start < python script path here >

exit

Nota: mencione o caminho do script .py na tag acima

  1. Salve este arquivo como "anyname.bat" em qualquer lugar
  2. Agendador de tarefas abertas
  3. Criar nova tarefa
  4. ativar o token " Run with highest privileges " para esta tarefa
  5. Vá para a guia de ação
  6. Adicione o gatilho run a program e selecione o arquivo em lote
  7. Programe a tarefa para run at startup
  8. Clique em OK
por 02.05.2016 / 20:04
0

Respondendo a minha própria pergunta. O que eu fiz foi criar um arquivo .bat como sugerido pela resposta de Ashok:

@echo off
start C:/folder/script.pyw
exit

Você deve renomear seu Python com uma extensão .pyw.

Clicar duas vezes no arquivo .bat não resolve o problema, pois ele não está sendo executado como administrador. Para corrigir isso:

  1. Agendador de tarefas abertas
  2. Criar nova tarefa
  3. Selecione "Executar com privilégios mais altos"
  4. Ir para a guia action
  5. Adicione o gatilho run a program e selecione o arquivo em lote
  6. Programar a tarefa para ser executada na inicialização
  7. Clique em salvar

Feito.

    
por 03.05.2016 / 11:16