有没有办法获取映射到网络文件共享服务器的所有计算机的列表?每台计算机可能有不同的驱动器号,但服务器名称相同。
场景:提供驱动器映射到 \CompanyFileShare\c$ 的任何计算机的列表
我愿意使用现有软件,或者尝试编写一个脚本。
答案1
在服务器上,打开计算机管理并导航到系统工具->共享文件夹。
- 共享文件夹将列出每个共享的客户端连接数。
- 会话文件夹将列出与任何共享的每个客户端连接。
- 打开文件文件夹将按文件名和用户(但不是客户端计算机)列出当前锁定的文件。
您无法查看每个共享的客户端连接列表。
注意:从那里,您可以通过右键单击并单击“导出列表”来导出列表。
答案2
我在这个博客上找到了与您的问题类似的内容:确定哪些驱动器映射到网络共享,他们提供了一个脚本,您可以根据自己的需要对其进行编辑。请仔细阅读。
因此 Win32_LogicalDisk 可以帮上忙。使用此类,我们不仅可以确定哪些驱动器映射到网络共享,还可以确定它们映射到哪些网络共享。而要做到这一点,只需要一个这样的脚本:
strComputer = “.” Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\cimv2”) Set colDrives = objWMIService.ExecQuery _ (“Select * From Win32_LogicalDisk Where DriveType = 4”) For Each objDrive in colDrives Wscript.Echo “Drive letter: ” & objDrive.DeviceID Wscript.Echo “Network path: ” & objDrive.ProviderName Next
该脚本首先连接到本地计算机上的 WMI 服务。(通常,您可以修改此脚本以针对远程计算机运行,只需将该计算机的名称分配给变量 strComputer 即可。)然后我们使用以下代码行返回所有映射的网络驱动器的集合:
Set colDrives = objWMIService.ExecQuery _ (“Select * From Win32_LogicalDisk Where DriveType = 4”)
您可能已经猜到了,这里的关键在于我们的 Where 子句。我们要求查找 DriveType 等于 4 的所有类实例;不用说,DriveType 等于 4 表示映射网络驱动器。(有关其他 DriveType 值,请参阅 MSDN 上的 WMI SDK。)查询返回所有映射驱动器的集合;然后我们设置 For Each 循环来遍历该集合。对于每个映射驱动器,我们回显两个属性的值:DeviceID,返回驱动器的驱动器号;ProviderName,返回驱动器映射到的网络共享。
换句话说,我们得到类似这样的信息:
Drive letter: E: Network path: \\atl-fs-01\public Drive letter: F: Network path: \\atl-fs-01\finance Drive letter: G: Network path: \\atl-fs-01\users\kenmyer
答案3
我最终利用了我们公司内部的一款名为 Lansweeper 的工具。一开始我并不知道它的功能,但它包含大量有关我们资产的信息,包括映射的网络驱动器。我能够在短时间内生成一份有关我们所有 3000 多项资产的报告,我得到了我所需要的信息。谢谢你的帮助。