![Powershell Crear cuentas AD desde CSV: copiar problema de usuario](https://rvso.com/image/1598528/Powershell%20Crear%20cuentas%20AD%20desde%20CSV%3A%20copiar%20problema%20de%20usuario.png)
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
- comprobar si la propiedad
.CopyUser
está vacía - comprobar si
Get-ADUser
devolvió 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}
...
}