Como reiniciar remotamente um serviço em uma máquina protegido por senha usando Python?

StackOverflow https://stackoverflow.com/questions/1332853

  •  19-09-2019
  •  | 
  •  

Pergunta

Eu decidi enfrentar Python como uma nova linguagem para aprender. A primeira coisa que quero fazer é o código de um script que irá me permitir aos serviços remotamente reiniciar em outras máquinas da minha máquina local. Como eu iria fazer isso quando a máquina remota requer um nome de usuário e senha para fazer logon? Eu não preciso de uma solução completa para ser dado para mim, mas talvez algumas indicações sobre quais bibliotecas que eu deveria usar ou quaisquer questões que eu preciso para o endereço ao escrever o script.

EDIT: Todas as máquinas remotas estiver usando Windows 2003

Foi útil?

Solução

As pessoas costumam recomendar paramiko como uma biblioteca para fazer ssh (e eu estou supondo que você precisa ssh para entrar na máquina remota). Há uma boa tutorial para ele.

Editar : No Windows, a maneira mais fácil é provavelmente usar SysInternals PsService utilidade, a ser invocado com os.system; este pode iniciar um serviço remoto, e aceita as credenciais de logon.

Se você quiser fazê-lo diretamente em Python, você precisa win32service.StartService . Antes disso, você precisa abrir o gerente de atendimento remoto, e em seguida, o serviço remoto. Antes disso, você precisa para representar o usuário como o qual você deseja executar a operação, consulte o exemplo .

Outras dicas

Dê uma olhada Tecido wich é baseado em paramiko . Esta é realmente uma boa ferramenta para automatizar tarefas remotas com python.

Tecido Documentação irá mostrar como é fácil utilização.

Que tipo de OS é sua corrida máquina remota? Se é linux, ssh(1) executar usando o subprocess módulo .

Se é janelas, então, fazer o win32 extensões . Eles permitem que você chamar funções do Windows. Deve haver uma API para permitir aos serviços de acesso. Se não o fizerem, há uma ferramenta chamada sc ( docs ), que você pode executar usando o módulo de subprocesso.

Qual OS para as máquinas de destino? Se 'serviço' é 'Windows NT serviço', e sua máquina local é também o Windows, eu uso IronPython como a implementação da linguagem Python e chamar diretamente para as instalações WMI no .NET System.Management namespace - eles foram feitos para administração remota assim.

No Windows, o wmi módulo agora é fantástico para isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top