Назад | Перейти на главную страницу

Определение пользователей, получающих доступ к общей папке с помощью PowerShell

Мне нужно определить пользователей / сеансы, получающие доступ к общей папке на компьютере с Windows XP (SP2), с помощью сценария PowerShell (v 1.0). Это информация, отображаемая с помощью Computer Management | Системные инструменты | Общие папки | Сессии. Может ли кто-нибудь подсказать мне, как это сделать?

Я предполагаю, что для этого потребуется запрос 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 #.