В этой статье мы рассмотрим процесс переноса списка пользователей с одного компьютера на другой, используя PowerShell. Мы создадим пользователей на новом сервере Windows Server 2019, предоставим им права "Пользователи удалённого рабочего стола" и установим для всех пользователей один и тот же временный пароль, который они должны будут изменить при первом входе.
Откройте PowerShell от имени администратора на исходном сервере. Для этого введите powershell в строке поиска, щелкните правой кнопкой мыши на "Windows PowerShell" и выберите "Запуск от имени администратора".
Выполните следующую команду, чтобы экспортировать список пользователей в файл CSV с кодировкой UTF-8:
Get-LocalUser | Select-Object Name, FullName, Description | Export-Csv -Path "C:\Users\Public\users.csv" -NoTypeInformation -Encoding UTF8
Эта команда создаст файл users.csv в папке C:\Users\Public\, содержащий имена, полные имена и описания пользователей.
Перенесите файл users.csv на новый сервер с помощью флешки или сетевого доступа.
Откройте PowerShell от имени администратора на новом сервере.
Установите желаемый временный пароль для новых пользователей. Например, используем пароль TemporaryPassword123:
$password = ConvertTo-SecureString "TemporaryPassword123" -AsPlainText -Force
Импортируйте пользователей из файла CSV и создайте их с правами "Пользователи удаленного рабочего стола":
Import-Csv -Path "C:\Path\To\Your\users.csv" | ForEach-Object {
New-LocalUser -Name $_.Name -Password $password -FullName $_.FullName -Description $_.Description
Add-LocalGroupMember -Group "Пользователи удаленного рабочего стола" -Member $_.Name
}
C:\Path\To\Your\users.csv на путь к вашему файлу users.csv.New-LocalUser создаёт пользователя и заполняет: Имя, Пароль, Полное имя и Описание.Add-LocalGroupMember -Group "Пользователи удаленного рабочего стола" добавляет каждого пользователя в группу, что позволяет им подключаться к серверу через удалённый рабочий стол.ВНИМАНИЕ: Проверьте заполнение ключа -Group. PowerShell запускать только при активной английской раскладке, а то в итоге вы вставите не Пользователи удаленного рабочего стола, а ользователи удаленного рабочего стола
Скрипт позволит создать пользователей, назначить им пароль, добавить пользователей в группы.
Тело скрипта скопируйте в файл и назначьте ему расширение .ps1. Запустите скрипт в PowerShell с правами администратора.
# Определяем временный пароль (измените на нужный)
$password = ConvertTo-SecureString "TemporaryPassword123" -AsPlainText -Force
# Имена групп (точные из вашего списка — замените, если нужно)
$groups = @("Пользователи удаленного рабочего стола", "Пользователи")
# Проверяем, существуют ли группы
foreach ($groupName in $groups) {
if (-not (Get-LocalGroup -Name $groupName -ErrorAction SilentlyContinue)) {
Write-Error "Группа '$groupName' не найдена! Проверьте имена с помощью Get-LocalGroup."
exit
}
}
# Импортируем и обрабатываем CSV (измените на нужный)
$users = Import-Csv -Path "C:\Path\To\Your\users.csv"
foreach ($user in $users) {
try {
# Создаём локального пользователя (если не существует)
if (-not (Get-LocalUser -Name $user.Name -ErrorAction SilentlyContinue)) {
New-LocalUser -Name $user.Name -Password $password -FullName $user.FullName -Description $user.Description
Write-Host "Пользователь $($user.Name) создан."
} else {
Write-Warning "Пользователь $($user.Name) уже существует."
}
# Добавляем в каждую группу (только если не добавлен)
foreach ($groupName in $groups) {
if (-not (Get-LocalGroupMember -Group $groupName -Member $user.Name -ErrorAction SilentlyContinue)) {
Add-LocalGroupMember -Group $groupName -Member $user.Name
Write-Host "Пользователь $($user.Name) добавлен в группу '$groupName'."
} else {
Write-Warning "Пользователь $($user.Name) уже в группе '$groupName'."
}
}
} catch {
Write-Error "Ошибка для пользователя $($user.Name): $($_.Exception.Message)"
}
}
# Финальная проверка для каждой группы
foreach ($groupName in $groups) {
Write-Host "`nЧлены группы '$groupName':"
Get-LocalGroupMember -Group $groupName | Select-Object Name
}
Перенос пользователей с одной машины Windows Server 2019 на другую — это простой процесс, который можно выполнить с помощью PowerShell. Следуя описанным шагам, вы сможете быстро создать пользователей на новом сервере с заданным временным паролем и предоставить им права "Пользователи удалённого рабочего стола".
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()