powershell 获取具有空白“按管理”字段的所有AD组

ffvjumwh  于 2023-04-21  发布在  Shell
关注(0)|答案(1)|浏览(112)

我正在尝试获取所有具有空白“按名称管理”和AD组描述的AD组。我目前遇到使用筛选器不显示结果的问题,但不确定原因。感谢任何帮助。

Get-ADGroup -filter * | Where-Object {$_.ManagedBy -eq ""} | Select-Object manager,description | Export-Csv -Path C:\Users\User\Desktop\AllNullManagedBy.csv -NoTypeInformation

当前脚本没有显示任何用户,而应该显示多个用户

qoefvg9y

qoefvg9y1#

问题是Get-ADGroup默认情况下不返回具有ManagedBy属性的对象,您需要请求它(-Properties ManagedBy):

Get-ADGroup -Filter * -Properties ManagedBy, Manager, Description |
    Where-Object {-not $_.ManagedBy } | Select-Object samAccountName, Manager, Description |
    Export-Csv -Path C:\Users\User\Desktop\AllNullManagedBy.csv -NoTypeInformation

但是,这种操作效率很低,您可以使用LDAP filtering capabilities

Get-ADGroup -LDAPFilter "(!managedby=*)" -Properties Manager, Description |
    Select-Object samAccountName, Manager, Description |
    Export-Csv -Path C:\Users\User\Desktop\AllNullManagedBy.csv -NoTypeInformation

作为旁注,Where-Object { $_.ManagedBy -eq "" }可能不会返回任何结果,您将查询其ManagedBy属性设置且其值等于空字符串的AD组,而不是过滤未设置属性或其值为**$null或空字符串**({-not $_.ManagedBy })的组:

$null -eq '' # => False: comparison fails here
-not $null   # => True
-not ''      # => True

相关问题