Error no especificado Exportadores de todos los grupos del usuario a un archivo CSV

0

Pregunta

Soy bastante nuevo en powershell. No estoy seguro de lo que estoy haciendo mal aquí. Tratando de exportar todos los usuarios de uno de los grupos de ANUNCIOS a un archivo CSV. Sé que es un poco duro codificadas pero solo tratando de hacer algo simple.

Import-Module ActiveDirectory

$UserName = “pball“ 

$ReportPath = “C:\Input\EricsStuff\userADgroups.csv“

Get-ADPrincipalGroupMembership $Username | select name, groupcategory, groupscope | export-CSV C:\Input\EricsStuff\userADgroups.csv


# Export to :
# C:\Input\EricsStuff\userADgroups.csv

Específicamente el Error es :

Get-ADPrincipalGroupMembership : An unspecified error has occurred
At C:\Input\EricsStuff\ExportUserGroups.ps1:7 char:1
+ Get-ADPrincipalGroupMembership $Username | select name, groupcategory ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (pball:ADPrincipal) [Get-ADPrincipalGroupMembership], ADException
    + FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.GetADPrincipalGroupMemb 
   ership
powershell
2021-11-23 17:28:43
1

Mejor respuesta

0

Como usted pudo haber visto, hay muchos mensajes a través de internet mencionar los problemas recurrentes con Get-ADPrincipalGroupMembership.

Si desea ver una pertenencia del usuario, la manera más fácil es buscar en el usuario MemberOf Atributo de Active Directory, pero ya que usted está mirando para conseguir:

  • Name
  • GroupScope
  • GroupCategory

Esto requeriría para la consulta de cada grupo utilizando el Get-ADGroup. Hay 2 alternativas que se me ocurre, la primera es usar LDADFilter para buscar grupos, donde el usuario DistinguishedName es un miembro (en otras palabras, donde el usuario DN es parte del grupo Member atributo):

$UserName = "pball"
$ReportPath = "C:\Input\EricsStuff\userADgroups.csv"

$userDN = (Get-ADUser $UserName).DistinguishedName
Get-ADGroup -LDAPFilter "(member=$userDN)" |
Select-Object Name, GroupCategory, GroupScope |
Export-CSV $ReportPath

El problema con este enfoque es que usted va a obtener sólo los grupos donde el usuario es un miembro de en el Dominio actual. Si el usuario es miembro de los grupos que existen en un Dominio diferente, este código no se muestra.

Otra alternativa si usted necesita para consulta de todos los grupos (en el Dominio actual y en otros Dominios) que el usuario es miembro de un bucle en el MemberOf de la propiedad. Este código ha sido probado y funciona para mí, pero no se puede saber con certeza si va a trabajar para usted (probablemente la regex para conseguir el Dominio del DistinguishedName puede ser mejorado, pero soy malo con eso).

$UserName = "pball"
$ReportPath = "C:\Input\EricsStuff\userADgroups.csv"

$membership = (Get-ADUser $UserName -Properties MemberOf).MemberOf
$membership | Group-Object { ($_ -split '(?=DC=)',2)[1] } | ForEach-Object {

    [adsi]$ldap = 'LDAP://{0}' -f $_.Name
    [string]$domain = $ldap.Name

    foreach($group in $_.Group)
    {
        Get-ADGroup $group -Server $domain
    }

} |
Select-Object Name, GroupCategory, GroupScope |
Export-CSV $ReportPath
2021-11-23 21:56:00

Excelente, justo lo que estoy buscando. Gracias
eric webster

@ericwebster feliz de ayudar
Santiago Squarzon

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................