net session
muestra sesiones abiertas para compartir.
net share
muestra las acciones disponibles.
Pero, ¿cómo puedo obtener la lista de sesiones abiertas para cada recurso compartido específico? Sé que la GUI puede enumerar recursos compartidos, sesiones y archivos abiertos, pero una GUI no es adecuada para la automatización de procesos.
Respuesta1
Necesitas usarClase Win32_ServerConnectionpara esto.
En Powershell puedes obtener la lista de sesiones ordenadas por recursos compartidos con:
Get-WmiObject win32_serverconnection -computername $computername | Select username, computername, sharename | sort sharename
Función lista para usted:
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