Answers:
我知道有两种方法可以解决此问题。一个是不可靠的,但对于大多数情况来说可能已经足够了。一个是广泛的,但是很难以超过少数用户连接的任何规模实施。
Kinda-Sorta方式:选择系统工具>>共享文件夹>>打开文件,以查看文件服务器上打开了哪些文件。从那里,您可以将具有打开文件的用户帐户与他们所连接的共享相关联。
但是,这可能是不够的。不相信我吗?进入计算机管理,然后选择系统工具>>共享文件夹>>会话以查看谁已连接。然后查看该# open files
列。某些会话应具有0个打开的文件。您怎么知道他们在技术上有什么联系?我很高兴你问...
广泛但难以扩展的方式:net share [sharename]
对每个有问题的共享执行操作,以获取与其连接的用户的列表。在我的测试中,甚至列出了没有打开文件的用户。
您还可以使用Server 2008及更高版本中的Share and Storage Manager管理工具来代替Computer Management。在共享列表中找到共享,然后在操作窗格中右键单击“管理会话”。您将看到会话列表,包括打开文件为零的会话。
但是...但是...我想找到一个特定的用户而不查询每个共享!如果您有一个要跟踪的特定用户,则查找该信息的唯一途径似乎是查询每个共享,然后盯着它查找所需的用户。用眼球表示管道输出到findstr
或select-string
。可以将工作流程外推到一个脚本,该脚本枚举所有可用的共享,查询连接的用户并在输出中查找有问题的用户,但这似乎是读者的一种练习,而不是Microsoft作为本机功能提供的功能。
net share sharename
但最终找到了会话连接到的共享。我不知道是否可以撤消查询并从您感兴趣的用户开始,然后将其跟踪到与其有连接的共享。可能需要一些自定义PowerShell。
这是一个非常老的问题,但是被接受的答案跳过了查找信息的最佳方法之一。GUI可以显示“已连接的客户端”,但不能在“打开文件”下显示这些连接。在这种情况下,它需要使用WMI查找连接到共享的用户。
这是powershell命令,用于查看谁连接到特定共享和示例输出:
Get-WmiObject Win32_ServerConnection -ComputerName SERVER01 | Select-Object ShareName,UserName,ComputerName | Where-Object {$_.ShareName -eq "SHARENAME"}
输出示例:
ShareName UserName ComputerName
--------- -------- ------------
SHARENAME user1 10.0.0.20
SHARENAME user2 10.0.0.30
SHARENAME user3 10.0.0.40
我认为提供的答案实际上无法回答问题。如果您使用的是Windows Server 2008(NOT R2),请在“计算机”上单击鼠标右键,然后选择“管理”,然后确认UAC消息,服务器管理器MMC将启动。在服务器管理器下面是下列各项:角色,功能,诊断,配置和存储。这五个项目似乎都没有提供共享名称连接作为选项,这就是原始问题的所在。答案中的EDIT附加功能更有用,它提到了共享和存储管理器,但似乎仍未提供答案。它提供了共享名称和属性的完整列表,但是活动连接也未在此处显示。在Windows Server 2003中,曾经有一个OS实用程序,用于显示服务器,共享和连接,但是我还没有在WS2008上找到它。我曾经使用过一个来自Adkins Resource的名为Hyena的第三方实用程序,我认为该实用程序仍在市场上销售,它在显示有关服务器状况几乎各个方面的所有信息方面做得很好。