1.3K
Los grupos de seguridad de Active Directory se utilizan para otorgar a los usuarios permisos para varios servicios y recursos de dominio. Por lo tanto, para comprender qué permisos se asignan a un usuario específico en el dominio AD, basta con observar los grupos a los que pertenece la cuenta de usuario.
Hay varias herramientas administrativas que le permiten mostrar la pertenencia a grupos de Active Directory: consolas gráficas de AD, herramientas de línea de comandos y cmdlets de PowerShell.
Ver la membresía del grupo de usuarios de Active Directory a través de la GUI
La forma más sencilla y clara de ver una lista de grupos de usuarios directos en Active Directory es utilizar el complemento gráfico Usuarios y equipos de Active Directory (ADUC).
- ejecutar el dsa.msc complemento;
- Haga clic derecho en la raíz del dominio y seleccione Encontrar;
- Introduzca un nombre de usuario y haga clic en Encuentra ahora;
- Abra las propiedades del usuario y vaya a la Miembro de pestaña;
- Esta pestaña enumera los grupos a los que pertenece el usuario seleccionado.
También puede enumerar los grupos de un usuario mediante la consola del Centro de administración de Active Directory (dsac.exe).
- Introduzca un nombre de usuario en el Búsqueda global archivado y golpeado Ingresar;
- Haga doble clic en la cuenta de usuario que necesita y vaya a la pestaña «Miembro de»;
- Aquí puede ver una lista de grupos de los que el usuario especificado es miembro;
- Si el usuario está en una gran cantidad de grupos, puede usar un filtro para buscarlos por nombre.
Este método solo muestra los grupos directos a los que se ha agregado el usuario. Si se agrega otro grupo de Active Directory (grupo anidado) a cualquiera de estos grupos, no aparecerá en la consola. Para mostrar todos los grupos de usuarios (incluidos los anidados), debe utilizar herramientas de línea de comandos.
Comprobación de la pertenencia al grupo de AD a través de la línea de comandos
También puede comprobar la pertenencia al grupo de Active Directory a través de la línea de comandos. Ejecute el comando:
net user USERNAME /domain
Como puede ver, la salida del comando contiene el dominio (Membresías de grupos globales) y grupos locales (Membresías de grupos locales) del usuario.
Con el siguiente comando, puede enumerar los grupos de seguridad de los que su cuenta es miembro:
whoami /groups
Enumere los miembros del grupo de dominio:
Net group "CorpAPPUser" /DOMAIN
Además, puede usar la herramienta gpresult para ver la membresía actual del usuario. Ejecute el comando «gpresult /r» y, en Configuración de usuario, verá las membresías del usuario que inició sesión:
El usuario es parte de los siguientes grupos de seguridad
Puede mostrar una lista completa de grupos de usuarios (incluidos los anidados) con la herramienta dsget. En lugar de un nombre de usuario, debe especificar su nombre distinguido:
dsget user "CN=Jon Brion,OU=Users,OU=UK,DC=theitbros,DC=com" -memberof –expand
Si necesita obtener los miembros de un grupo de seguridad específico, incluida la pertenencia a un grupo anidado, use el comando:
dsget group "CN=NY-Managers,OU=Users,OU=NY,DC=theitbros,DC=com" –members -expand
Cuando necesite hacer la operación contraria y mostrar una lista de grupos a los que pertenece el grupo, ejecute:
dsget group "CN=NY-Managers,OU=Users,OU=NY,DC=theitbros,DC=com" –memberof -expand
Puede mostrar los miembros de un grupo AD específico usando dsquery y grupo neto comandos:
dsquery group -name "AllowUSB" | dsget group -members
o:
net group "AllowUSB" /domain
¿Cómo listar miembros del grupo AD usando PowerShell?
También puede verificar la membresía del grupo AD del usuario usando los cmdlets de PowerShell: Obtener usuario del anuncio, Get-ADPrincipalGroupMembership, Get-ADGroup y Get-ADGroupMember. Necesita el módulo PowerShell Active Directory instalado en su computadora para hacer esto.
Consejo. Para usar el módulo AD PowerShell en dispositivos de escritorio con Windows 10 o Windows 11, debe instalar las herramientas de administración remota del servidor.
Importe el módulo PowerShell de Active Directory a la sesión actual:
Import-module Activedirectory
Puede usar los cmdlets Get-ADGroup o Get-ADGroupMember para obtener una lista de usuarios en un grupo. Por ejemplo, para encontrar un grupo en un dominio y mostrar una lista de usuarios en él, puede usar el comando:
(Get-ADGroup -Filter {Name -like "*_AllowUSB"} -Properties Members | SELECT *).Members
El comando anterior solo devolverá el DN (Nombre Distinguido) de los usuarios que son miembros del grupo. Si necesita otros atributos de los usuarios del grupo (por ejemplo, SID, SamAccountName, nombre, etc.), es mejor usar el cmdlet Get-ADGroupMember:
Get-ADGroup -Filter {Name -like "*_AllowUSB"} -Properties Members | Get-ADGroupMember
En el ejemplo anterior, asumimos que no conoce el nombre exacto del grupo que está buscando. Si conoce el nombre completo del grupo, puede especificarlo inmediatamente como el parámetro Get-ADGroupMember.
El cmdlet Get-ADGroupMember permite enumerar los miembros de un grupo de AD (los miembros pueden ser usuarios, grupos y equipos).
Mostrar solo los nombres de usuario que se agregan al grupo AD específico (incluidos los grupos anidados):
Get-ADGroupMember -Identity AllowUSB -Recursive | ft name
Nota. La opción -Recursivo le permite mostrar no solo la cuenta de los usuarios agregados directamente al grupo AllowUSB, sino también los usuarios de los grupos que son miembros de este grupo (grupo secundario o anidado).
Mostrar miembros del grupo con información detallada sobre cada miembro:
Get-ADGroupMember -Identity AllowUSB | foreach { Get-ADUser $_ -Properties * }
Puede mostrar solo ciertos atributos de los usuarios en un grupo:
Get-ADGroupMember -Recursive “GroupName" | ForEach {Get-ADUser -filter {samaccountname -eq $_.SamAccountName} -Properties displayName, company, title, department } | Format-Table displayName,company,department,title –AutoSize
El siguiente ejemplo mostrará las direcciones de correo electrónico de todos los usuarios de un grupo de seguridad específico:
Get-ADGroupMember -Recursive "UK_IT_DEPT" | ForEach { Get-ADUser -filter {samaccountname -eq $_.SamAccountName} -Properties mail } | Sort-Object mail | Format-Table mail
Para contar la cantidad de usuarios en un grupo de AD, debe usar el método PowerShell Count:
(Get-ADGroupMember -Identity "Domain Admins").Count
Encuentre grupos vacíos en Active Directory (que no contengan ningún usuario):
Get-ADGroup -filter * | where {-Not ($_ | Get-ADGroupMember)} | Select Name
Puede realizar la tarea inversa: mostrar una lista de usuarios que no están incluidos en un grupo de AD en particular. El siguiente comando de PowerShell mostrará una lista de todos los usuarios del dominio que no son miembros del nyGerentes grupo.
Get-ADuser -Filter * -Properties MemberOf | where { -Not ($_.MemberOf -match "nyManagers") } | Select Name
También puede usar tubería con el Out-GridView cmdlet para ordenar y filtrar convenientemente la lista de miembros del grupo. Out-GridView le permite presentar cualquier conjunto de datos de PowerShell en una GUI simple. Con el Agregar criterios opciones, puede agregar diferentes filtros. Para ordenar la tabla por cualquier atributo, simplemente haga clic en el nombre de la columna en el encabezado de la tabla.
Get-ADGroupMember -Identity ca_AllowUSB | Select-Object name, objectClass,distinguishedName | Out-GridView
Obtenga la membresía del grupo de usuarios de Active Directory con PowerShell
La lista de grupos de Active Directory en los que el usuario es miembro se puede mostrar mediante los siguientes comandos:
Get-ADPrincipalGroupMembership jbrion | Select name
o
Get-ADUser jbrion -Properties Memberof | Select -ExpandProperty memberOf
Otra forma de obtener una lista de todos los miembros de un grupo (explícito o implícito) es usar el –Coincidencia recursiva operador:
Get-ADUser -Filter {MemberOf -RecursiveMatch "CN=NY-Sales,OU=Groups,OU=NY,DC=theitbros,dc=com"}
Si solo nos interesa saber si un determinado usuario pertenece a un determinado grupo, podemos proceder de la siguiente manera:
Get-ADUser -Filter {MemberOf -RecursiveMatch "CN=NY-Sales,OU=Groups,OU=NY,DC=theitbros,dc=com"} -SearchBase "CN=User,OU=Users,OU=NY,DC=theitbros,DC=com"
Puedes usar el filtro por nombre de grupo:
Get-ADPrincipalGroupMembership jbrion | where {$_ -like "*allow*"} | Sort-Object | select -ExpandProperty name
Puede utilizar filtros LDAP complejos para obtener la pertenencia a grupos anidados. Por ejemplo, para obtener una lista completa de los grupos a los que pertenece una cuenta de usuario (incluidos los grupos anidados), utilice el comando:
Get-ADGroup –LDAPFilter (member:1.2.840.113556.1.4.1941:=CN=John Brion,OU=Employees,OU=NY,DC=theitbros,DC=com)
La siguiente plantilla de secuencia de comandos de PowerShell se puede usar para verificar la membresía de un usuario en un grupo específico de Active Directory y realizar algunas acciones según la membresía del grupo (el nombre del grupo debe especificarse entre los caracteres *):
$group = “*AllowUSB*”
$user = “jbrion”
if ((Get-ADUser $user -Properties memberof).memberof -like $group* )
{
# If the user is a member of a group
echo “True”
}
Else
{
# User not in the group
echo “False”
}
Exportar miembros del grupo de Active Directory mediante PowerShell
Anteriormente, mostramos cómo obtener la membresía de un grupo de AD mediante PowerShell. En algunos casos, debe exportar la lista resultante de usuarios o grupos a un archivo de texto o CSV.
Para guardar la lista de usuarios de los que el usuario es miembro en un archivo de texto sin formato, basta con redirigir los resultados del comando a un archivo utilizando el operador >>. Por ejemplo:
Get-ADUser j.brion -Properties Memberof | Select -ExpandProperty memberOf >> c:psad_group.txt
Como resultado, aparecerá un archivo de texto en el directorio especificado con el nombre distinguido de todos los grupos de los que el usuario es miembro.
Para exportar objetos de PowerShell a formato CSV, use el Exportar-CSV cmdlet. Todo lo que necesita hacer es usar una canalización para pasar el resultado del comando anterior al cmdlet Export-Csv.
Obtengamos una lista de usuarios del grupo y exportemos esta lista a un archivo CSV.
Get-ADPrincipalGroupMembership j.brion | Select-Object name,description,GroupCategory,GroupScope,distinguishedName| Export-Csv -NoTypeInformation c:psad_group.csv -Encoding UTF8
Tenga en cuenta que puede usar el cmdlet Select-Object para obtener solo los atributos de los objetos de PowerShell cuyos valores desea exportar a CSV.

















