![](/img/trans.png)
[英]How to connect to a remote Windows machine to execute commands using python?
[英]How to access a different/remote Windows machine using Python?
我目前正在使用機器A,並且正在嘗試通過Python訪問機器B,以將文件從機器B復制到機器A。
我已經嘗試過這里介紹的方法了。 如何連接到遠程Windows計算機以使用python執行命令? ,但運氣不好,因為我什至無法訪問遠程計算機。 我願意接受其他解決方案,如果使用Python 3+,甚至會更好。 這是正在使用的代碼的示例。
ip = r'\\IP.IP.IP.IP'
username = r'AccountUserName'
password = r'AccountPassword'
# -------------------------------- with win32net
import win32net
import win32file
data = {
'remote': r'\\IP.IP.IP.IP\C$',
'local': 'C:',
'username': username,
'password': password
}
win32net.NetUseAdd(None, 2, data)
# -------------------------------- with wmi
import wmi
from socket import *
try:
print ("Establishing connection to %s" %ip)
connection = wmi.WMI(ip, user=username, password=password )
print ("Connection established")
except wmi.x_wmi:
print ("Your Username and Password of "+getfqdn(ip)+" are wrong.")
根據此處的文檔https://docs.microsoft.com/zh-cn/windows/win32/api/lmuse/nf-lmuse-netuseadd如果要在同一台計算機上運行該功能,則腳本將從(A ),則可以將第一個參數f NetUseAdd保留為NONE,但是這樣我得到了錯誤
pywintypes.error: (87, 'NetUseAdd', 'The parameter is incorrect.')
如果我將其更改為“ 127.0.0.1”,則會收到錯誤消息
pywintypes.error: (50, 'NetUseAdd', 'The request is not supported.')
最后,如果我使用嘗試訪問的IP進行更改,則會收到錯誤消息
pywintypes.error: (1326, 'NetUseAdd', 'Logon failure: unknown user name or bad password.')
它給出了錯誤
Your Username and Password of \\IP.IP.IP.IP are wrong.
可以有多種方法來實現這一目標。 下面給出其中之一,它利用了內置的Windows實用程序。
import os
machine_b = {"ip":"10.197.145.244","user":"administrator","pwd":"abc1234"}
src = r"C:\Temp" # folder to copy from remote machine
dest = r"C:\Python27\build\temp" # destination folder on host machine
network_drive_letter = "Z:"
source_driver_letter = os.path.splitdrive(src)[0][0]
cmd = "netuse %s \\%s\%s$ %s /u:%s"%(network_drive_letter, machine_b["ip"],source_driver_letter,machine_b["pwd"],machine_b["user"])
os.system(cmd)
cmd = "robocopy %s %s /mir"%(src.replace(source_driver_letter,network_drive_letter),dest)
os.system(cmd)
您可以通過處理異常並將os.system替換為subprocess.Popen調用來改進此代碼。 注意:/ MIR開關要小心,因為它可以在主機中復制和刪除文件。 它創建目標文件夾的鏡像。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.