Заметки о решаемых задачах АйТишников

Сделал - запиши. Нашёл - сохрани :)

Прошу прощения за рекламу на сайте. Я постарался сделать это максимально ненавязчиво и по минимуму. При чтении заинтересовавших вас статей она не будет вам мешать.
И если есть возможность поставить мой сайт в исключения у блокировщика рекламы, я буду очень признателен вам.

Перенос списка пользователей с одной машины Windows Server 2019 на другую

Перенос списка пользователей с одной машины Windows Server 2019 на другую

 

 

 

Перенос списка пользователей с одной машины Windows Server 2019 на другую

В этой статье мы рассмотрим процесс переноса списка пользователей с одного компьютера на другой, используя PowerShell. Мы создадим пользователей на новом сервере Windows Server 2019, предоставим им права "Пользователи удалённого рабочего стола" и установим для всех пользователей один и тот же временный пароль, который они должны будут изменить при первом входе.

Шаг 1: Экспорт списка пользователей с исходного сервера

  1. Откройте PowerShell от имени администратора на исходном сервере. Для этого введите powershell в строке поиска, щелкните правой кнопкой мыши на "Windows PowerShell" и выберите "Запуск от имени администратора".

  2. Выполните следующую команду, чтобы экспортировать список пользователей в файл 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\, содержащий имена, полные имена и описания пользователей.

  3. Перенесите файл users.csv на новый сервер с помощью флешки или сетевого доступа.

Шаг 2: Импорт пользователей на новом сервере

  1. Откройте PowerShell от имени администратора на новом сервере.

  2. Установите желаемый временный пароль для новых пользователей. Например, используем пароль TemporaryPassword123:

    $password = ConvertTo-SecureString "TemporaryPassword123" -AsPlainText -Force
    
  3. Импортируйте пользователей из файла 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. Следуя описанным шагам, вы сможете быстро создать пользователей на новом сервере с заданным временным паролем и предоставить им права "Пользователи удалённого рабочего стола".

 

15 августа 2025, 14:16    Александр Windows 0    0 0

 

 

 

 



Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.