我對 powershell 很陌生。不知道我在這里做錯了什么。嘗試將一個用戶的所有 AD 組匯出到 CSV。我知道這有點硬編碼,但只是嘗試做一些簡單的事情。
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
具體錯誤是:
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
uj5u.com熱心網友回復:
您可能已經看到,互聯網上有很多帖子提到了Get-ADPrincipalGroupMembership.
如果您想查看用戶的成員資格,最簡單的方法是查看用戶的MemberOfActive Directory 屬性,但由于您希望獲得:
NameGroupScopeGroupCategory
這將需要使用Get-ADGroup. 我可以想到兩種選擇,第一種LDADFilter用于搜索用戶所屬DistinguishedName的組(換句話說,用戶DN是組Member屬性的一部分):
$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
這種方法的問題在于,您將只能獲得用戶所屬的組,其中用戶是當前 Domain的成員。如果用戶是不同域中存在的組的成員,則此代碼將不會顯示它們。
如果您需要查詢用戶所屬的所有組(在當前域和其他域上),另一種選擇是遍歷該MemberOf屬性。這段代碼已經過測驗,對我有用,但不能確定它是否適合你(最有可能regex獲得域的DistinguishedName可以改進,但我對此很不滿意)。
$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
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/366200.html
標籤:电源外壳
下一篇:匹配并檢查2個值是否相等
