Copiar la pertenencia a un grupo de AD a otro usuario en PowerShell

Cuando crea un nuevo usuario en un dominio de Active Directory, a veces debe convertirlo en miembro de una gran cantidad de grupos. Es bastante tedioso agregar un usuario a los grupos manualmente a través de la consola ADUC, por lo que es más fácil copiar la pertenencia al grupo de un usuario a otro usando un script de PowerShell. También es conveniente cuando un empleado deja el departamento de su empresa y debe asignar a un nuevo empleado los mismos grupos de seguridad AD.

Supongamos que necesita copiar la pertenencia al grupo del usuario jsanti y agregue una nueva cuenta de usuario (a.adams) a los mismos grupos.

Obtenga la lista de grupos del usuario de origen mediante el cmdlet Get-ADUser:

$getusergroups = Get-ADUser –Identity jsanti -Properties memberof | Select-Object -ExpandProperty memberof

Para agregar un nuevo usuario a los mismos grupos, basta con enviar la lista de grupos al cmdlet Add-ADGroupMember a través de una tubería:

$getusergroups | Add-ADGroupMember -Members a.adams -verbose

Luego, asegúrese de que se haya agregado correctamente un nuevo usuario a los mismos grupos que el usuario de origen:

Get-ADUser -Identity a.adams -Properties memberof | Select-Object -ExpandProperty memberof

Puedes usar el Get-ADPrincipalGroupMembership cmdlet genérico para copiar la pertenencia a un grupo de cualquier objeto de AD (usuario, equipo o grupo).

$userSource= “jsanti"
$userTarget=”a.adams”
$sourceGroups = Get-ADPrincipalGroupMembership -Identity $userSource
Add-ADPrincipalGroupMembership -Identity $userTarget -MemberOf $sourceGroups

Puede usar un script de PowerShell que escribe automáticamente un archivo de registro de texto que contiene la información sobre cómo agregar un usuario a los grupos:

$logfile="c:LOGCopyAdGroup.log"
$userSource= “jsanti"
$userTarget=”a.adams”
$Time = Get-Date
Add-content $logfile -value $Time -Encoding UTF8
Add-content $logfile -value "_______________"
Add-content $logfile -value "Copying AD groups from $userSource to $userTarget" -Encoding UTF8
$sourceGroups = (Get-ADPrincipalGroupMembership -Identity $userSource).SamAccountName
foreach ($group in $sourceGroups)
{
Add-content $logfile -value "Adding $userTarget to $group" -Encoding UTF8
try
{
$log=Add-ADPrincipalGroupMembership -Identity $userTarget -MemberOf $group
Add-content $logfile -value $log -Encoding UTF8
}
catch
{
Add-content $logfile $($Error[0].Exception.Message) -Encoding UTF8
Continue
}
}
Add-content $logfile -value "_______________"

Script de PowerShell para copiar grupos de seguridad de Active Directory a otro usuario

Otra tarea popular es copiar todos los usuarios de un grupo de dominio a otro. Para hacerlo, puede usar este comando de PowerShell:

Get-ADGroupMember "LA-GPO-Admins" | ForEach-Object {Add-ADGroupMember "LA-Server-Admins" -Members $_ }

Puede utilizar otras formas de agregar automáticamente un usuario a los grupos de AD según su posición u otro atributo de usuario especificado en AD. El siguiente artículo proporciona un ejemplo de creación de grupos dinámicos de Active Directory.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *