om du är en sysadmin arbetar i en miljö som har massor av domänanslutna datorer, att veta vem som använder vilken dator kan gå en lång väg att hjälpa dig att göra ditt jobb bättre.
det finns en kommandorad som fungerar perfekt om du bara vill kontrollera en handfull datorer då och då.
quser /server:computername
du kan även köa upp flera sådana i ett kommando för att fråga information från flera datorer, så här.
quser /server:computer1 & quser /server:computer2 & quser /server:computer3
medan kommandot är extremt användbart hjälper det inte mycket om du vill använda PowerShell.
för att kontrollera om någon använder en dator i nätverket i PowerShell,
Get-CimInstance Win32_ComputerSystem -ComputerName $computername | Select -ExpandProperty username
men nackdelen är att den returnerar ingenting om någon loggar in på den datorn via RDP. Om detta inte stör dig kan du integrera det i ett skript som du kan köra för att hämta informationen från flera datorer.
du kan till exempel dra en datorlista från en specifik OU i din annons och kontrollera om någon av dem har använts innan du trycker ut några uppdateringar som kan störa andras arbete.
$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; } }}
skriptet drar en lista över dator från en OU och för varje dator i listan kontrollerar den om den är online först. Om så är fallet fortsätter det att kontrollera om någon använder den datorn. Du kan sedan utföra andra uppgifter baserat på ditt behov.