Перейти к содержимому
www.mytechnote.ru
Меню
  • Администрирование
    • Скрипты
  • Оборудование
    • Обзоры
    • Инструкции
  • Прочее
  • Русский
    • English
    • Русский
Меню

Скрипт для смены паролей локальным администраторам [PowerShell]

Если вы хоть когда-нибудь задумывались о безопасности в вашей сети, то наверняка вы задумывались о том, как организовать смену паролей локальных администраторов, на компьютерах под управление ОС Windows, в вашей сети.  И если задумывались и вам всегда было лень заняться этой процедурой, или не знали как это сделать, то этот пост для вас =).

Если пароль необходимо менять для одной учетной записи, то лучше всего с задачей справится штатная штука от Microsoft – LAPS (Local Administrator Password Solution). Но, к сожалению, она бессильна, если учетных записей с правами админа на компьютерах должно быть несколько. Так же она не сможет вам помочь, если ваши компьютеры не заведены в домен.

Именно со случаем с несколькими администраторами я и столкнулся, в итоге после некоторых раздумий был написан скрипт для PowerShell, который добавляет необходимых администраторов и меняет им пароли.

Точнее скрипта 2 – один отвечает непосредственно за смену паролей и добавление пользователей. Второй нужен для запуска первого.

Тексты скриптов можно посмотреть на GitHub.

Для работы скриптов у вас должно быть создано 2 файла — !users.txt и !hosts.txt.

В первом должен быть список администраторов и пароли к ним в csvшном формате (имя и пароль должны разделяться запятой). Например, что-то вроде:

admin1,Passw0rd
admin2,Passw0rd

Во втором должен быть список компьютеров, на которых необходимо сменить пароли. Имя каждого компьютера с новой строки. Например:

Comp1
Comp2
Comp3

Файлы эти, как и папка, где они расположены, само собой должны быть доступны только пользователю или группе, от имени которой будет запускаться скрипт. У этого же пользователя должны быть права на компьютерах для добавления и изменения пользователей. Это не обязательно должна быть сетевая папка, вполне сгодится папка, где-нибудь на сервере, от куда запускается скрипт.

Скрипт для смены паролей локальным администраторам [PowerShell] - путь не обязательно должен быть сетевой

Так же на тех компьютерах, где необходимо сменить пароли должно быть разрешено удаленное управление через PowerShell. Если эти компьютеры находятся в домене, то самое простое – создать групповую политику, которая это разрешит. Для этого нужно будет создать новый объект групповой политики, и изменить в нем несколько параметров.

1 — Путь до параметра – Computer Configuration/Policies/Administrative Templates/Windows Components/Windows Remote Management (WinRM)/WinRM Service

Параметр — Allow remote server management through WinRM. Он должен быть в состоянии Enabled.

Скрипт для смены паролей локальным администраторам [PowerShell] - разрешаем удаленное управление через групповую политику

2 — Так же необходимо, что бы на компьютерах был запущен сервис WinRM. Перевести его в состояние Autostart можно так же при помощи групповых политик. Computer Configuration – Preferences – Control Panel Settings – Services. Тут создаем новый сервис, в Service Name жмем обзор и находим нужный. В startup указываем – Automatic, в service action – start service.

Скрипт для смены паролей локальным администраторам [PowerShell] - включаем сервис через групповую политику

Скрипт для смены паролей локальным администраторам [PowerShell] - включаем сервис через групповую политику

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] - настраиваем фаерволл через групповую политику

Скрипт для смены паролей локальным администраторам [PowerShell] - настраиваем фаерволл через групповую политику

Когда групповая политика будет обновлена на компьютерах, на них будет разрешено удаленное управление через PowerShell.

После запуска скрипта runScript.ps1 будут считываться файлы !users.txt и !hosts.txt, и данные из !users.txt будут переданы скрипту add-local-admins.ps1, команды которого выполняются на удаленных компьютерах.

На текстах скриптов смысла заострять внимания не вижу, т.к. они в общем то просты, только пара моментов:

Я там целенаправленно использую команды net user и net localgroup, что бы скрипт нормально работал на старых версиях powershell.  

А также если нужный пользователь отсутствует в системе – он добавится, существующие пользователи не удаляются.

По завершении работы результат выполнения будет записываться в папку с файлами !users и !hosts, что бы всегда знать на каком компьютере какие пароли заданы.

Скрипт для смены паролей локальным администраторам [PowerShell] - результат пишется в файлы

Надеюсь, этот скрипт окажется вам полезным.

Скрипт для смены паролей локальным администраторам [PowerShell]

Опубликовано в 04.11.201830.05.2024 от sanglyb

Навигация по записям

← Ссылки на пиратский контент исчезнут из российских поисковиков
Мессенджеры берут под тотальный контроль →

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Подписывайтесь

Youtube
vk
telegram
github
twitter
rss
  • Форум
  • Об авторе
  • Поддержать автора

Популярные записи

Новые записи

  • Как расширить LVM раздел в Linux
  • Исправление ошибки SrsResources.dll после обновления SSRS для SCCM
  • Проблема при использовании библиотеки PassFiltEx на старых процессорах
  • Как удалить вложения из старых событий календаря в Exchange с помощью скрипта
  • Как скачать и установить Office 2024 LTSC

Архивы

  • 2026 (3)
  • 2025 (5)
  • 2024 (7)
  • 2023 (6)
  • 2022 (5)
  • 2021 (25)
  • 2020 (34)
  • 2019 (39)
  • 2018 (78)
  • 2017 (56)
  • 2016 (77)
  • 2015 (9)
© 2015-2026 www.mytechnote.ru
Использование материалов сайта возможно только с разрешения владельца или обязательна индексируемая, прямая, передающая вес ссылка на материал.