Errore non specificato - Esportazione di tutti i gruppi dell'utente in un file CSV

0

Domanda

Io sono abbastanza nuovo di powershell. Non so cosa sto facendo di sbagliato qui. Cercando di esportare tutti di un utente gruppi di ANNUNCI in un file CSV. So che è un po ' difficile codificati, ma solo cercando di fare qualcosa di semplice.

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

In particolare l'Errore è :

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

Migliore risposta

0

Come si può vedere, ci sono molti post su internet che citano problemi ricorrenti con Get-ADPrincipalGroupMembership.

Se volete vedere l'appartenenza di un utente, il modo più semplice è quello di guardare a MemberOf Attributo di Active Directory, ma dato che si sta cercando di ottenere:

  • Name
  • GroupScope
  • GroupCategory

Questo richiederebbe di query ogni gruppo Get-ADGroup. Ci sono 2 alternative che posso pensare, il primo è quello di utilizzare LDADFilter per la ricerca di gruppi in cui l'utente DistinguishedName è un membro (in altre parole, dove l'utente DN fa parte del gruppo Member attributo):

$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

Il problema con questo approccio è che si potrà ottenere solo i gruppi di cui l'utente è un membro di Dominio corrente. Se l'utente è membro di gruppi che esistono su un Dominio diverso, questo codice non li visualizza.

Un'altra alternativa, se avete bisogno di eseguire query di tutti i gruppi (su Dominio corrente e su altri Domini) che l'utente è membro del loop sopra il MemberOf proprietà. Questo codice è stato testato e funziona per me, ma non può dire con certezza se si tratta di andare a lavorare per voi (più probabile la regex per ottenere il Dominio DistinguishedName può essere migliorato, ma sto male con che).

$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

Ottimo, esattamente quello che sto cercando. Grazie
eric webster

@ericwebster felice di aiutare
Santiago Squarzon

In altre lingue

Questa pagina è in altre lingue

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