En este artículo, veremos las características de PowerShell para administrar grupos de dominio de Active Directory. Veremos cómo crear un nuevo grupo en AD, agregar usuarios y eliminarlos, para mostrar la lista de usuarios del grupo y algunas otras acciones útiles con los grupos de dominio, que son extremadamente útiles para la administración diaria. Los siguientes cmdlets básicos están disponibles para administrar grupos de AD en el módulo Active Directory para Windows PowerShell:

Para usar estos cmdlets, debe tener un módulo especial para interactuar con AD: Módulo de Active Directory para Windows PowerShell. Este módulo se introdujo en Windows Server 2008 R2. En Windows Server 2012 / 2012R2 / 2016, está habilitado de forma predeterminada en los controladores de dominio. Puede instalarlo y habilitarlo en computadoras cliente (Windows 10,8.1 y 7) como uno de los componentes RSAT. Puede asegurarse de que el módulo esté disponible de la siguiente manera:

Get-Module -Listavailable

Como puede ver, el módulo ActiveDirectory está cargado. Si no es así, impórtelo usando este comando:

Import-Module ActiveDirectory

Puede obtener una lista completa de los comandos del módulo ejecutando lo siguiente:

Get-Command -Module ActiveDirectory

Hay 147 cmdlets disponibles en el módulo y 11 de ellos hacen referencia a la administración de grupos de AD.

Get-Command -Module ActiveDirectory -Name "*Group*"

Aquí está la lista:

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

New-ADGroup: creación de un nuevo grupo de AD

Cree un nuevo grupo en el contenedor de Active Directory (OU) especificado usando New-ADGroup mando:

New-ADGroup "TestADGroup" -path 'OU=Groups,OU=NY,OU=US,DC=corp,dc=woshub,DC=com' -GroupScope Global -PassThru –Verbose

Utilizando la Descripción atributo, puede establecer una descripción de grupo y, utilizando DisplayName, se puede cambiar el nombre mostrado.

New-ADGroup: crear un nuevo grupo de anuncios

Uno de los siguientes tipos de grupo se puede configurar mediante GroupScope parámetro:

  • 0 = DomainLocal
  • 1 = Global
  • 2 = Universal

Puede crear un grupo de distribución de la siguiente manera:

New-ADGroup "TestADGroup-Distr" -path 'OU=Groups,OU=NY,OU=US,DC=corp,dc=woshub,DC=com' -GroupCategory Distribution -GroupScope Global -PassThru –Verbose

Add-AdGroupMember: agregar usuarios a un grupo de anuncios

Puede agregar usuarios a un grupo de Active Directory usando Add-AdGroupMember cmdlet. Agregue dos nuevos usuarios a su nuevo grupo:

Add-AdGroupMember -Identity TestADGroup -Members user1, user2

Add-AdGroupMember

Si la lista de usuarios que se agregarán al grupo es bastante grande, puede guardar la lista de cuentas de usuario en un archivo CSV, luego importar este archivo y agregar cada usuario al grupo.

El formato del archivo CSV debe ser el siguiente (los usuarios deben aparecer uno en una fila con los usuarios como encabezado de columna).

agregar usuarios al grupo de anuncios desde un archivo csvusers.csv

Import-CSV .users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity ‘TestADGroup’ -members $_.users}

Para obtener todos los miembros de un grupo (groupX) y agregarlos a otro grupo (groupY), use este comando:

Get-ADGroupMember “GroupX” | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “Group-Y” -Members $_}

Si necesita copiar los miembros de todos los subgrupos (recursivamente) a un nuevo grupo, ejecute este comando:

Get-ADGroupMember -Identity “GroupX” -Recursive | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “GroupY” -Members $_}

Remove-ADGroupMember: eliminación de usuarios de un grupo de AD

Para eliminar usuarios del grupo de AD, utilice Remove-ADGroupMember cmdlet. Eliminemos dos usuarios del grupo:

Remove-ADGroupMember -Identity TestADGroup -Members user1, user2

Confirmar la eliminación del usuario:

Remove-ADGroupMember

Si tiene que eliminar usuarios de un grupo de acuerdo con la lista de usuarios de un archivo CSV, use este comando:

Import-CSV .users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity ‘TestADGroup’ -members $_.users}

Get-ADGroup: obtener información sobre un grupo de AD

Get-ADGroup cmdlet ayudará a obtener información sobre el grupo:

Get-ADGroup 'TestADGroup'

Este comando muestra información sobre los principales atributos del grupo (DN, tipo de grupo, nombre, SID). Para mostrar los valores de todos los atributos del grupo de dominio de AD, ejecute el siguiente comando:

Get-ADGroup 'TestADGroup' -properties *

Propiedades de Get-ADGroup

Como puede ver, ahora se muestran tales atributos, como la hora de creación y modificación del grupo, descripción, etc.

Con el cmdlet Get-ADGroup, puede buscar grupos según un patrón determinado. Por ejemplo, debe buscar todos los grupos de AD, cuyo nombre contenga la frase administradores::

Get-ADGroup -LDAPFilter “(name=*admins*)” | Format-Table

Get-ADGroupMember: visualización de la lista de usuarios en un grupo de AD

Para mostrar la lista de usuarios del grupo:

Get-ADGroupMember 'TestADGroup'

Para dejar solo los nombres de usuario en los resultados, ejecute:

Get-ADGroupMember 'TestADGroup'| ft name

Get-ADGroupMember: membresía de grupo de anuncios con nombre de usuario

Si se incluyen otros grupos de dominio en este grupo, utilice Recursivo parámetro para mostrar la lista completa de miembros, incluidos todos los grupos anidados.

Get-ADGroupMember ADadmins -recursive| ft name

Para exportar la lista de cuentas que son miembros de un grupo específico a un archivo CSV (para su uso posterior en Excel), ejecute el siguiente comando:

Get-ADGroupMember 'ADadmins' -recursive| ft samaccountname| Out-File c:PSADadminsList.csv

Para agregar datos de la cuenta de usuario de AD a un archivo de texto, use el cmdlet Get-ADUser. Por ejemplo, además de la cuenta de usuario, debe mostrar la posición y el número de teléfono de un usuario:

Get-ADGroupMember -Identity ADadmins -recursive| foreach { Get-ADUser $_ -properties title, OfficePhone|Select-Object title, OfficePhone }

Puede contar el número de usuarios en un grupo como este:

(Get-ADGroupMember -Identity 'domain admins').Count

Resultó que hay 7 cuentas de administrador en el grupo "administradores de dominio".

Get-ADGroupMember

Para obtener la lista de grupos vacíos en la unidad organizativa específica, use este comando:

Get-ADGroup -Filter * -Properties Members -searchbase “OU=NY,OU-US,DC=corp,dc=woshub,DC=com”  | where {-not $_.members} | select Name

Recomendado para ti