В настоящее время я тестирую следующий сценарий и пытаюсь автоматизировать его, определяя и проверяя параметры.
Я собрал следующие командлеты, чтобы скрипт работал, вызывая построчно, но в конечном итоге мне нравится просматривать список пользователей в файле CSV. Из этого файла я хотел бы использовать два столбца с заголовками UserPrincipalName, например:
SourceUser | TargetUser
Идея состоит в том, чтобы запустить скрипт и заменить следующее:
#create variables
$sourceUser = "TestUser1@old.domain.com"
$targetUser = "TestUser1@new.domain.com"
$sourceusername,$sourcedomain = $sourceUser -split ("@")
$targetusername,$targetdomain = $targetUser -split ("@")
$SourceAccount = Get-ADUser $sourceusername -server $sourcedomain -Properties objectSid
$TargetAccount = Get-ADUser $targetusername -Server $targetdomain
#get the objectSid of the source account
$objectSid = $SourceAccount.objectSid
#copy source account objectSid to target account msExchMasterAccountSid
$TargetAccount | Set-ADUser -Replace @{"msExchMasterAccountSid"=$objectSid}
#enable target account
$TargetAccount | Enable-ADAccount
#disable the source account
$SourceAccount | Disable-ADAccount
#move the migrated user into prod OU
$TargetAccount | Move-ADObject -TargetPath "OU=Test,OU=Users,DC=new,DC=domain,DC=com"
Я нашел уже несколько параметров, которые, как я считаю, помогут достичь двух вещей, таких как целевой домен и целевой OU:
[CmdletBinding()]
Param(
#target domain
[parameter(Mandatory,Position=1)]
[ValidateScript({Get-ADDomain -Identity $_})]
[String]$Domain,
#target OU
[parameter(Position=2)]
[ValidateScript({Get-ADOrganizationalUnit -Identity $_})]
[String]$TargetOu
)
Кто-нибудь может помочь мне собрать весь этот сценарий, пожалуйста? 101
Спасибо