Задача: Найти всех пользователей, которые являются локальными администраторами на рабочих станциях организации.
Исходные данные:
- Сервер — Windows Server 2008 R2 с функциями AD, DHCP, DNS, WSUS
- Рабочие станции — ОС от Windows XP до Windows 7.
Есть как минимум 3 варианта решения этой задачи:
- Пройтись по всем рабочим станциям организации и посмотреть.
- Зайти в консоль управления Active Dirrectory, перейти в раздел «Computers» и щелкая по каждому компу ПКМ и выбирать пункт «Управление». В появившемся окне посмотреть кто входит в группу «Администраторы».
- Запустить скрипт на всех рабочих станциях посредством Групповой политики, а затем просто обработать получившиеся данные.
Первый вариант думаю комментировать не нужно. Если у Вас в организации мало рабочих станций, то такой вариант вам подойдет. Если же их больше 20-30, то уже проблематично.
Второй вариант, подойдет также при небольших объемах пользователей. Вариант полностью ручной.
Третий вариант более интересный и легкий в плане затрат времени и сил. Алгоритм данного способа прост:
- Пишем скрипт, который будет опрашивать группу «Администраторы» на локальной машине (не доменную группу) и будет выдавать всех членов группы в отдельный файл на какой-нибудь общей шаре.
- Засовываем скрипт в групповую политику на выполнение при старте системы
- Пишем еще один скрипт, который проанализирует полученные ранее данные и оформит все табличном виде, н.р. в csv. В принципе можно это действие объединить с п.1, все зависит от ваших знаний командной строки или VBS или PowerShell.
У этого способа кроме удобства и плюсов есть и минусы:
Чтобы собрать информацию со всех рабочих станций нужно время. Связано это с тем, что скрипт выполняется только при старте системы, а старт этот может произойти не скоро (ну н.р. сотрудник в отпуске, командировке, больничном или еще где-нибудь.).Вот пример скрипта:
@ echo off SET GROUP=Администраторы SET LOG1="\\192.168.0.1\\LOG\%ComputerName%.log" echo =================================================== >> %LOG1% echo PC: %ComputerName% >> %LOG1% for /f "skip=6 tokens=* delims=" %%i in ('net localgroup %GROUP%') do echo %%i >> %LOG1% echo =================================================== >> %LOG1%
В результате информация о всех локальных администраторах будет складываться в общую папку. Имена файлов — имя компьютера, в логе будет информация о всех админах.
Пример лог.файла:
=================================================== PC: User1 Test.local\Администраторы домена user Администратор Команда выполнена успешно. ===================================================