Как выгрузить список локальных администраторов со всех серверов в домене
На днях столкнулся с задачей: нужно быстро выгрузить список локальных администраторов со всех серверов в домене. А главное — автоматизировать это дело, чтобы можно было регулярно мониторить, не появилось ли чего лишнего.
Скрипт на PowerShell:
|
1 2 3 4 5 6 7 8 9 10 |
$servers = Get-Content ".\servers.txt" foreach ($server in $servers) { try { $admins = Get-LocalGroupMember -ComputerName $server -Group "Administrators" $admins | Select-Object @{Name="Server";Expression={$server}}, Name, ObjectClass | Export-Csv -Append -NoTypeInformation -Path ".\admins_report.csv" } catch { Write-Warning "Не удалось подключиться к $server: $_" } } |
Что делает скрипт:
- Берёт список серверов из servers.txt
- Для каждого получает участников группы Administrators
- Сохраняет результат в CSV-отчёт с привязкой к имени сервера
Использую это как базу для аудита. Можно, например, сравнивать отчёты в динамике или парсить на наличие неожиданных аккаунтов.
Кстати, если вы используете AD, можно ещё и net localgroup Administrators /domain дергать через Invoke-Command, но локально — быстрее и надежнее.