Скрипт powershell для добавления пользователей списком

Привет, друзья! Недавно столкнулся c просто, но интересной задачей: нужно было добавить много локальных пользователей (более 50) с одинаковым паролем (да-да, это неправильно, но так требовал заказчик) в группы «Пользователи» и «Пользователи удаленного рабочего стола» в Windows Server 2019. Казалось бы, не ничего проще — заходи в «Панель управления» или в раздел «Управление компьютером => Локальные пользователи => Пользователи» и неспеша добавляй, но… время не только деньги, но и самое ценное в нашей суетной жизни, ведь сначала нужно добавить юзеров (задать имя, пароль, подсказку пароля), затем добавить каждого пользователя в нужные группы. Это очень долго. Я решил написать скрипт, который бы добавлял всех пользователей из списка, создавал каждому одинаковый пароль и помещал их в нужные мне группы.

Создаем папку, где буду лежать наши powershell-скрипты, на моем тестовом сервере, например, C:\psscripts\

Создаем в этой папке файл скрипта с расширением .ps1, например, adduserslist.ps1 (назвать можете как угодно, но лучше на латинице).

Вставляем скрипт из примера ниже в этот файл.

# Список пользователей для добавления
$userNames = @(
    "User1",
    "User2",
    "User3",
    "User4",
    "User5",
    "User6"
)

# Общий пароль для всех пользователей
$password = ConvertTo-SecureString "Пароль_пользователя" -AsPlainText -Force

# Цикл для создания каждого пользователя
foreach ($userName in $userNames) {
    # Создание нового локального пользователя
    New-LocalUser -Name $userName -Password $password -FullName $userName -Description "Local user account" -AccountNeverExpires -UserMayNotChangePassword

    # Добавление пользователя в локальную группу "Пользователи"
    Add-LocalGroupMember -Group "Пользователи" -Member $userName

    # Добавление пользователя в локальную группу "Пользователи удаленного рабочего стола"
    Add-LocalGroupMember -Group "Пользователи удаленного рабочего стола" -Member $userName

    Write-Host "Пользователь $userName успешно создан и добавлен в группы."
}

Сохраняем файл.

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

Откроем PowerShell от имени администратора:

Далее в командной строке вводим:

Скрипт powershell для добавления пользователей списком
Get-LocalGroup

В переменную $userNames добавьте пользователей списком (Имя пользователя в кавычках с запятой после, после крайнего пользователя запятая не нужна), в поле «Пароль пользователя» введите нужный Вам пароль, а в каждую строку Add-LocalGroupMember -Group добавляем нужные названия групп пользователей

Когда все данные заполнены, открываем командную строку от имени администратора и выполняем скрипт:

powershell.exe -executionpolicy bypass -file "c:\psscripts\adduserslist.ps1"
Скрипт powershell для добавления пользователей списком
Скрипт для добавления пользователей списком
  • powershell.exe — исполняемый файл PowerShell, который запускает PowerShell с командной строки или из скрипта.
  • -ExecutionPolicy Bypass — данный параметр позволяет обойти текущую политику выполнения скриптов PowerShell на компьютере. Если политика выполнения не позволяет запускать скрипты, этот параметр позволяет выполнить скрипт без изменения глобальной политики.
  • -File "C:\Windows\psscripts\adduserslist.ps1" — этот параметр указывает на полный путь к файлу скрипта PowerShell, который вы хотите выполнить.

Ждем выполнение скрипта и проверяем результат! Большое спасибо!