2009-11-25 4 views
2

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

Мне нравится решение - просто имейте в виду «интерактивное» использование, «чистая сессия» выполняется быстрее. –

+0

@MagicAndi: Существование Read-Host заставляет скрипт останавливаться. Каков был ваш план этой линии? – Robin

+0

Rob, чтобы ответить на ваш вопрос ... читающий хост в конце держит окно консоли автоматически закрытым, когда этот скрипт запущен, чтобы вы могли видеть результат. Это необходимо, только если вы запускаете скрипт из окна проводника, дважды щелкнув его. Надеюсь, к тому времени вы это поняли, но для всех, кто может столкнуться с этим вопросом ..... там вы идете. – Dimesio

Смежные вопросы