Powershell Crear cuentas AD desde CSV: copiar problema de usuario

Powershell Crear cuentas AD desde CSV: copiar problema de usuario

He creado un script para crear nuevas cuentas de usuario en AD a partir de un archivo CSV, pero tengo algunos problemas con la parte de copia del usuario. Por lo tanto, funciona cuando cada usuario nuevo tiene un usuario de copia, pero cuando no proporcionan un usuario de copia y lo dejan en blanco, no se puede crear la variable y se utiliza la variable de usuario de copia de la fila anterior. ¿Alguna idea de cómo podría modificar esto para ejecutar solo la parte de copia de usuario si la celda de copia de usuario está completa en el archivo csv?

$ADUsers = Import-Csv "C:\Creación masiva de nuevos usuarios\Nuevos usuarios.csv"
Para cada ($Usuario en $ADUsers)
{
    $Servidor = "Controlador de dominio"
    $Nombre = $Usuario.Nombre
    $Apellido = $Usuario.Apellido
    $CarácterExtra = $Usuario.CarácterExtra
    $SufijoEmail = $Usuario.SuffixEmail
    $Unidad de Negocio = $Usuario.Unidad de Negocio
    $Título del Trabajo = $Usuario.Título del Trabajo
    $Descripción = $Usuario.Descripción
    $Empresa = $Usuario.Empresa
    $Oficina = $Usuario.Oficina
    $OU = $Usuario.OU
    $Contraseña = $Usuario.Contraseña
    $CopyUser = Get-ADUser -Identidad $Usuario.CopyUser -Properties MemberOf
    $GrupoIntranet = $Usuario.GrupoIntranet
    $DisplayName = $Usuario.DisplayName
    $Nombre de usuario = $Usuario.Nombre de usuario
    $Correo electrónico = $Usuario.Correo electrónico
    Nuevo-ADUser -Servidor $Servidor -Nombre $DisplayName -AccountPassword (ConvertTo-SecureString -AsPlainText $Contraseña -Force) -Compañía $Compañía -Descripción $Descripción -DisplayName $DisplayName -EmailAddress $Email -Enabled $True -GivenName $FirstName -Office $Oficina -Otros atributos @{'extensionAttribute10'=$Correo electrónico;'mailNickname'=$Nombre de usuario} -Ruta $OU -SamAccountName $Nombre de usuario -Apellido $Apellido -Título $Título del trabajo -UserPrincipalName $Correo electrónico
    Set-ADUser -Servidor $Servidor -Identidad $Nombre de usuario -Agregar @{proxyAddresses ="SMTP:" + $Correo electrónico}
    Agregar-ADPrincipalGroupMembership -Servidor $Servidor -Identidad $Nombre de usuario -MiembroDe "Estándar","Miembro","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}

Respuesta1

  1. comprobar si la propiedad .CopyUserestá vacía
  2. comprobar si Get-ADUserdevolvió algo por$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}
   ...
}

información relacionada