获取映射到服务器的计算机列表

获取映射到服务器的计算机列表

有没有办法获取映射到网络文件共享服务器的所有计算机的列表?每台计算机可能有不同的驱动器号,但服务器名称相同。

场景:提供驱动器映射到 \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 多项资产的报告,我得到了我所需要的信息。谢谢你的帮助。

相关内容