Nešpecifikovaná Chyba - Export všetky jednej používateľskej skupiny v CSV

0

Otázka

Som celkom nový powershell. Nie ste istí, čo robím zle. Snaží exportovať všetky jedného používateľa REKLAMNÉ skupiny do CSV. Viem, že je to trochu ťažké kódované, ale len snaží urobiť niečo jednoduché.

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étne Chyby, 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

Najlepšiu odpoveď

0

Ako ste mohli vidieť, existuje mnoho miest cez internet zmienku opakujúce sa problémy s Get-ADPrincipalGroupMembership.

Ak chcete vidieť používateľa členstvo, najjednoduchší spôsob je pozrieť sa na používateľa MemberOf Active Directory atribút, ale keďže ste chcú získať:

  • Name
  • GroupScope
  • GroupCategory

To by vyžadovalo dotaz každú skupinu prostredníctvom Get-ADGroup. Existujú 2 varianty, ktoré som si myslieť, prvý z nich je pomocou LDADFilter ak chcete vyhĺadávať skupiny, kde používateľa DistinguishedName je členom (inými slovami, kde používateľa DN je súčasťou skupiny Member atribút):

$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 prístupom je, že si bude len získať skupiny, ak je používateľ členom na aktuálnej Doméne. Ak používateľ je členom skupiny, ktoré existujú na inej Doméne, tento kód bude nie ich zobrazenie.

Ďalšou alternatívou je, ak potrebujete dotaz všetky skupiny (na aktuálnej Domény a na ďalšie Domény), ktoré používateľ je členom je slučky cez MemberOf majetku. Tento kód bol testovaný a funguje to pre mňa, ale nemôžem povedať, či to bude pracovať pre vás (pravdepodobne regex ak chcete získať Domény DistinguishedName možno zlepšiť, ale nie som zlá, že s).

$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

Výborné, presne to, čo hľadám. Ďakujeme
eric webster

@ericwebster radi pomôžu
Santiago Squarzon

V iných jazykoch

Táto stránka je v iných jazykoch

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