Microsoft Active Directory sirve como punto centralizado para la administración, autorización y autenticación. En AD, el acceso a los recursos de red se concede a los principales de seguridad, como las cuentas de usuario y las cuentas de equipo, y esos permisos pueden cambiar con el tiempo. Para simplificar la gestión del acceso y mejorar la seguridad, las medianas y grandes empresas suelen utilizar grupos de seguridad de Active Directory, que pueden contener cuentas de usuario, cuentas de ordenador y otros grupos. También suelen utilizar grupos de distribución para gestionar las listas de distribución de correo electrónico. Tanto los grupos de seguridad como los de distribución tienen identificadores de seguridad únicos (SID) e identificadores únicos globales (GUID).

El snap-in MMC de ADUC es estupendo para gestionar ambos tipos de grupos, pero PowerShell es una forma mucho más eficiente de gestionarlos en bloque.

Si aún no está familiarizado con los grupos de AD y la administración de grupos, lea la guía de mejores prácticas de administración de grupos de Active Directory antes de continuar.

Además, tenga en cuenta que para utilizar estos scripts de PowerShell, debe importar el módulo para interactuar con AD: el módulo de Active Directory para Microsoft Windows PowerShell. Este módulo se introdujo en Windows Server 2008 R2 y está habilitado por defecto en Windows Server 2012 y posteriores. Puede obtener la lista completa de cmdlets del módulo AD ejecutando el siguiente comando:

Get-Command -Module ActiveDirectory

La lista completa contiene 147 cmdlets; sin embargo, sólo estos once están relacionados con los grupos de Active Directory:

  • Add-ADGroupMember
  • Add-ADPrincipalGroupMembership
  • Get-ADAccountAuthorizationGroup
  • Get-ADGroup
  • Get-ADGroupMember
  • Get-ADPrincipalGroupMembership
  • New-ADGroup
  • Remove-ADGroup
  • Remove-ADGroupMember
  • Remove-ADPrincipalGroupMembership
  • Set-ADGroup

Crear un grupo de Active Directory con PowerShell

Para crear un grupo de AD, utilice el cmdlet New-ADGroup. Puede obtener su sintaxis ejecutando el siguiente comando:

Get-Command New-ADGroup –Syntax

La forma más sencilla de crear un grupo es ejecutar este breve script:

New-ADGroup "Group Name"

El sistema le pedirá que especifique el parámetro «GroupScope» y, a continuación, creará un nuevo grupo. Sin embargo, este grupo tendrá valores por defecto, como:

  • Se creará en el contenedor LDAP por defecto llamado «Usuarios».
  • Tendrá el tipo de grupo «Seguridad».
  • Los campos miembros, miembro de, descripción, correo electrónico y notas estarán todos en blanco.

Imaginemos que queremos crear un grupo de seguridad llamado «Calidad» en nuestro DC de AD. Utilicemos los siguientes parámetros: Debe estar en la OU «Producción» (-Ruta), debe ser un grupo de seguridad (-GroupCategory), y debe ser global (-GroupScope).

New-ADGroup "Quality" -Path "OU=Production,DC=enterprise,dc=com" -GroupCategory Security -GroupScope Global -PassThru –Verbose

Si quieres hacer un grupo de distribución universal, simplemente cambia el parámetro -GroupCategory a «Distribución» y el parámetro -GroupScope a «Universal.» También puede cambiar la ruta LDAP cambiando el parámetro -Path.

Eliminación de un grupo de Active Directory con PowerShell

Para eliminar un grupo de AD, utilice el cmdlet Remove-ADGroup. El script más sencillo para ello será el siguiente:

Remove-ADGroup -Identity Quality

Se le pedirá que confirme la eliminación del grupo.

Añadir usuarios y equipos a un grupo con PowerShell

Puede añadir usuarios a un grupo de AD con el cmdlet Add-AdGroupMember. Por ejemplo, si necesita añadir dos usuarios, B.Jackson y E.Franklin, al grupo «Calidad», este es el aspecto que tendría el script:

Add-AdGroupMember -Identity Quality -Members B.Jackson, E.Franklin

Una vez que haya añadido usuarios a un grupo de seguridad, puede ejecutar el script siguiente para verificar que aparecen como miembros:

Get-ADGroupMember -Identity Quality

