【问题标题】:Retrieving SamAccountName and associated groups in a formatted csv在格式化的 csv 中检索 SamAccountName 和关联的组
【发布时间】:2018-05-25 09:48:12
【问题描述】:

我正在尝试检索与过滤器匹配的所有广告用户的列表,将其输入Get-ADPrincipalGroupMembership,然后将结果导出为易于阅读的 CSV。

*NB 我不能使用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
} 

【问题讨论】:

  • 没有为MemberOf 返回任何东西是您真正的问题,因为它是标准模式的一部分。如果你运行 Get-ADUser USERNAME -Properties MemberOf | Select -ExpandProperty MemberOf 会发生什么
  • @James C ,这实际上确实返回了结果。奇怪的是,当我早些时候做Get-AdUser (filter) | ft name, samaccountname, memberof 时,它返回了组的空括号。

标签: powershell active-directory


【解决方案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 林中具有通用范围的组、同一域上的全局组或您正在读取的服务器的同一域上的域本地组(可能不是与用户相同的域)。所以它有它的局限性。

用户也可以通过primaryGroupId 属性成为组的“成员”,该属性存储用户主要组的RID(SID 的最后一部分)。这通常仅用于域用户组。

Get-ADPrincipalGroupMembership 会为您处理所有这些。它将包括主要组并在您的林中的每个域中搜索以用户为成员的全局和域本地组。

【讨论】:

  • 谢谢加布里埃尔。进一步阅读总是值得赞赏的!该脚本实际上两次输出组名,因此我对其进行了修剪,但至少我现在有一个用户组映射,谢谢。仍然对空管场景感到困惑。我以为是大括号打断了管道,但是大括号内的管道也出现了同样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多