Búsqueda de sitios web

Cómo copiar la membresía del grupo AD a otro usuario en PowerShell


Cuando crea un nuevo usuario en un dominio de Active Directory, a veces necesita convertirlo en miembro de una gran cantidad de grupos. Es bastante tedioso agregar un usuario a grupos manualmente a través de la consola ADUC, por lo que es más fácil copiar la membresía del 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 tiene que asignar a un nuevo empleado los mismos grupos de seguridad de AD.

Supongamos que necesita copiar la membresía del grupo del usuario

jsanti

y agregue una nueva cuenta de usuario (

a.adams

) a los mismos grupos.

Para ejecutar los siguientes scripts de PoSh, se usa el módulo Active Directory para PowerShell. Puede instalarlo como parte del kit de herramientas de RSAT o copiar e importar el módulo AD PowerShell manualmente sin la instalación de RSAT.

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

Para agregar un usuario a un grupo de seguridad de dominio, ejecute los comandos con una cuenta de administrador de dominio o una cuenta de usuario que tenga privilegios delegados para agregar usuarios a grupos de AD.

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

Puede utilizar el cmdlet genérico Get-ADPrincipalGroupMembership 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:\LOG\CopyAdGroup.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 "_______________"

Puede realizar un seguimiento de la adición de usuarios a los grupos de AD en los registros de seguridad del controlador de dominio.

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 usar 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.

Artículos relacionados