2017-06-20 327 views
3

我想从具有分布式文件系统体系结构的Windows网络位置获得类似ping的响应,例如,在Python中获取网络位置的DFS路径

path = r'\\path\to\some\shared\folder_x' 
delay = ping_func(path) 
print delay # return response in milliseconds ? 
234 

一旦我有主机,我可以轻松地ping位置。

我可以通过查看Windows资源管理器中的DFS选项卡来确定folder_x的主机名,例如:

\\hostcomputer.server.uk\shared$\folder_x 

如何在Python中以编程方式执行此操作?

+0

我想澄清一下,我不想诉诸使用'dfsutil.exe'我希望解决方案是一个纯python解决方案。 –

+2

这是否有助于https://mail.python.org/pipermail/python-win32/2008-August/008115.html? –

+0

它似乎是接近但不是那里 –

回答

1

由于您使用的是Windows,因此您始终会安装pywin32WMI以获取WMI功能。以下应该可以帮助您连接到远程DFS。无法测试它,因为我没有Windows或DFS

import wmi 

c = wmi.WMI (ip, user="user", password="pwd") 

for share in c.Win32_Share (Type=0): 
    print share.Caption, share.Path 
    for session in share.associators (
    wmi_result_class="Win32_ServerConnection" 
): 
    print " ", session.UserName, session.ActiveTime 
+0

当我instanciate'C'我刚刚得到错误'x_wmi:' –

+0

你可以先在本地机器上尝试吗?我认为这应该启用一些级别或远程访问。我不知道是什么,最好是让它在你有本地设置的机器上工作,然后找出远程连接部分 –

+0

不幸的是,我没有权限在本地创建DFS共享 –