Миграция Active Directory с помощью PowerShell

Мне нужно перейти с AD Windows2003Forest на AD 2016. Ниже приведен сценарий для массового создания пользователей. Мое требование состоит в том, чтобы сопоставить тот же SID старой AD с новой AD. Например, в старой AD SID='xyz', тогда в новой AD он должен быть таким же, как SID='xyz'.

У меня есть все данные пользователей вместе с SID в формате CSV, и я использую приведенный ниже сценарий PowerShell, который почему-то не работает. Как совет или предложение.

фрагмент кода powershell:

#Enter a path to your import CSV file
$ADUsers = Import-csv C:\scripts\newusers.csv

foreach ($User in $ADUsers)
{

       $Username    = $User.username
       $Password    = $User.password
       $Firstname   = $User.firstname
       $Lastname    = $User.lastname
       $Department = $User.department
       $OU           = $User.ou
       $sid     = $User.sid
    $UserPrincipalName = $User.UserPrincipalName
    $DistinguishedName = $User.DistinguishedName

       #Check if the user account already exists in AD
       if (Get-ADUser -F {SamAccountName -eq $Username})
       {
               #If user does exist, output a warning message
               Write-Warning "A user account $Username has already exist in Active Directory."
       }
       else
       {
              #If a user does not exist then create a new user account

        #Account will be created in the OU listed in the $OU variable in the CSV file; don’t forget to change the domain name in the"-UserPrincipalName" variable
              New-ADUser `
            -SamAccountName $Username `
            -UserPrincipalName $UserPrincipalName `
            -Name "$Firstname $Lastname" `
            -GivenName $Firstname `
            -Surname $Lastname `
            -Enabled $True `
            -ChangePasswordAtLogon $True `
            -DisplayName "$Lastname, $Firstname" `
            -Department $Department `
        -DistinguishedName $DistinguishedName `
        -SID $sid `
            -Path $OU `
            -AccountPassword (convertto-securestring $Password -AsPlainText -Force)

       }
}

person creative monk    schedule 21.09.2018    source источник
comment
Вы не можете назначить SID таким образом. Вот статья об SID, но важной частью является роль FSMO хозяина RID (это означает, что DC создает SID). Добавленный к этому SID содержит информацию о домене, поэтому, если у вас есть новый домен, вы не можете иметь тот же SID. Это хорошо, потому что вы можете захотеть использовать историю SID во время миграции, чтобы сохранить старые разрешения при перестройке. Я бы также порекомендовал вам использовать Microsoft AD Migration Tool, а не пытаться вручную написать сценарий.   -  person BenH    schedule 21.09.2018


Ответы (1)


Вы не сможете назначить SID, так как он создается контроллером домена на основе RID. Если вы пытаетесь мигрировать в новый лес, вам необходимо выполнить правильную миграцию AD. Старые SID будут скопированы в атрибуты истории SID перенесенных пользователей, чтобы разрешения, основанные на старом SID, продолжали работать.

Если вы просто хотите перейти на более новую версию AD, вам лучше подключить новый контроллер домена к существующему лесу/домену Active Directory. Функциональный уровень леса должен быть 2003 года или выше.

В качестве примечания я бы рекомендовал как можно скорее избавиться от серверов 2003 года, поскольку они больше не поддерживаются Microsoft.

person Jonathan Haddock    schedule 25.09.2018