Belirtilmemiş Hata-Bir kullanıcının tüm gruplarını csv'ye dışa aktarma

0

Soru

Powershell'de oldukça yeniyim. Burada neyi yanlış yaptığımdan emin değilim. Bir kullanıcının tüm REKLAM gruplarını csv'ye aktarmaya çalışıyorum. Biliyorum kodlaması biraz zor ama basit bir şey yapmaya çalışıyorum.

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

Özellikle Hata şu şekildedir :

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

En iyi cevabı

0

Gördüğünüz gibi, internet üzerinden yinelenen sorunlardan bahseden birçok gönderi var Get-ADPrincipalGroupMembership.

Bir kullanıcının üyeliğini görmek istiyorsanız, en kolay yol kullanıcının üyeliğine bakmaktır. MemberOf Active Directory özniteliği, ancak almak istediğinizden beri:

  • Name
  • GroupScope
  • GroupCategory

Bu, her grubu kullanarak sorgulamayı gerektirir Get-ADGroup. Aklıma gelen 2 alternatif var, ilki kullanıyor LDADFilter kullanıcının bulunduğu grupları aramak için DistinguishedName bir üyedir (başka bir deyişle, kullanıcının DN grubun bir parçası Member öznitelik):

$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

Bu yaklaşımla ilgili sorun, yalnızca kullanıcının geçerli Etki Alanında üyesi olduğu grupları almanızdır. Kullanıcı farklı bir Etki Alanında bulunan grupların üyesiyse, bu kod bunları görüntülemez.

Kullanıcının üyesi olduğu tüm grupları (geçerli Etki Alanında ve diğer Etki Alanlarında) sorgulamanız gerekiyorsa başka bir alternatif, kullanıcının üyesi olduğu tüm grupları (geçerli Etki Alanında ve diğer Etki Alanlarında) MemberOf mülk. Bu kod test edildi ve benim için çalışıyor ancak sizin için işe yarayıp yaramayacağını kesin olarak söyleyemiyor (büyük olasılıkla regex etki Alanını almak için DistinguishedName geliştirilebilir ama bununla kötüyü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

Mükemmel, tam olarak aradığım şey. Teşekkür ederim
eric webster

@ericwebster yardımcı olmaktan mutluluk duyar
Santiago Squarzon

Diğer dillerde

Bu sayfa diğer dillerde

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