這次我詢問遠程Windows計算機上的運行命令。 讓我在這裏更具描述性。
**我有一臺機器上安裝了python,我想運行一些powershell和cmd命令,或者我想發送一個cmd文件到遠程windows機器,以便它可以在那裏運行,並且每個輸出都像錯誤,stdout I可以回到燒機。
就像我想從Python遠程管理遠程機器。如果可能的話,我可以在多臺機器上用python同時遠程啓動命令。
請記住,其他系統沒有安裝任何python。 **使用python運行遠程Windows機器上的命令
回答
您可以嘗試使用類似Pyro4與subprocess.popen
的組合。
Pyro4爲遠程方法調用的框架,subprocess.popen
用於創建底層操作系統進程。
這是我的理解,Windows 10(本月晚些時候發佈)將全面支持SSH開箱即用。因此,如果您只能使用Windows 10或更新版本,則可能不需要在其上安裝SSH服務器。 (我實際上沒有任何運行Windows 10 beta的機器,所以我還沒有能夠測試這個。) – ArtOfWarfare
微軟提供的OpenSSH相當麻煩。最好避免。 @ArtOfWarfare從他們的github頁面看來,似乎很多人都有類似的問題。不知道它是否會起作用,但最好的機會是從這裏使用一個建議的sshd服務器:https://serverfault.com/questions/8411/what-is-a-good-ssh-server-to-use -on-windows –
@ArtOfWarfare,我還必須在遠程Windows機器上執行python腳本。你是如何解決這個問題的? –
您可以使用ssh
此爲khagler建議。但我更喜歡在兩邊都安裝Python,因爲Python使我在遠程端有了更多的控制權。
例如,ssh
只是提供兩個計算機之間的單個信道。這意味着我必須在遠程端摺疊stdout
和stderr
以通過電線發送。使用遠程Python服務器,我可以運行更復雜的腳本,我可以準確控制我想要公開的內容(如果允許遠程訪問任何命令都可以執行),並且錯誤處理更簡單。
或兩者的組合:在遠程計算機上安裝Python,然後用ssh
啓動Python腳本。然後,您可以使用自定義協議與其進行通信,而不受命令行/ shell界面的限制。您甚至可以使用scp
遠程安裝新腳本。
我想知道你在Windows上運行的是什麼sshserver?實際上,我嘗試着使用兩種不同的SSH服務器來做同樣的事情:微軟提供的'mobasshd'和'openSSH'。對於這兩個服務器,即使通過手動ssh登錄,我也無法執行python腳本。我發佈在'serverfault':https://serverfault.com/questions/901041/how-to-run-a-python-script-remotely-via-ssh-on-a-windows-machine –
想知道你是否可以提供你正在使用的庫的具體細節? –
這是一個有點雷區,但「正確」的方式做到這一點(蟒蛇控制遠程勝機無蟒蛇)是使用WMI或水資源管理庫。
有一個WMI module by Tim Golden(誰是Windows-on-Windows世界的權威),WSMAN library from Dell和pywinrm module。選擇你的毒藥 - 它們都有自己的弱點(WRM必須在使用之前在服務器上啓用,儘管這不需要任何額外的軟件,它是全部的Windows; WMI在DCOM上工作,所以你會必須弄清楚DCOM安全等等)。
這聽起來像是最好的解決方案。我可以使用這些模塊來控制非Windows的Windows服務器,還是依賴只能在Windows上使用的基礎機制? – ArtOfWarfare
Tim的WMI模塊只是pywin32的一個包裝,所以不行,你不能在非windows上使用它。我不知道戴爾的一個(現在看起來被遺棄,順便說一句)。 WRM本身就是一個基於XML的協議(我認爲),所以理論上你可以做很多事情,但實際上它是那些沒人想要弄髒的「企業」標準之一。如果你真的想要的話,你可以試着查看流量並重新實現你所需要的功能。 –
WMI是一個禁止使用,僅限於Windows。 WSMAN文檔提到它支持Linux ...也許我可以讓它在OS X上工作。它支持2.6和更新,並且在2年前更新,所以它在很久以前並沒有被放棄。你的'pywinrm模塊'鏈接指向與'來自Dell的WSMAN庫'完全相同的地方 - 我認爲這是一個錯誤。我在這裏找到了'pywinrm':https://pypi.python.org/pypi/pywinrm/0.0.3。它看起來不錯...如果它允許我上傳和下載文件,它是完美的。 – ArtOfWarfare
知道這是一個很老的帖子,
我能想到的是現在是使用PowerShell的窗口遠程管理的最佳選擇。
下面是如何使用PowerShell和如何在Python中執行相同的執行在遠程計算機的命令。
PowerShell來啓動服務:
Get-Service -ComputerName aaa0001 -Name Tomcat9 | Start-Service
現在,接下來就是如何使用Python執行此,
import subprocess
subprocess.call(["C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe","Get-Service -ComputerName aaa0001 -Name Tomcat9 | Start-Service"])
這個例子顯示瞭如何在Windows啓動Tomcat9窗口服務。 (「aaa0001」就是計算機名稱)
- 1. 在遠程機器上運行命令
- 2. Fabric可以在遠程Windows機器上運行shell命令嗎?
- 3. 使用Java在遠程計算機上運行命令行
- 4. 使用批處理文件在Windows機器上運行遠程Linux機器上的自定義命令
- 5. 在Python中的遠程機器上執行命令
- 6. 如何使用perl在遠程計算機上運行命令?
- 7. 如何使用Perl在遠程計算機上運行命令?
- 8. 使用ssh在遠程計算機上運行命令
- 9. C++:在Windows機器上遠程執行命令
- 10. 如何使用telnetlib3在python asyncio上運行遠程命令
- 11. PowerShell - 遠程運行Windows命令
- 12. 使用SQLPlus在遠程Oracle服務器上運行命令行命令
- 13. Rails應用程序在遠程計算機上運行命令
- 14. 在遠程windows機器上執行命令,並在Python中獲取輸出
- 15. 使用Maven運行遠程命令
- 16. 使用Javascript運行遠程命令
- 17. 使用ssh運行遠程awk命令
- 18. SSH遠程機器和執行命令
- 19. 執行Python命令遠程
- 20. 從命令行通過capistrano在遠程主機上運行命令
- 21. 從Web應用運行遠程服務器上的命令
- 22. 如何在遠程服務器上運行命令行程序
- 23. 運行cmd命令到PowerShell上的遠程主機
- 24. 使用shell腳本的遠程機器上的多個命令
- 25. 運行命令使用遠程計算機
- 26. 如何使用pysphere執行遠程計算機上的命令
- 27. c#在Windows 2008 64位上運行命令遠程
- 28. Fabric/python。使用本地sshkey運行遠程命令
- 29. 如何使用python腳本運行遠程shell命令
- 30. 在遠程機器上運行線程
thanx的快速回復,但據我所知pyro4是所有ABT遠程調用的python對象,但我的情況是,Python是一個系統上運行和其他系統是不是有python安裝。 – skyemperor