Gestionando Grupos de Active Directory con PowerShell: La Guía Definitiva

Como administrador de sistemas de Windows, administrar grupos de Active Directory (AD) es probablemente algo que haces todos los días. Si bien podrías utilizar el complemento MMC de Usuarios y Equipos de Active Directory (ADUC), ¿qué sucede cuando necesitas administrar grupos en múltiples dominios o automatizar tareas de gestión de grupos? Ahí es donde PowerShell resulta útil.

En este tutorial práctico, aprenderás a utilizar PowerShell para gestionar grupos de AD como un profesional. Aprenderás a consultar grupos, crear nuevos y modificar grupos existentes utilizando ejemplos prácticos del mundo real.

Requisitos previos

Si deseas seguir este tutorial, asegúrate de tener los siguientes requisitos previos:

  • Un ordenador con Windows (Windows 10/11 o Windows Server) unido a un dominio de Active Directory
  • Una cuenta de usuario con permisos para gestionar grupos de AD

Consultando Grupos de AD con PowerShell

Comencemos con un escenario común: eres el nuevo administrador de TI en una empresa y necesitas auditar la estructura de grupos de AD. Tu gerente quiere saber qué grupos existen en diferentes departamentos. El cmdlet Get-ADGroup será tu mejor amigo aquí.

Encontrando Grupos por Nombre

Quizás la tarea más simple sea encontrar grupos que contengan texto específico en su nombre. Por ejemplo, para encontrar todos los grupos que tienen “Ventas” en el nombre:

Get-ADGroup -Filter 'Name -like "Sales"'

Los asteriscos (*) son comodines, que coinciden con cualquier carácter antes o después de “Ventas”. Este comando devolverá todos los grupos que tengan “Ventas” en cualquier parte de su nombre.

Filtrando por Tipo de Grupo

Quizás solo quieras ver grupos de seguridad (no grupos de distribución). Puedes agregar criterios de filtrado adicionales usando el operador -and:

Get-ADGroup -Filter 'Name -like "Sales" -and GroupCategory -eq "Security"'

Ahora solo verás grupos de seguridad que tengan “Ventas” en su nombre.

Buscando en OUs Específicas

¿Necesitas encontrar grupos en una unidad organizativa (OU) en particular? Usa el parámetro SearchBase:

Get-ADGroup -Filter * -SearchBase 'OU=Engineering,DC=company,DC=local'

Este comando encuentra todos los grupos dentro de la OU de Ingeniería y sus OUs secundarias.

Encontrando Grupos Recientemente Creado

¿Quieres ver qué grupos fueron creados después de una cierta fecha? Filtra por el atributo whenCreated:

Get-ADGroup -Filter 'whenCreated -ge "2023-01-01"'

Esto devuelve todos los grupos creados el 1 de enero de 2023 o después.

Creando Nuevos Grupos en AD

Ahora veamos cómo crear nuevos grupos. Quizás tu empresa se esté reestructurando y necesites crear grupos para nuevos departamentos.

Creando un Grupo de Seguridad

Aquí te mostramos cómo crear un nuevo grupo de seguridad para el personal de soporte técnico:

New-ADGroup -Name "IT_Support" `
            -GroupScope Global `
            -GroupCategory Security `
            -Description "Group for IT support staff" `
            -Path "OU=IT,DC=company,DC=local"

Esto crea un grupo de seguridad global llamado “IT_Support” en la unidad organizativa de TI.

Creando un Grupo de Distribución

¿Necesitas un grupo de distribución por correo electrónico? Solo cambia algunos parámetros:

New-ADGroup -Name "Marketing_News" `
            -GroupScope DomainLocal `
            -GroupCategory Distribution `
            -Description "Group for receiving marketing updates" `
            -Path "OU=Marketing,DC=company,DC=local"

Creando Múltiples Grupos a la Vez

¿Tienes múltiples grupos similares para crear? Usa un bucle:

$regions = "North", "South", "East", "West"
foreach ($region in $regions) {
    New-ADGroup -Name "Sales_$region" `
                -GroupScope Global `
                -GroupCategory Security `
                -Description "Sales team for $region region" `
                -Path "OU=Sales,DC=company,DC=local"
}

Modificando Grupos Existentes

Las cosas cambian en las organizaciones. Los grupos necesitan ser renombrados, las descripciones actualizadas y los alcances modificados. Veamos cómo manejar estas tareas.

Renombrando Grupos

Para renombrar un grupo, necesitarás cambiar tanto su nombre como su samAccountName:

# Primero renombra el objeto del grupo
Get-ADGroup EngineeringTeam | Rename-ADObject -NewName TechTeam

# Luego actualiza el samAccountName
Get-ADGroup EngineeringTeam | Set-ADGroup -SamAccountName TechTeam

Actualizando Descripciones de Grupos

¿Necesitas actualizar la descripción de un grupo? Una línea con Set-ADGroup:

Get-ADGroup TechTeam | Set-ADGroup -Description 'Technical Team for Engineering Projects'

Cambiando el Alcance del Grupo

Si necesitas cambiar el alcance de un grupo (como de Global a Universal):

Get-ADGroup TechTeam | Set-ADGroup -GroupScope Universal

Consejos Profesionales

Aquí hay algunos consejos para hacer que la gestión de grupos de AD sea aún más eficiente:

    1. Siempre usa `-Filter` en lugar de `-Identity` al consultar múltiples grupos – es más eficiente

    1. Recuerda que el alcance del grupo no se puede cambiar si el grupo tiene miembros – elimina a los miembros primero

    1. Utiliza el parámetro `-WhatIf` al hacer cambios para previsualizar lo que sucedería

    1. Siempre prueba tus cambios de grupo primero en un entorno no productivo

Resumen

Ahora deberías tener una base sólida para gestionar grupos de AD con PowerShell. Si bien el complemento de Usuarios y Equipos de Active Directory es excelente para tareas puntuales, PowerShell te brinda el poder de automatizar y gestionar grupos a gran escala.

Recuerda: los ejemplos mostrados aquí son solo el principio. Los cmdlets de AD de PowerShell son increíblemente poderosos y flexibles. A medida que te sientas más cómodo con estos conceptos básicos, podrás construir soluciones más complejas que se ajusten a las necesidades de tu organización.

¿Necesitas aprender más sobre PowerShell de Active Directory? Consulta nuestros otros tutoriales:

Source: https://adamtheautomator.com/powershell-ad-groups-guide/