Как быстро проверить, какие пользователи имеют права администратора на сотне удалённых серверов?
Ручной подход, это бессмысленная трата времени и риска забыть какой-то хост, поэтому я собрал небольшой PowerShell-скрипт для автоматического аудита.
# Список серверов в текстовом файле (по одному в строке)
$servers = Get-Content -Path "C:\scripts\servers.txt"
# Формируем результаты
$report = foreach ($server in $servers) {
Try {
Invoke-Command -ComputerName $server -ScriptBlock {
Get-LocalGroupMember -Group "Administrators" |
Select-Object @{Name='Server';Expression={$env:COMPUTERNAME}},
Name, ObjectClass
} -ErrorAction Stop
}
Catch {
[PSCustomObject]@{
Server = $server
Name = '<не удалось получить данные>'
ObjectClass = 'Error'
}
}
}
# Сохраняем в CSV и открываем
$csvPath = "C:\reports\AdminsAudit_$(Get-Date -Format yyyy-MM-dd).csv"
$report | Export-Csv -Path $csvPath -NoTypeInformation -Encoding UTF8
Invoke-Item $csvPath
🛠 Что делает скрипт:
◾️Берёт список серверов из файла
servers.txt◾️Через
Invoke-Command собирает членов локальной группы Administrators на каждом хосте◾️Обрабатывает ошибки (например, недоступный сервер)
◾️Экспортирует итоговый отчёт в CSV с датой в имени
Этот подход легко расширить — добавить уведомление по почте через
Send-MailMessage или интеграцию с Teams/Slack, а также запускать по расписанию в Task Scheduler или Azure Automation.📲 Мы в MAX
👉 @win_sysadmin