Wie kann ich offene Freigabeverbindungen mit Freigabename und Clientzugriff auf einem Windows-Server auflisten?

Wie kann ich offene Freigabeverbindungen mit Freigabename und Clientzugriff auf einem Windows-Server auflisten?

net sessionzeigt offene Freigabesitzungen.
net sharezeigt verfügbare Freigaben.

Aber wie kann ich die Liste der offenen Sitzungen für jede einzelne Freigabe abrufen? Ich weiß, dass die GUI Freigaben, Sitzungen und offene Dateien auflisten kann, aber eine GUI ist nicht für die Prozessautomatisierung geeignet.

Antwort1

Sie benötigenWin32_ServerConnection-Klassedafür.

In Powershell können Sie die Liste der Sitzungen nach Freigaben sortiert abrufen mit:

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

Fertige Funktion für Sie:

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

verwandte Informationen