Я получил следующую переменную $ listofusers , которая возвращает указанные ниже объекты в двух столбцах:
SourceUser DestinationUser
---------- ---------------
username1@legacy.company.corp username1@modern.company.corp
username2@legacy.company.corp username2@modern.company.corp
username3@legacy.company.corp username3@modern.company.corp
username4@legacy.company.corp username4@modern.company.corp
Теперь мне нужно обработать этот список пользователей в foreach l oop , До сих пор я пробовал следующее, но безуспешно:
$Results = ForEach ($User in $listofusers) {
Write-Host "Processing SourceUser $($User.SourceUser)"
Write-Host "Processing DestinationUser $($User.DestinationUser)"
#Assign the content to variables
$SourceUsers = $User.SourceUser
$DestinationUsers = $User.DestinationUser
}
Возвращает только последнюю строку объектов:
$SourceUsers
RETURN ONLY: username4@legacy.company.corp
$DestinationUsers
RETURN ONLY: username4@modern.company.corp
Как добавить все объекты в переменная $ listofusers для дальнейшей обработки?
ОБНОВЛЕНИЕ:
Я пытаюсь добиться следующего, поэтому я нарушил ассоциацию в listofusers
$SourceUser = @()
$DestinationUser = @()
$Results = ForEach ($User in $listofusers)
{
Write-Host "Processing SourceUser $($User.SourceUser)"
Write-Host "Processing DestinationUser $($User.DestinationUser)"
#Assign the content to variables
$SourceUser += $User.SourceUser
$DestinationUser += $User.DestinationUser
#Cannot get that variables working yet
$sourceusername, $sourcedomain = $SourceUser -split ("@")
$DestinationUsername, $destinationDomain = $DestinationUser -split ("@")
$SourceAccount = Get-ADUser $sourceusername -server $sourcedomain -Properties objectSid
$TargetAccount = Get-ADUser $DestinationUsername -Server $destinationDomain
}
Есть ли лучший способ добиться этого и получить эти переменные до этой точки?
НОВОЕ ОБНОВЛЕНИЕ:
Цель сценария было бы добиться следующих командлетов для обработки рекламных объектов:
#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 targetaccount
$TargetAccount | Enable-ADAccount
#disable the source account
$SourceAccount | Disable-ADAccount
#move the migrated user into prod OU
$TargetAccount | Move-ADObject -TargetPath "ou=test,dc=contoso,dc=com"
Спасибо