Los grupos de seguridad de Active Directory se utilizan para otorgar permisos de usuarios a 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 mirar los grupos en los que la cuenta de usuario es miembro.
Obtener membresía grupal a través de ADUC
La forma más sencilla y clara de obtener una lista de grupos de usuarios en AD 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.
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
El principal inconveniente de los métodos descritos anteriormente es que los grupos AD anidados no se muestran (cuando el grupo es miembro de otros 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
Utilizando dsquery y grupo neto comandos, puede mostrar los miembros de un grupo AD específico:
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. Para hacer esto, necesita el módulo PowerShell Active Directory instalado en su computadora.
Propina. Para usar el módulo AD PowerShell en Windows 10, debe instalar RSAT.
Mostrar solo los nombres de usuario que se agregan al grupo AD específico (incluidos los grupos anidados):
Import-module Activedirectory Get-ADGroupMember -Identity AllowUSB -Recursive | ft name
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
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
Insinuación. Si necesita exportar la lista resultante de grupos o usuarios a un archivo CSV de texto, agregue la siguiente línea al final de cualquiera de los comandos de PowerShell que se describen aquí:
| Export-Csv -NoTypeInformation .ad_group.csv -Encoding UTF8
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 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=co,)
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 ((Get-ADUser $user -Properties memberof).memberof -like “*$group*” ) { # If the user is a member of a group echo “True” } Else { # User not in group echo “False” }