Magic Quadrant™ para la gestión de acceso privilegiado 2025: Netwrix reconocida por cuarto año consecutivo. Descarga el informe.

Plataforma
Centro de recursosBlog
Cómo agregar y eliminar grupos de AD y objetos en grupos con PowerShell

Cómo agregar y eliminar grupos de AD y objetos en grupos con PowerShell

Jun 19, 2018

Microsoft Active Directory sirve como un punto centralizado para la administración, autorización y autenticación. En AD, el acceso a los recursos de la red se otorga a principios de seguridad, como cuentas de usuario y cuentas de computadora, y esos permisos pueden cambiar con el tiempo. Para simplificar la gestión de acceso y mejorar la seguridad, las empresas medianas y grandes a menudo utilizan Active Directory security groups, que pueden contener cuentas de usuario, cuentas de computadora y otros grupos. También suelen utilizar grupos de distribución para gestionar listas de distribución de correo electrónico. Tanto los grupos de seguridad como los de distribución tienen identificadores de seguridad únicos (SIDs) e identificadores únicos globales (GUIDs).

El complemento ADUC MMC es excelente para administrar ambos tipos de grupos, pero PowerShell es una forma mucho más eficiente de gestionarlos en masa.

Si aún no está familiarizado con los grupos de AD y la gestión de grupos, por favor lea la guía Active Directory Group Management Best Practice 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 de AD ejecutando el siguiente comando:

      Get-Command -Module ActiveDirectory
      

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

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

Creando 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
      
Image

La manera más fácil de crear un grupo es ejecutar este breve script:

      New-ADGroup "Group Name"
      

El sistema le pedirá que especifique el parámetro “GroupScope”, y luego creará un nuevo grupo. Sin embargo, este grupo tendrá valores predeterminados, tales como:

  • Se creará en el contenedor LDAP predeterminado llamado “Users”.
  • Tendrá el tipo de grupo “Security”.
  • Los campos de miembros, miembro de, descripción, correo electrónico y notas estarán todos en blanco.

Imaginemos que queremos crear un grupo de seguridad llamado “Quality” en nuestro AD DC. Usemos los siguientes parámetros: Debe estar en la OU “Production” (-Path), 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
      
Image

Si desea crear un grupo de distribución universal, simplemente cambie el parámetro –GroupCategory a “Distribution” y el parámetro –GroupScope a “Universal”. También puede cambiar la ruta LDAP modificando el parámetro –Path.

Eliminando un grupo de Active Directory con PowerShell

Para eliminar un grupo de AD, utilice el cmdlet Remove-ADGroup. El script más sencillo para eso se verá así:

      Remove-ADGroup -Identity Quality
      

Se le solicitará confirmar la eliminación del grupo.

Añadiendo usuarios y computadoras a un grupo con PowerShell

Puede agregar usuarios a un grupo de AD con el cmdlet Add-AdGroupMember. Por ejemplo, si necesitara agregar dos usuarios, B.Jackson y E.Franklin, al grupo “Quality”, así es como se vería el script:

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

Una vez que haya agregado usuarios a un grupo de seguridad, puede ejecutar el siguiente script para verificar que estén listados como miembros:

      Get-ADGroupMember -Identity Quality
      
Image

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

      Add-AdGroupMember -Identity Quality -Members WKS043$
      

Añadir un usuario a varios grupos

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

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

Añadiendo usuarios a un grupo desde un archivo CSV

Si desea agregar 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 nombres de usuario en el archivo CSV debe contener los SamAccountNames en la columna “usuarios”.

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

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

Copiando 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 $_}
      

Eliminación de usuarios o computadoras de un grupo

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

      Remove-ADGroupMember -Identity Quality -Members J.Robinson
      
Image

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

Eliminación de múltiples cuentas de usuario de un grupo

Una manera fácil de eliminar múltiples usuarios de un grupo de AD es crear un archivo CSV con la lista de nombres de usuario y luego eliminar esos usuarios del objeto de grupo utilizando este script:

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

Eliminando un usuario de todos los grupos

Para eliminar a 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
}
      
Image

Tenga en cuenta que el usuario perderá la membresía de todos los grupos excepto “Domain Users”, la cual se puede eliminar manualmente si es necesario.

Reportes sobre grupos de Active Directory

Ahora que sabemos cómo realizar muchas tareas comunes de Directory Management relacionadas con grupos usando PowerShell, veamos 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
      
Image

Por supuesto, también querrás revisar los miembros de grupos de AD y los cambios en la membresía de grupos de AD. Aquí tienes enlaces a instrucciones para realizar esas tareas más complejas:

Conclusión

Ahora que has aprendido a gestionar grupos y membresía de grupos en Active Directory utilizando scripts de PowerShell, intenta realizar algunas de las tareas de gestión de grupos por ti mismo. Sin embargo, ten cuidado y no olvides habilitar la característica de Active Directory Recycle Bin para que puedas revertir fácilmente tus cambios si algo sale mal. Recuerda, el complemento MMC de ADUC es excelente para gestionar grupos y membresía de grupos, pero PowerShell es mucho mejor para gestionar grupos en masa.

Compartir en

Aprende más

Acerca del autor

Asset Not Found

Jeff Melnick

Director de Ingeniería de Sistemas

Jeff es un ex 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 lifehacks, consejos y trucos que pueden mejorar drásticamente tu experiencia en la administración de sistemas.