uz
KA
июня 23, 2025
Обновлено июня 23, 2025

Управление Пользователями через PowerShell

.NET Windows

Администрирование информационных сетей или же ИС неразрывно связано с использованием интерфейса командной строки. Многие сервера в корпоративных сетях или же ЦОДах не имеют графической оболочки, так как представляют лишнюю нагрузку на систему. А так же это не всегда способствует быстрому или эффективному решению задачи.

В каждой ОС на облачном сервере или же рабочей станции присутствует своя оболочка CLI с определенным синтаксисом и семантикой. В данной инструкции мы рассмотрим проприетарную оболочку PowerShell, которая является разработкой Microsoft и активно используется в дистрибутивах Windows.

Если говорить подробней, PowerShell представляет собой объектно ориентированный язык программирования, который интегрирован с ОС и позволяет интерпретировать команды высокого уровня в команды низкого, не зная всех механизмов взаимодействия системы. Так же управлять пользователями в локальной сети или же доменной становиться намного проще!

Что такое командлеты в PowerShell?

Командлеты или же команды в PS представляют собой синтаксический набор из Глагола-Существительного, которые представляют действие и объект взаимодействия. Например, нам нужно создать нового пользователя для рабочей группы или же локальной машины. Для этого мы можем воспользоваться командой:

New-LocalUser -Name GG
Новый локальный пользователь
Скриншот №1 — Новый локальный пользователь

Что позволяет, при использовании командлета New-LocalUser с параметрами  -Name и передаваемым значением GG создать нового пользователя в системе. Командлеты обращаются к объектам ОС и возвращают лишь информацию о них, для поиска новых командлетов используйте команду Get-Help или же прочтите более подробное руководство по использованию PS.

Работа с модулями в PowerShell

Перед началом работы необходимо обновить Get-Help, так как если вы захотите самостоятельно разобраться в материале, то без новых пакетов-инструкций будет не просто. Обновим командой Get-Update, текущие пакеты и установим новые:

Get-Update
Обновление справки
Скриншот №2 — Обновление справки

Для самостоятельного поиска необходимых команд вы можете воспользоваться, только что обновленной базой:

Get-Help user

Для поиска командлетов, у которых в названии или описании содержится ключевое слово user!

Обратите внимание! На текущий момент, практически все командлеты структурированы и разбиты по модулям, которые представляют собой функциональные папки. Например, в ОС есть модуль Microsoft.PowerShell.LocalAccounts, который хранит все командлеты связанные с управлением пользователей на локальных машинах без домена. Что так же помогает в поиске нужной команды. Для того, чтобы просмотреть полный список установленных и доступных модулей, загрузите его через командлет:

Get-Module -ListAvailable

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

Get-Module -ListAvailable | Where-Object Name -like "*LocalAccounts*"
filter
Скриншот №3 — Фильтрация

Так же во многих материалах можно встретить нагроможденную конструкцию {$_.Name -like “*LocalAccounts”}. Вместо нее можем использовать новую, просто указав текущий объект или столбик для фильтрации и параметр с условием.

Обратите внимание!  В ключевом запросе присутствуют звездочки, которые представляют собой маску, любой знак и количество. Тем самым расширит поиск значений.

Как создать пользователей через PowerShell?

Обратимся к одному из выше рассмотренных модулей и просмотрим все его команды:

Get-Command -module Microsoft.PowerShell.LocalAccounts
Список команд
Скриншот №4 — Список команд

У каждого из командлетов есть свои многочисленные опции, которые помогают выполнить более тонкую настройку или же действие над объектом. Для просмотра будем использовать Get-Help, но перед этим необходимо развернуть сервер, котором будем проводить тесты. Для того чтобы наши эксперименты не затрагивали основную систему. Перейдем к созданию VPS сервера на любой из двух платформ vStack Сloud или же VMware Сloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать.

Создание сервера
Скриншот №5 — Создание сервера

После некоторого времени сервера будут доступны по любому из основных способов подключения, для текущих задач была выбрана ОС Windows Server c ЦОДом в Стамбуле.

Просмотрим подробную информацию об опциях и принимаемых аргументах командой New-LocalUser:

Get-Help New-LocalUser
Описание команды
Скриншот №6 — Описание команды

Очень важно уметь читать синтаксис команды для понимания, того как ее использовать. В данном случае описано, что кроме использования самого командлета мы можем добавить опции:

  • -Name которая укажет имя пользователя, принимается в формате строки;
  • -AccountExpires срок, когда истекает действие пароля на аккаунте;
  • -AccountNeverExpires  бессрочное действие пароля;
  • -Description описание аккаунта;
  • -Disabled созданный аккаунт будет сразу отключен;
  • -FullName полное имя пользователя;
  • -NoPassword не задавать пароль аккаунту;
  • -UserMayNotChangePassword пользователь не может менять пароль;
  • -Confirm подтверждение создания без доп.окон.

Например для локального ПК нам необходимо создать пользователя и выдать ему права Администратора, для этого мы пропишем команду:

New-LocalUser -Name GG
Новый пользователь
Скриншот №7 — Новый пользователь

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

Как добавить пользователей в группу PowerShell?

Затем пропишем пользователя в группу Администраторы и проверим корректность выполненных действий:

Add-LocalGroupMember -Group Администраторы -Member GG
Get-LocalGroupMember -Group Администраторы
Группа Администраторы
Скриншот №8 — Группа Администраторы

В выведенной визуальной форме видим, только что созданного и добавленного пользователя в системе! Но этот модуль, как понятно из названия работает только с локальными пользователями, для роли сервера AD необходим отдельный модуль, который будет обращаться к домену контроллера.

Как добавить пользователя в AD через PowerShell?

Для начала найдем подходящий модуль для работы и отфильтруем значения:

Get-Module -ListAvailable | Where-Object Name -like "*Active*"
Поиск модуля
Скриншот №9 — Поиск модуля

Предварительно понимая, что в данном модуле бесчисленное множество командлетов, необходимо в заранее их отсортировать. Нам необходимы только, те командлеты, где упоминается пользователь и группа. Следовательно, user и group:

Get-Command -module ActiveDirectory | Where-Object Name -like "*User*"

И соответствующую команду для группы:

Get-Command -module ActiveDirectory | Where-Object Name -like "*Group*"
Поиск командлета
Скриншот №10 — Поиск командлета

В первом поле видим команду New-ADUser, используя которую перейдем к созданию новой сущности и сразу установим пароль:

New-ADUser
Set-ADAccountPassword
Добавим пользователя
Скриншот №11 — Добавим пользователя

После двойного ввода пароля, добавим пользователя к группе и проверим корректность наших действий:

Add-ADGroupMember
Get-ADGroupMember
Добавим пользователей к AD
Скриншот №12 — Добавим пользователей к AD

На скриншотах видим, что действия выполняемые от аккаунта администратора прошли корректно!

Администрирование информационных сетей через интерфейс командной строки, в частности с использованием PowerShell, предоставляет ряд преимуществ, таких как снижение нагрузки на систему, более быстрое и эффективное решение задач и упрощение управления пользователями в локальной и доменной сети. Командлеты PowerShell позволяют автоматизировать выполнение основных операций, делая работу администратора более продуктивной и удобной.

Оценка:
5 из 5
Аverage rating : 5
Оценок: 1
100029 Ташкент Улица Якка Чинар, дом 2/1
ООО «ИТГЛОБАЛКОМ ЛАБС»

Вам также может быть интересно...