我想使用我的python脚本从远程Windows 2008 R2服务器下载/上传文件。问题是我不想在我的Windows服务器盒上安装任何额外的东西。我想使用我的普通登录凭据来实现这一点。
以下是我听到的不同方法:
有没有其他方法可以实现这个目标?
答案 0 :(得分:2)
当在Windows中执行时,用户也会这样做。
如果您无法在服务器上安装其他软件,则需要安装驱动器,并与远程文件进行交互,就像它们是本地文件一样。
您提到要连接的远程服务器太多。为什么不选择一个驱动器号,并将其重新用于需要连接的每个服务器?
使用net use
,您可以从命令行挂载。
net use p: /delete:yes
net use p: \\remote_host\share_name password /user:domain\user
使用Python的subprocess包来运行mount命令。 Subprocess tutor
import subprocess
# Make sure the drive isn't mounted.
try:
subprocess.call('net use p: /delete:yes', shell=True)
except:
# This might fail if the drive wasn't in use.
# As long as the next net use works, we're good.
pass
for host in ("host1", "host2"):
# mount(map) the remote share.
subprocess.call('net use p: \\%s\share_name password /user:domain\user' % host, shell=True)
with open("p:\path\remote-file.txt", "r") as remote_file:
# do stuff
# dismount(map) the drive
subprocess.call('net use p: /delete:yes', shell=True)
(不要有一个Windows框和网络来测试它。)
答案 1 :(得分:0)
使用win_unc库:http://covenanteyes.github.io/py_win_unc/
这将允许您对文件路径进行常规修改,以及以其他用户身份登录。