Powershell cria contas AD a partir de CSV - Copiar problema do usuário

Powershell cria contas AD a partir de CSV - Copiar problema do usuário

Elaborei um script para criar novas contas de usuário no AD a partir de um arquivo CSV, mas estou tendo alguns problemas com a parte de cópia do usuário. Portanto, funciona quando cada novo usuário tem um usuário de cópia, mas quando eles não fornecem um usuário de cópia e deixam isso em branco, não é possível criar a variável e usar a variável de usuário de cópia da linha anterior. Alguma idéia de como eu poderia alterar isso para executar apenas a parte do usuário de cópia se a célula do usuário de cópia estiver preenchida no arquivo csv?

$ADUsers = Import-Csv "C:\Criar novos usuários em massa\Novos usuários.csv"
ForEach ($Usuário em $ADUsers)
{
    $Servidor = "DomainController"
    $PrimeiroNome = $Usuário.PrimeiroNome
    $Sobrenome = $Usuário.Sobrenome
    $ExtraCharacter = $User.ExtraCharacter
    $EmailSuffix = $User.EmailSuffix
    $BusinessUnit = $User.BusinessUnit
    $JobTitle = $User.JobTitle
    $Descrição = $Usuário.Descrição
    $Empresa = $Usuário.Empresa
    $Escritório = $Usuário.Escritório
    $OU = $Usuário.OU
    $ Senha = $ Usuário.Senha
    $CopyUser = Get-ADUser -Identity $User.CopyUser -Properties MemberOf
    $IntranetGroup = $User.IntranetGroup
    $DisplayName = $User.DisplayName
    $Nome de usuário = $Usuário.Nome de usuário
    $E-mail = $Usuário.E-mail
    Novo-ADUser -Servidor $Servidor -Nome $DisplayName -AccountPassword (ConvertTo-SecureString -AsPlainText $Password -Force) -Empresa $Empresa -Descrição $Descrição -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 "Padrão","Membro","Grupos"

#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}

Responder1

  1. verifique se a propriedade .CopyUserestá vazia
  2. verifique se Get-ADUserretornou algo para$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}
   ...
}

informação relacionada