Если вы хоть когда-нибудь задумывались о безопасности в вашей сети, то наверняка вы задумывались о том, как организовать смену паролей локальных администраторов, на компьютерах под управление ОС Windows, в вашей сети. И если задумывались и вам всегда было лень заняться этой процедурой, или не знали как это сделать, то этот пост для вас =).
Если пароль необходимо менять для одной учетной записи, то лучше всего с задачей справится штатная штука от Microsoft – LAPS (Local Administrator Password Solution). Но, к сожалению, она бессильна, если учетных записей с правами админа на компьютерах должно быть несколько. Так же она не сможет вам помочь, если ваши компьютеры не заведены в домен.
Именно со случаем с несколькими администраторами я и столкнулся, в итоге после некоторых раздумий был написан скрипт для PowerShell, который добавляет необходимых администраторов и меняет им пароли.
Точнее скрипта 2 – один отвечает непосредственно за смену паролей и добавление пользователей. Второй нужен для запуска первого.
Тексты скриптов можно посмотреть на GitHub .
Для работы скриптов у вас должно быть создано 2 файла - !users.txt и !hosts.txt.
В первом должен быть список администраторов и пароли к ним в csvшном формате (имя и пароль должны разделяться запятой). Например, что-то вроде:
admin1,Passw0rd
admin2,Passw0rd
Во втором должен быть список компьютеров, на которых необходимо сменить пароли. Имя каждого компьютера с новой строки. Например:
Comp1
Comp2
Comp3
Файлы эти, как и папка, где они расположены, само собой должны быть доступны только пользователю или группе, от имени которой будет запускаться скрипт. У этого же пользователя должны быть права на компьютерах для добавления и изменения пользователей. Это не обязательно должна быть сетевая папка, вполне сгодится папка, где-нибудь на сервере, от куда запускается скрипт.
Так же на тех компьютерах, где необходимо сменить пароли должно быть разрешено удаленное управление через PowerShell. Если эти компьютеры находятся в домене, то самое простое – создать групповую политику, которая это разрешит. Для этого нужно будет создать новый объект групповой политики, и изменить в нем несколько параметров.
1 - Путь до параметра – Computer Configuration/Policies/Administrative Templates/Windows Components/Windows Remote Management (WinRM)/WinRM Service
Параметр - Allow remote server management through WinRM. Он должен быть в состоянии Enabled.
2 - Так же необходимо, что бы на компьютерах был запущен сервис WinRM. Перевести его в состояние Autostart можно так же при помощи групповых политик. Computer Configuration – Preferences – Control Panel Settings – Services. Тут создаем новый сервис, в Service Name жмем обзор и находим нужный. В startup указываем – Automatic, в service action – start service.
3 – Необходимо открыть необходимые для WinRM порты в фаерволле. Опять же, если используется встроенный в Windows фаерволл, можно открыть нужные порты при помощи групповой политики. Идем по пути – Computer configuration, Policies, Windows Settings, Security Settings, Windows Firewall with Advanced Security - Windows Firewall with Advanced Security – Inbound Rules. Тут жмем создать новое правило, и выбираем в Predefined – Windows Remote Management.
Когда групповая политика будет обновлена на компьютерах, на них будет разрешено удаленное управление через PowerShell.
После запуска скрипта runScript.ps1 будут считываться файлы !users.txt и !hosts.txt, и данные из !users.txt будут переданы скрипту add-local-admins.ps1, команды которого выполняются на удаленных компьютерах.
На текстах скриптов смысла заострять внимания не вижу, т.к. они в общем то просты, только пара моментов:
Я там целенаправленно использую команды net user и net localgroup, что бы скрипт нормально работал на старых версиях powershell.
А также если нужный пользователь отсутствует в системе – он добавится, существующие пользователи не удаляются.
По завершении работы результат выполнения будет записываться в папку с файлами !users и !hosts, что бы всегда знать на каком компьютере какие пароли заданы.
Надеюсь, этот скрипт окажется вам полезным.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Поделитесь статьей с друзьями в соц. сетях, возможно, она будет им полезна.
Если вам помогла статья, вы можете >>отблагодарить автора<<