jeśli jesteś sysadminem pracującym w środowisku, które ma mnóstwo komputerów połączonych z domeną, wiedząc, kto korzysta z którego komputera, może pomóc ci lepiej wykonywać swoją pracę.
istnieje linia poleceń, która działa idealnie, jeśli chcesz od czasu do czasu sprawdzić kilka komputerów.
quser /server:computername
możesz nawet kolejkować wiele z nich w jednym poleceniu, aby odpytywać informacje z wielu komputerów, w ten sposób.
quser /server:computer1 & quser /server:computer2 & quser /server:computer3
chociaż polecenie jest niezwykle przydatne, nie pomaga zbytnio, jeśli chcesz użyć PowerShell.
aby sprawdzić, czy ktoś używa komputera w sieci w PowerShell,
Get-CimInstance Win32_ComputerSystem -ComputerName $computername | Select -ExpandProperty username
ale wadą jest to, że nic nie zwraca, jeśli ktoś loguje się do tego komputera przez RDP. Jeśli to Ci nie przeszkadza, możesz zintegrować go ze skryptem, który możesz uruchomić, aby pobrać informacje z wielu komputerów.
na przykład, możesz pobrać listę komputerów z określonego OU w reklamie i sprawdzić, czy któryś z nich był używany, zanim wypchniesz jakiekolwiek aktualizacje, które mogą zakłócić pracę innych.
$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; } }}
skrypt pobiera listę komputerów z OU i dla każdego komputera na liście sprawdza, czy jest on online. Jeśli tak, to sprawdza, czy ktoś korzysta z tego komputera. Następnie możesz wykonywać inne zadania w zależności od potrzeb.