Nespecifikovaná Chyba - Export všech uživatelů skupiny, do CSV

0

Otázka

Jsem docela nový powershell. Nejste si jisti, co dělám špatně. Snaží exportovat všechny uživatele REKLAMNÍ sestavy do formátu CSV. Vím, že je to trochu těžké kódované, ale jen se snaží udělat něco jednoduchého.

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

Konkrétně Chyba je :

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

Nejlepší odpověď

0

Jak jste mohli vidět, existuje mnoho míst na internetu zmínku, opakující se problémy s Get-ADPrincipalGroupMembership.

Pokud chcete vidět členství uživatele, nejjednodušší způsob je podívat se na uživatele MemberOf Active Directory, atribut, ale od té doby už hledáte získat:

  • Name
  • GroupScope
  • GroupCategory

To by vyžadovalo, aby každý dotaz pomocí group Get-ADGroup. K dispozici jsou 2 alternativy, myslím, první z nich je pomocí LDADFilter chcete-li hledat skupiny, kde uživatel je DistinguishedName je členem (jinými slovy, kde uživatel je DN je součástí skupiny Member atribut):

$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

Problém s tímto přístupem je, že vás bude pouze se skupinami, kde je uživatel členem v aktuální Doméně. Pokud je uživatel členem skupiny, které existují na jiné Doméně, tento kód se nebude zobrazovat.

Další alternativou, pokud potřebujete dotazu všechny skupiny (na aktuální Doménu a na jiných Doménách), že uživatel je členem, je smyčka přes MemberOf nemovitosti. Tento kód byl testován a funguje to pro mě, ale nemůžu říct jistě, jestli to bude pracovat pro vás (s největší pravděpodobností regex získat Domény DistinguishedName může být lepší, ale jsem špatný s tím).

$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

Vynikající, přesně to, co hledám. Děkuji
eric webster

@ericwebster rádi pomohou
Santiago Squarzon

V jiných jazycích

Tato stránka je v jiných jazycích

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