powershell - 在格式化的 csv 中检索 SamAccountName 和关联的组
问题描述
我正在尝试检索与过滤器匹配的所有广告用户的列表,将其导入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
}
解决方案
这将包括用户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
为您处理所有这些。它将包括主要组,并在您的林中的每个域中搜索以用户为成员的全局和域本地组。
推荐阅读
- flutter - 从 Firestore 中的文档中检索数组数据
- python - 如何使用 .loc 方法向前搜索 i 行?
- javascript - 通过自定义组件将 props 添加到 styled-component
- mysql - Node.js / Discord.js - 如何在构建嵌入时正确等待 for 循环完成
- java - 重新启动 Spring Boot 应用程序后,使用 rabbitMQ 从 10 个并发消费者变为 1 个
- visual-studio - 在 Visual Studio 预构建事件中运行 powershell 脚本
- python - 如何为图像分割模型创建数据生成器?
- sql - 来自列名引用的 SQL 动态列值分配
- r - 来自循环的页面上的多个绘图
- r - 更改标题、X 标签、Y 标签和在 R 中添加图例的问题