2009-11-25 184 views
2

我需要使用PowerShell脚本(v 1.0)确定访问Windows XP(SP2)计算机上的共享文件夹的用户/会话。这是使用计算机管理|显示的信息系统工具|共享文件夹|会话。任何人都可以给我指导如何去做这件事?确定用户使用PowerShell访问共享文件夹

我猜这将需要一个WMI查询,但我最初的在线搜索没有透露什么查询的细节。

感谢,MagicAndi

回答

3

我想出了下面的脚本:

$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#中做了类似的事情。

+1

我喜欢这个解决方案 - 只要记住“交互式”使用,“网络会话”就更快。 – 2009-11-25 19:32:55

+0

@MagicAndi:Read-Host的存在导致脚本暂停。你对这条线的计划是什么? – Robin 2014-09-16 09:57:58

+0

Rob,为了回答你的问题......最后的读主机在运行这个脚本时不会自动关闭控制台窗口,以便你能看到输出。这只有在您通过双击它从资源管理器窗口运行脚本时才是必需的。希望到目前为止,你已经知道了这一点,但对于任何可能会遇到这个问题的人.....你去了。 – Dimesio 2015-06-03 20:59:02

相关问题