El Get-ADGroupMember
cmdlet de PowerShell devuelve miembros de un grupo específico. ¿Existe un cmdlet o propiedad para obtener todos los grupos de los que un usuario en particular es miembro?
Arreglé mi error: Get-Member
debería ser Get-ADGroupMember
.
net user /domain username
, verifique también otros métodos en Obtener grupos en los que un usuario es miembro Uso de PowerShellRespuestas:
Get-ADPrincipalGroupMembership lo hará.
fuente
get-aduser $username -Properties memberof | select -expand memberof
funcionó bien sin embargo.import-module activedirectory
en la línea de comandos de powershell, entonces esto debería ejecutarse.Una sola línea, sin módulos necesarios, utiliza el usuario registrado actual:
Qudos a este artículo de vbs / powershell: http://technet.microsoft.com/en-us/library/ff730963.aspx
fuente
$env:username
a$username
y configuré$username = "testuser"
para hacer fácilmente la sustitución de variables para otras búsquedas de usuarios.Una alternativa más concisa a la publicada por Canoas, para obtener la membresía de grupo para el usuario actualmente conectado.
Encontré este método en esta publicación de blog: http://www.travisrunyard.com/2013/03/26/auto-create-outlook-mapi-user-profiles/
Una versión aún mejor que usa una expresión regular para quitar el guff LDAP y deja solo los nombres de los grupos:
Puede encontrar más detalles sobre el uso del acelerador de tipo [ADSISEARCHER] en el blog de scripting guy: http://blogs.technet.com/b/heyscriptingguy/archive/2010/08/24/use-the-powershell-adsisearcher-type -accelerator-to-search-active-directory.aspx
fuente
| Sort-Object
para hacerlo aún más legible.Camino de la vieja escuela de CMD:
fuente
fuente
Si no puede hacer que Get-ADPrincipalGroupMembership funcione, puede intentar iniciar sesión como ese usuario y luego usarlo.
fuente
$id = [Security.Principal.WindowsIdentity]("username")
[System.Security.Principal.WindowsIdentity]::GetCurrent().Groups | % {$_.Translate([Security.Principal.NTAccount])}
.Obtener membresía de grupo para un usuario:
Consulte Obtener membresía de grupo para un usuario
Pero también vea los Comandos gratuitos de PowerShell de Quest para Active Directory .
[ Editar : el comando Get-ADPrincipalGroupMembership está incluido en Powershell desde v2 con Windows 2008 R2. Ver la respuesta de kstrauss a continuación.]
fuente
Get-Member
es un cmdlet para enumerar los miembros de un .NETobject
. Esto no tiene nada que ver con la membresía de usuario / grupo. Puede obtener la membresía de grupo del usuario actual de la siguiente manera:Si necesita acceso a información de grupo de usuarios arbitrarios, entonces la sugerencia de @tiagoinu de usar los cmdlets de Quest AD es una mejor manera de hacerlo.
fuente
Primero, importe el módulo activedirectory:
Luego emita este comando:
Esto mostrará los miembros del grupo especificado.
fuente
No hay necesidad de guiones largos cuando se trata de un simple revestimiento.
Comando QUEST
Comando MS AD
Me parece que el cmd de MS AD es más rápido, pero a algunas personas les gustan más los Quest.
Steve
fuente
Get-Member no es para obtener la membresía de grupo del usuario. Si desea obtener una lista de grupos a los que pertenece un usuario en el sistema local, puede hacerlo de la siguiente manera:
En la consulta anterior, reemplace DemoUser1 con el nombre de usuario que desee y el DomainName con el nombre de su computadora local o el nombre de dominio.
fuente
Utilizar:
Esto canaliza la salida del comando en un archivo CSV .
fuente
Esto debería proporcionarle los detalles para el usuario actual. Powershell no es necesario.
whoami /groups
fuente
Es solo una línea:
final de :)
fuente
select -expandproperty memberof
, la salida será un poco más legible / útil.Escribí una función de PowerShell llamada Get-ADPrincipalGroupMembershipRecursive. Acepta el DSN de una cuenta de usuario, computadora, grupo o servicio. Recupera una lista inicial de grupos del atributo memberOf de la cuenta, luego verifica recursivamente las membresías de esos grupos. El código abreviado está debajo. El código fuente completo con comentarios se puede encontrar aquí .
fuente
Lo siguiente funciona bien:
Si tiene una lista de usuarios:
fuente
Get-QADUser -SamAccountName LoginID | % {$ _. MemberOf} | Get-QADGroup | seleccione nombre
fuente
No pude hacer que lo siguiente funcione para un usuario en particular:
Lanzó un error que no estaba dispuesto a solucionar.
Sin embargo, encontré una solución diferente usando Get-ADUser. Me gusta un poco mejor porque si no conoce el nombre de la cuenta, puede obtenerlo basándose en un comodín en el nombre real del usuario. Simplemente complete PartOfUsersName y listo .
Enormes apoyos para schmeckendeugler y 8DH por llevarme a esta solución. +1 a los dos.
fuente
Si bien hay muchas respuestas excelentes aquí, hay una que estaba buscando personalmente que faltaba. Una vez que lo descubrí, pensé que debería publicarlo en caso de que quiera encontrarlo más tarde, o de hecho se las arregla para ayudar a alguien más en algún momento:
Un segundo enfoque para presentar esto es especificar las columnas individuales que le interesan, por ejemplo:
Esto proporciona a todos los grupos de AD a los que pertenece el nombre de usuario, pero también presenta todas las propiedades predeterminadas de cada grupo formateadas como una tabla.
El beneficio clave que esto le brinda es que puede ver de un vistazo cuáles son las listas de distribución y cuáles son los grupos de Seguridad. Puede ver más de un vistazo cuáles son universales, cuáles son DomainLocal y cuáles son globales.
¿Por qué te importaría esta última parte?
fuente
Cambie el valor de -SearchBase para reflejar la unidad organizativa de la que necesita enumerar los usuarios :)
Esto mostrará una lista de todos los usuarios en esa unidad organizativa y le mostrará de qué grupos son miembros.
fuente
Get-ADPrincipalGroupMembership USERLOGON | seleccione nombre
fuente
fuente
Esta es la forma más simple de obtener los nombres:
Get-ADPrincipalGroupMembership "YourUserName"
# Returns distinguishedName : CN=users,OU=test,DC=SomeWhere GroupCategory : Security GroupScope : Global name : testGroup objectClass : group objectGUID : 2130ed49-24c4-4a17-88e6-dd4477d15a4c SamAccountName : testGroup SID : S-1-5-21-2114067515-1964795913-1973001494-71628
Agregue una instrucción select para recortar la respuesta o para que cada usuario de una unidad organizativa cada grupo del que sea usuario:
foreach ($user in (get-aduser -SearchScope Subtree -SearchBase $oupath -filter * -Properties samaccountName, MemberOf | select samaccountName)){ Get-ADPrincipalGroupMembership $user.samaccountName | select name}
fuente
Para hacerlo recursivo, puede usar:
fuente
Casi todas las soluciones anteriores utilizaron el
ActiveDirecotry
módulo que podría no estar disponible por defecto en la mayoría de los casos.Usé el siguiente método. Un poco indirecto, pero cumplió mi propósito.
Listar todos los grupos disponibles
Get-WmiObject -Class Win32_Group
Y luego enumere los grupos a los que pertenece el usuario
[System.Security.Principal.WindowsIdentity]::GetCurrent().Groups
La comparación se puede hacer mediante la comprobación a través de
SIDs
. Esto funciona para el usuario conectado. Por favor, corríjame si estoy equivocado. Completamente nuevo en PowerShell, pero tuve que hacerlo para un compromiso de trabajo.fuente
Con entrada de usuario y formato de salida elegante:
fuente
Poniendo esto aquí para referencia futura. Estoy en medio de una migración de correo electrónico. Necesito conocer cada cuenta de usuario y su respectiva membresía de grupo, y también necesito conocer cada grupo y sus respectivos miembros.
Estoy usando el bloque de código a continuación para generar un CSV para la membresía de grupo de cada usuario.
El proceso de exportación para los grupos y sus respectivos miembros fue un poco complicado, pero a continuación funciona. Los nombres de los archivos de salida incluyen el tipo de grupo. Por lo tanto, los grupos de distribución de correo electrónico que necesito son / deberían ser los grupos de Distribución Universal y Global. Debería poder simplemente eliminar o mover los archivos TXT resultantes que no necesito.
fuente
Estudiar todos los comentarios presentados me dio un punto de partida (gracias por eso) pero me dejó con varios problemas sin resolver. Como resultado aquí está mi respuesta. El fragmento de código proporcionado hace un poco más de lo que se solicita, pero proporciona información útil de depuración.
fuente
Cuando no tiene privilegios para consultar a otros grupos de miembros pero sí tiene el privilegio de consultar a los miembros del grupo, puede hacer lo siguiente para crear un mapa de qué usuario tiene acceso a qué grupos.
fuente