我需要使用 PowerShell 脚本 (v 1.0) 确定访问 Windows XP (SP2) 计算机上共享文件夹的用户/会话。这是使用计算机管理 | 系统工具 | 共享文件夹 | 会话显示的信息。有人能给我指点一下如何操作吗?
我猜测它将需要 WMI 查询,但我最初的在线搜索并未显示查询详细信息。
谢谢,MagicAndi
答案1
我想出了以下脚本:
$computer = "LocalHost"
$namespace = "root\CIMV2"
$userSessions = Get-WmiObject -class Win32_ServerConnection -computername $computer -namespace $namespace
if($userSessions -ne $null)
{
Write-Host "The following users are connected to your PC: "
foreach ($userSession in $userSessions)
{
$userDetails = [string]::Format("User {0} from machine {1} on share: {2}", $userSession.UserName, $userSession.ComputerName, $userSession.ShareName)
Write-Host $userDetails
}
Read-Host
}
以下文章很有用:
- http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/filesfolders/sharedfolders/
- http://www.computerperformance.co.uk/powershell/powershell_wmi_shares.htm
- http://www.codeproject.com/KB/cs/NetWorkSpy.aspx?msg=2384830
与往常一样,如果您无法在 PowerShell 中找到执行此操作的方法,请查看是否有人在 C# 中做过类似的事情。