Forum Discussion
Get command status from Active Directory Domain machines
$results = @()
# Function to check the Last Windows Update status
function Get-LastWindowsUpdateStatus {
$updateStatus = Get-WmiObject -Class "Win32_QuickFixEngineering" | Select-Object -Property Description, InstalledOn
return $updateStatus
}
# Function to check BitLocker Status
function Get-BitLockerStatus {
$bitLockerStatus = Get-BitLockerVolume -MountPoint "C:" | Select-Object -Property VolumeStatus, EncryptionMethod
return $bitLockerStatus
}
# Function to get the total local admin users
function Get-LocalAdminUsers {
$adminGroup = Get-LocalGroupMember -Group "Administrators" | Select-Object -ExpandProperty Name
return $adminGroup.Count
}
# Function to check if LAPS is installed
function Get-LAPSStatus {
$lapsStatus = Get-Command -Name "Get-AdmPwdPassword" -ErrorAction SilentlyContinue
if ($lapsStatus) {
return "LAPS Installed"
} else {
return "LAPS Not Installed"
}
}
# Iterate over each computer (list the computers in a text file or use a predefined list)
$computers = Get-Content "C:\computers.txt" # Text file with a list of computer names
foreach ($computer in $computers) {
$status = [PSCustomObject]@{
ComputerName = $computer
LastWindowsUpdate = (Get-LastWindowsUpdateStatus -ComputerName $computer)
BitLockerStatus = (Get-BitLockerStatus -ComputerName $computer)
LocalAdminUsersCount = (Get-LocalAdminUsers -ComputerName $computer)
LAPSStatus = (Get-LAPSStatus -ComputerName $computer)
}
$results += $status
}
# Output the results (to console or export to CSV)
$results | Format-Table -AutoSize
$results | Export-Csv -Path "C:\Reports\MachineStatusReport.csv" -NoTypeInformation