2017-04-12 90 views
0

我想編寫一個腳本,在遠程windows機器上執行命令,並從該命令獲取輸出。問題是,我想在Windows中使用內置的軟件,所以我不能不幸地使用SSH爲例。我找到了「wmi」庫,我可以登錄到機器並執行命令,但我不知道如何從該命令接收輸出。在遠程windows機器上執行命令,並在Python中獲取輸出

import wmi 

c = wmi.WMI("10.0.0.2", user="administrator", password="admin") 
process_startup = c.Win32_ProcessStartup.new() 
process_id, result = c.Win32_Process.Create (r'cmd /c ping 10.0.0.1 -n 1 > c:\temp\temp.txt') 
if result == 0: 
    print("Process started successfully: %d" % process_id) 

print(result) 

我試圖將輸出重定向到文件,但我無法找到任何方式來獲得文本文件的內容無論是。

是否有任何可能的方式使用wmi或其他python庫獲取輸出或文本文件內容?

回答

0

對於描述的應用程序,您可能會發現RPyC非常適合。這是一個可以連接併發布命令的Python遠程服務器;它將執行Python可以在目標機器上執行的任何操作。例如,您可以使用subprocess模塊運行Windows命令並捕獲輸出,然後返回結果。

安全的做法是將遠程功能作爲服務公開 - 基本上,它只是一個RPyC可以爲您運行的Python腳本。但是,您也可以使用RPyC classic mode,這與在遠程計算機上直接運行python會話非常相似。只有當您不擔心安全性時,才應該使用它,因爲經典模式可以在遠程計算機上執行任何東西 - 但它對原型設計很有用。

+0

感謝這個建議,它應該適用於我的情況。我有很多Windows機器,這就是爲什麼我嘗試使用內置解決方案解決這種情況的原因,其中不需要額外的配置。如果我不會找到任何方法與wmi一起完成,那麼我可能會使用這個解決方案:) – Garzum

相關問題