【问题标题】:How to get all security groups that contain managedby?如何获取所有包含managedby的安全组?
【发布时间】:2023-01-25 10:39:15
【问题描述】:
作为访问审查的一部分,我需要提供一份安全组报告。我想知道如何才能获得 managedby 字段具有值的所有安全组的列表。
另外,我希望 managedby 只显示全名
这是我所拥有的
get-ADGroup -filter {(Managedby -contains "*") -and (GroupCategory -eq "Security")} -Properties * | Select Name, SamAccountName, ManagedBy
【问题讨论】:
标签:
powershell
active-directory
【解决方案1】:
您的代码几乎是正确的,问题是-contains 是PowerShell comparison operator,Active Directory Filter 不支持。
搜索属性时不为空 (通常):
"attributeName -like '*'"
"(attributeName=*)"
但是不幸的是,对于这种情况,我不知道如何使用-Filter(我个人不喜欢它)来执行此过滤器,如果您尝试:
Get-ADGroup -Filter "managedby -like '*'"
你会得到以下错误:
Get-ADGroup:运算符:以下:“Eq”、“Ne”是唯一支持在扩展上搜索的运算符
属性:'ManagedBy'。
所以,使用-LDAPFilter,你的代码应该是这样的:
$params = @{
LDAPFilter = '(&(ManagedBy=*)(groupType:1.2.840.113556.1.4.803:=2147483648))'
Properties = 'Name', 'SamAccountName', 'ManagedBy'
}
Get-ADGroup @params | Select-Object $params['Properties']