Sprawdzanie czy komputery z danego OU są zalogowane

Weryfikacja polega na sprawdzeniu czy włączony jest proces logonui.exe odpowiadający za ekran do logowania Windows

$secpasswd = ConvertTo-SecureString "password" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential("account", $secpasswd)
$computers = Get-ADComputer -Filter * -Properties Name, Description -SearchBase "OU=ou3, OU=ou2, OU=ou1, DC=domain_component1, DC=domain_component2, DC=domain_component3" | Select-Object Name, Description
foreach ($computer in $computers)
{
if (Invoke-Command -Credential $mycreds -ComputerName $computer.Name {Get-Process logonui} )
{
$computer.Name, $computer.Description, "Niezalogowany" -join ',' | Out-File -FilePath Komputery_Logowanie.txt -Append
}
else
{
$computer.Name, $computer.Description, "Zalogowany" -join ',' | Out-File -FilePath Komputery_Logowanie.txt -Append
}
}

Tags: