2009-08-26 78 views
0

我決定把Python作爲一門學習的新語言。我想要做的第一件事是編寫一個腳本,使我能夠從本地機器遠程重啓其他機器上的服務。當遠程機器需要用戶名和密碼登錄時,我該怎麼做?我不需要給我一個完整的解決方案,但也許有一些關於我應該使用的庫的指示,或者在編寫腳本時需要解決的任何問題。如何在使用Python的密碼保護機器上遠程重啓服務?

編輯:所有遠程計算機使用的是Windows 2003

+0

您將如何訪問遠程機器?通過ssh或者其他方式? – 2009-08-26 07:13:58

+0

那麼你如何訪問它們(使用什麼機制)? – 2009-08-26 07:59:04

回答

3

人們通常建議paramiko作爲一個庫做的ssh(我假設你需要ssh來進入遠程機器)。它有一個很好的tutorial

編輯:在Windows上,最簡單的方法可能是使用SysInternals psservice實用程序,使用os.system調用;這可以啓動遠程服務,並接受登錄憑據。

如果您想直接在Python做到這一點,你需要win32service.StartService。在此之前,您需要打開遠程服務管理器,然後打開遠程服務。在此之前,您需要模擬要執行此操作的用戶,請參閱example

+0

os.system()不應再使用。改用子流程模塊。 – 2009-08-26 11:10:54

+0

嘗試更新的WMI模塊(https://pypi.python.org/pypi/WMI/),更方便用戶使用(您也可以在無麻煩的情況下停止服務)。 – Anthony 2013-03-13 16:54:48

1

什麼樣的操作系統是您的遠程機器上運行?如果是linux,使用subprocess module運行ssh(1)

如果它的窗口,然後拿到win32 extensions。它們允許您調用Windows功能。應該有一個API來允許訪問服務。如果他們不這樣做,可以使用名爲scdocs)的工具,您可以使用子流程模塊運行該工具。

+0

機器正在使用Windows 2003 – Draco 2009-08-26 07:21:33

1

目標機器的哪個操作系統?如果'service'是'Windows NT服務',並且你的本地機器也是Windows,我會使用IronPython作爲Python語言實現,並直接調用.net System.Management命名空間中的WMI工具 - 它們的意思是像這樣的遠程管理。

+0

機器正在使用Windows 2003 – Draco 2009-08-26 07:20:59

相關問題