Powershell Создание учетных записей AD из CSV - Копирование проблемы пользователя

Powershell Создание учетных записей AD из CSV - Копирование проблемы пользователя

Я собрал скрипт для создания новых учетных записей пользователей в AD из CSV-файла, но у меня возникли некоторые проблемы с частью копирования пользователя. То есть это работает, когда у каждого нового пользователя есть пользователь-копия, но когда они не предоставляют пользователя-копию и оставляют это поле пустым, переменная не создается и используется переменная копирования пользователя из предыдущей строки. Есть идеи, как я могу изменить это, чтобы запустить часть копирования пользователя, только если ячейка копирования пользователя заполнена в CSV-файле?

$ADUsers = Import-Csv "C:\Массовое создание новых пользователей\Новые пользователи.csv"
ForEach ($User в $ADUsers)
{
    $Server = "Контроллер домена"
    $FirstName = $User.FirstName
    $Фамилия = $Пользователь.Фамилия
    $ExtraCharacter = $User.ExtraCharacter
    $EmailSuffix = $User.EmailSuffix
    $BusinessUnit = $User.BusinessUnit
    $JobTitle = $User.JobTitle
    $Description = $User.Description
    $Компания = $Пользователь.Компания
    $Офис = $Пользователь.Офис
    $OU = $User.OU
    $Пароль = $ПарольПользователя
    $CopyUser = Get-ADUser -Identity $User.CopyUser -Properties MemberOf
    $IntranetGroup = $User.IntranetGroup
    $DisplayName = $User.DisplayName
    $ИмяПользователя = $Пользователь.ИмяПользователя
    $Email = $User.Email
    New-ADUser -Server $Server -Name $DisplayName -AccountPassword (ConvertTo-SecureString -AsPlainText $Password -Force) -Company $Company -Description $Description -DisplayName $DisplayName -EmailAddress $Email -Enabled $True -GivenName $FirstName -Office $Office -OtherAttributes @{'extensionAttribute10'=$Email;'mailNickname'=$Username} -Path $OU -SamAccountName $Username -Surname $Surname -Title $JobTitle -UserPrincipalName $Email
    Set-ADUser -Server $Server -Identity $Username -Add @{proxyAddresses ="SMTP:" + $Email}
    Add-ADPrincipalGroupMembership -Server $Server -Identity $Username -MemberOf "Standard","Member","Groups"

#Copy membership groups from the copy user to the new user & then remove the Equitrac group $CopyToNewUser = Get-ADUser -Server $Server -Identity $UserName -Properties MemberOf $CopyUser.MemberOf | Where-Object {$CopyToNewUser.MemberOf -notcontains $_} | Add-ADGroupMember -Server $Server -Members $CopyToNewUser Remove-ADPrincipalGroupMembership -Server $Server -Identity $UserName -MemberOf "Equitrac Print Users" -Confirm:$False}

решение1

  1. .CopyUserпроверьте, пусто ли свойство
  2. проверьте, Get-ADUserвернули ли вы что-нибудь для$User.CopyUser
$ADUsers = Import-Csv "C:\Bulk Create New Users\New Users.csv"
ForEach ($User in ($ADUsers|Where {$_.CopyUser -ne ''}) ) {
   if(!($CopyUser = Get-ADUser -Identity $User.CopyUser -Properties MemberOf)){continue}
   ...
}

Связанный контент