Si eres un administrador de sistemas que trabaja en un entorno que tiene toneladas de equipos unidos a dominios, saber quién está usando qué equipo puede ayudarte en gran medida a hacer mejor tu trabajo.
Hay una línea de comandos que funciona perfectamente si solo desea verificar un puñado de computadoras de vez en cuando.
quser /server:computername
Incluso puede poner en cola varios comandos en un solo comando para consultar la información desde varios equipos, como este.
quser /server:computer1 & quser /server:computer2 & quser /server:computer3
Aunque el comando es extremadamente útil, no ayuda mucho si desea usar PowerShell.
Para comprobar si alguien está utilizando un equipo de la red en PowerShell,
Get-CimInstance Win32_ComputerSystem -ComputerName $computername | Select -ExpandProperty username
Pero el inconveniente es que no devuelve nada si alguien inicia sesión en ese equipo a través de RDP. Si esto no le molesta, puede integrarlo en un script que puede ejecutar para extraer la información de varios equipos.
Por ejemplo, puedes extraer una lista de equipos de una unidad organizativa específica de tu ANUNCIO y comprobar si alguna de ellas se ha utilizado antes de enviar actualizaciones que puedan interrumpir el trabajo de otros.
$computers = Get-ADComputer -Filter * -SearchBase "OU=Desktops, OU=Computers, DC=domain_name, DC=local" | Sort-Object NameForEach ($computer in $computers) { if (Test-Connection $computer.name -Count 2 -Quiet) { $user = Get-CimInstance Win32_ComputerSystem -ComputerName $computername | Select -ExpandProperty username if ($user) { //do something usefule; } }}
El script extrae una lista de equipos de una unidad organizativa y, para cada equipo de la lista, comprueba si está en línea primero. Si es así, se pasa a comprobar si alguien está usando esa computadora. A continuación, puede realizar otras tareas en función de sus necesidades.