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).
Contenido relacionado seleccionado:
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:
- 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
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
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
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$
Contenido relacionado seleccionado:
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}
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
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
}
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
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:
- Cómo monitorear los cambios en la membresía de grupos de Active Directory
- Cómo obtener informes de membresía de grupos de usuarios de AD
- Cómo exportar miembros de un grupo de AD específico
- Gestionando OUs y moviendo sus objetos con PowerShell
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
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.
Aprende más sobre este tema
Leyes de Privacidad de Datos por Estado: Diferentes Enfoques para la Protección de la Privacidad
Ejemplo de Análisis de Riesgos: Cómo Evaluar los Riesgos
El Triángulo de la CIA y su Aplicación en el Mundo Real
¿Qué es la gestión de registros electrónicos?
Análisis Cuantitativo de Riesgo: Expectativa de Pérdida Anual