在格式化的csv中检索SamAccountName和关联的组

时间:2018-05-25 09:48:12

标签: powershell active-directory

我正在尝试检索与过滤器匹配的所有广告用户的列表,将其导入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
} 

1 个答案:

答案 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为您处理所有这些事情。它将包括主要组,并搜索林中的每个域,以查找将该用户作为成员的全局和域本地组。