Si vous êtes un administrateur système travaillant dans un environnement qui compte des tonnes d’ordinateurs connectés à un domaine, savoir qui utilise quel ordinateur peut grandement vous aider à mieux faire votre travail.
Il existe une ligne de commande qui fonctionne parfaitement si vous voulez juste vérifier une poignée d’ordinateurs de temps en temps.
quser /server:computername
Vous pouvez même en mettre en file d’attente plusieurs dans une commande pour interroger les informations de plusieurs ordinateurs, comme ceci.
quser /server:computer1 & quser /server:computer2 & quser /server:computer3
Bien que la commande soit extrêmement utile, cela n’aide pas beaucoup si vous souhaitez utiliser PowerShell.
Pour vérifier si quelqu’un utilise un ordinateur sur le réseau dans PowerShell,
Get-CimInstance Win32_ComputerSystem -ComputerName $computername | Select -ExpandProperty username
Mais l’inconvénient est qu’il ne renvoie rien si quelqu’un se connecte à cet ordinateur via RDP. Si cela ne vous dérange pas, vous pouvez l’intégrer dans un script que vous pouvez exécuter pour extraire les informations de plusieurs ordinateurs.
Par exemple, vous pouvez extraire une liste d’ordinateurs d’une unité d’organisation spécifique de votre ANNONCE et vérifier si l’une d’entre elles a été utilisée avant de lancer des mises à jour susceptibles d’interrompre le travail des autres.
$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; } }}
Le script extrait une liste d’ordinateurs d’une unité d’organisation et pour chaque ordinateur de la liste, il vérifie s’il est en ligne en premier. Si c’est le cas, il vérifie ensuite si quelqu’un utilise cet ordinateur. Vous pouvez ensuite effectuer d’autres tâches en fonction de vos besoins.