Si necesita añadir usuarios a otro grupo de seguridad o de distribución, como «Domain Admins», especifique «Domain Admins» como valor del parámetro -Identity. Si necesita que un grupo sea miembro de otro, especifique un nombre de grupo como valor del parámetro -Members. El mismo principio se aplica a las cuentas de ordenador, pero tendrá que añadir un signo de dólar ($) al final del nombre de la cuenta de ordenador. Por ejemplo, para añadir el ordenador «WKS043» a un grupo, especifique «WKS043$» como valor del parámetro -Miembro:

Add-AdGroupMember -Identity Quality -Members WKS043$

Añadir un usuario a varios grupos

Para añadir un usuario a varios grupos a la vez, ejecute el siguiente script.

"Managers","Quality" | Add-ADGroupMember -Members ` (Read-Host -Prompt "Enter User Name")

Se le pedirá que introduzca el nombre de usuario.

Añadir usuarios a un grupo desde un archivo CSV

Si desea añadir un gran número de usuarios a un grupo, puede especificarlos en un archivo CSV y luego importar ese archivo. Tenga en cuenta que la lista de los nombres de usuario en el archivo CSV debe contener los SamAccountNames en la columna «users», como se muestra a continuación:

Para añadir usuarios al grupo desde un archivo CSV, ejecute el siguiente script de PowerShell:

Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity "Quality" -members $_.users}

Copiar usuarios de un grupo a otro

Si desea copiar todos los miembros de un grupo a otro grupo, ejecute el siguiente script:

Get-ADGroupMember "Quality" | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity "QualityControl" -Members $_}

Quitar usuarios o equipos de un grupo

Para eliminar un usuario de un grupo, utilice el cmdlet Remove-ADGroupMember:

Remove-ADGroupMember -Identity Quality -Members J.Robinson

Para eliminar una cuenta de equipo de un grupo, especifique el nombre del equipo con un signo de dólar ($) al final para el valor del parámetro -Members.

Eliminar varias cuentas de usuario de un grupo

Una forma sencilla de eliminar varios usuarios de un grupo de AD es crear un archivo CSV con la lista de nombres de usuario y, a continuación, eliminar esos usuarios del objeto de grupo mediante este script:

Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity "Quality" -members $_.users}

Eliminar un usuario de todos los grupos

Para eliminar un usuario de todos los grupos, ejecute este script:

Get-ADUser -Identity E.Franklin -Properties MemberOf | ForEach-Object { $_.MemberOf | Remove-ADGroupMember -Members $_.DistinguishedName -Confirm:$false}

Tenga en cuenta que el usuario perderá toda la pertenencia a los grupos, excepto «Usuarios del dominio», que se puede eliminar manualmente si es necesario.

Informar sobre los grupos de Active Directory

Ahora que sabemos cómo realizar muchas tareas comunes de gestión de Active Directory relacionadas con los grupos utilizando PowerShell, vamos a ver cómo informar sobre qué grupos existen en AD:

Para listar todos los grupos en AD, utilice el siguiente script:

Get-ADGroup -filter * -properties GroupCategory | ft name,groupcategory

Por supuesto, también querrá revisar los miembros de los grupos de AD y los cambios de pertenencia a los mismos. Aquí hay enlaces a las instrucciones para realizar esas tareas más complejas:

  • Cómo supervisar los cambios de pertenencia a grupos de Active Directory
  • Cómo obtener informes de pertenencia a grupos de usuarios de AD
  • Cómo exportar miembros de un grupo de AD concreto
  • Administrar OUs y mover sus objetos con PowerShell

Conclusión

Ahora que ha aprendido a gestionar grupos y pertenencia a grupos en Active Directory utilizando scripts de PowerShell, intente realizar algunas de las tareas de administración de grupos usted mismo. Sin embargo, tenga cuidado y no olvide habilitar la función de la papelera de reciclaje de Active Directory para poder deshacer fácilmente los cambios si algo sale mal. Recuerde que el complemento MMC de ADUC es excelente para administrar grupos y la pertenencia a grupos, pero PowerShell es mucho mejor para administrar grupos en bloque.

Jeff es director de ingeniería de soluciones globales en Netwrix. Es un bloguero, orador y presentador de Netwrix desde hace mucho tiempo. En el blog de Netwrix, Jeff comparte consejos y trucos que pueden mejorar drásticamente su experiencia de administración de sistemas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.