Come riavviare a distanza un servizio su una macchina protetta da password utilizzando Python?

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

  •  19-09-2019
  •  | 
  •  

Domanda

Ho deciso di affrontare Python come una nuova lingua da imparare. La prima cosa che voglio fare è il codice di uno script che mi permetterà di riavviare in remoto dei servizi su altre macchine dalla mia macchina locale. Come faccio a fare questo quando la macchina remota richiede un nome utente e una password per accedere? Non ho bisogno di una soluzione completa da dare a me, ma forse alcune indicazioni su quali librerie devo usare o eventuali problemi ho bisogno per affrontare quando si scrive la sceneggiatura.

EDIT: Tutte le macchine a distanza utilizzano Windows 2003

È stato utile?

Soluzione

La gente di solito consigliamo di paramiko come una libreria per fare ssh (e sto supponendo che si necessario ssh per entrare nella macchina remota). C'è una buona esercitazione per esso.

Modifica : Su Windows, il modo più semplice è probabilmente quello di usare SysInternals utility psservice , per essere richiamato con os.system; questo può avviare un servizio remoto, e accetta le credenziali di accesso.

Se si vuole farlo direttamente in Python, è necessario win32service.StartService . Prima di allora, è necessario aprire il responsabile del servizio a distanza, e poi il servizio remoto. Prima di questo, è necessario per rappresentare l'utente come il quale si desidera eseguire l'operazione, vedere la esempio .

Altri suggerimenti

Date un'occhiata a quale si basano su paramiko . Questo è veramente un buon strumento per automatizzare le operazioni a distanza con python.

Documentazione Tessuto vi mostrerà quanto è facile da usare.

Che tipo di sistema operativo è la vostra corsa macchina remota? Se si tratta di Linux, ssh(1) eseguire utilizzando il subprocess modulo .

Se è finestre, quindi ottenere il . Essi consentono di chiamare funzioni di Windows. Ci dovrebbe essere un'API per consentire ai servizi di accesso. Se non lo fanno, c'è uno strumento chiamato sc ( docs ), che è possibile eseguire utilizzando il modulo sottoprocesso.

Quale sistema operativo per i computer di destinazione? Se 'servizio' è 'servizio di Windows NT', e la vostra macchina locale è anche di Windows, userei IronPython come l'implementazione del linguaggio Python e chiamo direttamente nelle strutture WMI nello spazio dei nomi .net System.Management - cui sono stati concepiti per amministrazione remota del genere.

In Windows, il WMI modulo è ora fantastico per questo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top