Главная

Thursday, 12 July 2018

Перенос пользователей в AD.

Всем привет.

Случается перенос базы пользователей с одного домена в AD на другой. Штатных есть три варианта: утилитами CSVDE, LDIFLE и RSAT(Powershell).

Как принято вначале выполняем экспорт, а потом, естественно, импорт базы.

CSVDE:

Eхport CSVDE:
csvde -f C:\123\exportAD.csv -m -n -o "primaryGroupID,lockoutTime" -j d:\Logs\

Import CSVDE:
csvde -i -f C:\exportAD.csv -k -j D:\Logs\


При использовании этих утилит не экспортируются атрибуты, связанные с безопасностью — имена групп, которым принадлежат пользователи и пользовательские пароли. Пользователям присваиваются пустые пароли и атрибут "Требовать смену пароля при следующем входе в систему".

LDIFLE:

ldifde -u -f C:Exportuser.ldf -s dc2 -d "dc=mydomain,dc=local" -p subtree -r "(&(objectCategory=person)(objectClass=User)(givenname=*))" -l "cn,sn,description,givenName,initials,displayName,name,objectclass,profilePath,homeDirectory,homeDrive,samAccountName,mail"

Затем с помощью текстового редактора автоматически меняем в файле Exportuser.ldf имя домена у всех пользователей:
DC=mydomain,DC=local на DC=new,DC=mydomain,DC=local

И делаем импорт:
ldifde -i -f C:Exportuser.ldf -s dc02

При экспорте, если есть проблемы с русскими атрибутами пользователей, надо добавить ключ -u, т.е. экспорт в юникод. Ключ -f указывает на файл обмена.

RSAT(Powershell):

Export to CSV:
get-aduser –filter * -property * | export-CSV d:\export\adusersexport.csv -NoTypeInformation -Encoding UTF 8

Import CSV:
Import-Module ActiveDirectory
$USERS = Import-CSV d:\export\adusersexport.csv

$USERS|Foreach{
Set-ADUSer -Identity $_.samaccountname -TelephoneNumber $_.TelephoneNumber -MobilePhone $_.MobilePhone -StreetAddress $_.StreetAddress -City $_.City -Title $_.Title}?

Ежели сильно сухо то ниже привожу подробную инструкцию от одного парня.



Экспорт. 

Запускаем PowerShell (под админом) на домен-контроллере dom1.local .
Ищем пользователя. Вывод команды должен показать список параметров пользователя user1

get-aduser -filter {SamAccountName -like '*user1*'}

Результат поиска сохраняем в переменную.
$dom1_users = get-aduser get-aduser -filter {SamAccountName -like '*user1*'} -Properties *

Проверяем содержимое переменной.
$dom1_users

Сохраняем в файл.
$dom1_users | export-clixml d:\export\dom1_user1.xml

Проверяем содержимое файла.
import-clixml d:\export\dom1_user1.xml

Копируем файл dom1_user1.xml с домен-контроллера dom1.local на домен-контроллер dom2.local.

Импорт.

Запускаем PowerShell (под админом) на домен-контроллере dom2.local.
Смотрим содержимое файла.
import-clixml d:\import\dom1_user1.xml

Загружаем содержимое файла в переменную.
$dom2_users = import-clixml d:\import\dom1_user1.xml

Проверяем содержимое переменной.
$dom2_users

Создаем пользователя (в домене dom2.local), на основе информации в переменной. На этом этапе можно заменить некоторые параметры учетной записи.
$dom2_users | Foreach { New-ADUser -Name $_.name -SamAccountName $_.samaccountname -DisplayName $_.displayName -GivenName $_.givenName -OtherName $_.OtherName -Surname $_.Surname -Description "import from dom1.loca" -UserPrincipalName "$($_.samaccountname)@dom2.local" -Enabled $true -AccountPassword (ConvertTo-SecureString -AsPlainText "Dom2password" -Force) -ChangePasswordAtLogon $true }

Проверяем параметры пользователя.
get-aduser get-aduser -filter {SamAccountName -like '*user1*'}

На этом процедуру копирования пользователя можно считать завершенной.

No comments:

Post a Comment

А что вы думаете по этому поводу?