2
我需要使用PowerShell脚本(v 1.0)确定访问Windows XP(SP2)计算机上的共享文件夹的用户/会话。这是使用计算机管理|显示的信息系统工具|共享文件夹|会话。任何人都可以给我指导如何去做这件事?确定用户使用PowerShell访问共享文件夹
我猜这将需要一个WMI查询,但我最初的在线搜索没有透露什么查询的细节。
感谢,MagicAndi
我需要使用PowerShell脚本(v 1.0)确定访问Windows XP(SP2)计算机上的共享文件夹的用户/会话。这是使用计算机管理|显示的信息系统工具|共享文件夹|会话。任何人都可以给我指导如何去做这件事?确定用户使用PowerShell访问共享文件夹
我猜这将需要一个WMI查询,但我最初的在线搜索没有透露什么查询的细节。
感谢,MagicAndi
我想出了下面的脚本:
$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
}
下面的文章是有用的:
与往常一样,如果您在PowerShell中找不到方法,请查看是否有人在C#中做了类似的事情。
我喜欢这个解决方案 - 只要记住“交互式”使用,“网络会话”就更快。 – 2009-11-25 19:32:55
@MagicAndi:Read-Host的存在导致脚本暂停。你对这条线的计划是什么? – Robin 2014-09-16 09:57:58
Rob,为了回答你的问题......最后的读主机在运行这个脚本时不会自动关闭控制台窗口,以便你能看到输出。这只有在您通过双击它从资源管理器窗口运行脚本时才是必需的。希望到目前为止,你已经知道了这一点,但对于任何可能会遇到这个问题的人.....你去了。 – Dimesio 2015-06-03 20:59:02