【发布时间】:2020-06-26 15:14:52
【问题描述】:
我正在尝试使用 PowerShell 来审核我们在 AD 中的所有安全组成员。我一直试图让Get-ADGroupMember 工作,但无论何时我尝试它,它都会返回消息'找不到具有身份'groupName'的对象:'DC = xxxx,DC = xxxx,DC = xxxx,DC = xxxx' .
我试过以下没有运气:
$groupNames = 'groupName1' , 'groupName2' , 'groupName3'
foreach ($group in $groupNames) {
Get-AdGroupMember -Identity $group
}
有没有人成功地从 AD 编译安全组中的组成员列表并将其导出为 .CSV?
【问题讨论】:
-
-Identity必须包含GUID、objectsid、distinguishedname或samaccountname。如果您正在尝试,例如displayname,除非它与samaccountname匹配,否则它将无法工作。 -
如果
$groupnames包含name属性值,可以先查询可用属性再处理Get-AdGroupMember。例如,$groups = ($groupNames |% { Get-AdGroup -filter "Name -eq '$_'" }).SamAccountName. -
@AdminOfThings 您的第一条评论是正确的。我使用的是“名称”而不是“samaccountname”,一旦替换了它,它就得到了我所需要的。是否可以运行 Get-ADGroupMember 并让它从文本文件中提取组名?另一件事。我能够运行 Get-ADGroup 函数,但它有很多我真的不需要的额外信息。我会使用 -filter 并指定 samaccountname 只是为了让它导出该名称吗?
-
您的代码逻辑是从列表中读取的正确方法。要从文件
file.txt中获取SamAccountNames的列表,您可以使用$groupNames = Get-Content file.txt。 -
出于某种原因,我仍然无法让“samaccountname”过滤器正常工作。我试过 get-adgroup -identity samaccountname get-adgroup -identity 'samaccountname' get-adgroup -filter 'samaccountname' 一直说找不到具有该身份的对象
标签: powershell active-directory-group