Как составить список открытых подключений к общим ресурсам с указанием имени общего ресурса и клиентского доступа на сервере Windows?

Как составить список открытых подключений к общим ресурсам с указанием имени общего ресурса и клиентского доступа на сервере Windows?

net sessionпоказывает открытые сеансы обмена.
net shareпоказывает доступные общие ресурсы.

Но как мне получить список открытых сессий для каждого конкретного общего ресурса? Я знаю, что GUI может выводить список общих ресурсов, сессий и открытых файлов, но GUI не подходит для автоматизации процессов.

решение1

Вам нужно использоватьКласс Win32_ServerConnectionдля этого.

В Powershell вы можете получить список сеансов, отсортированных по общим ресурсам, с помощью:

Get-WmiObject win32_serverconnection -computername $computername  | Select username, computername, sharename | sort sharename

Готовая функция для вас:

Function Get-ServerConnection {
Param (
$ComputerName = 'localhost',
$account = '') # if empty, it means all accounts

# Now get the connections from that account
if ($account = '' )
   {
   Get-WmiObject win32_serverconnection -computername $computername  | Select username, computername, sharename | ft -a
   }
else
   {Get-WmiObject win32_serverconnection -computername $computername | where username -match $account | select username,computername,sharename | sort username
   }
}

Get-ServerConnection

Связанный контент