我正在尝试检索与过滤器匹配的所有广告用户的列表,将其导入Get-ADPrincipalGroupMembership
,然后将结果导出为易于阅读的CSV。
*注意我无法使用MemberOf
,因为它会为每位广告用户返回空白,而我发现的大多数成功脚本都使用MemberOf
。
这是我试过的,它给了我一个群组列表,但没有关于谁去哪里的关联。试图export-csv
,但它抱怨空管?
import-module activedirectory
foreach ($user in (Get-AdUser -Filter {(Name -Like "*(s)") } | select samaccountName)) {
Get-ADPrincipalGroupMembership $user.samaccountName | select samaccountname,name
}
答案 0 :(得分:1)
这将在群组结果中包含用户sAMAccountName
:
Import-Module ActiveDirectory
ForEach ($user in (Get-AdUser -Filter {(Name -Like "*(s)") } | select sAMAccountName)) {
Get-ADPrincipalGroupMembership $user.sAMAccountName| select @{Expression={$user.sAMAccountName};Label="User"},sAMAccountName,name
}
这种奇怪的表示法用于创建自定义表格。您可以在此处详细了解:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-powershell-1.0/ee692794(v=technet.10)
memberOf
中没有看到任何内容可能是正常的。如果您签入用户和计算机,是否在memberOf
?
memberOf
属性仅显示在同一个AD林中具有Universal范围的组,或同一域中的Global组。它不会在其他域上显示全局组,也不会在任何域(即使是同一域)上显示域本地组。所以它有其局限性。
用户也可以是"会员"由primaryGroupId
属性组成的组,其存储用户的主要组的RID(SID的最后部分)。这通常仅用于Domain Users组。
Get-ADPrincipalGroupMembership
为您处理所有这些事情。它将包括主要组,并搜索林中的每个域,以查找将该用户作为成员的全局和域本地组。