gpt4 book ai didi

powershell - DirectoryServices 过滤器和方法

转载 作者:行者123 更新时间:2023-12-03 23:35:18 25 4
gpt4 key购买 nike

我正在尝试从 AD 获取 OU/DC 中所有用户的列表。

这就是我想出的:

$erroractionpreference = "SilentlyContinue"
function Get-GroupMembers {
$filter = "(&(objectCategory=person)(objectClass=user))"
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.Filter = $filter
$colResults = $objSearcher.FindAll()

foreach ($member in $colResults) {
$member
}
}
get-GroupMembers

如果我将过滤器更改为
    $filter = "(&(objectCategory=person)(objectClass=user)("OU=Admin Accounts,DC=admin"))

没有任何返回。为什么是这样?
我还想显示某些值(如果帐户处于事件状态或禁用等)但如果我用管道 $membergm ,我什么也得不到。

任何帮助将不胜感激。

最佳答案

如果要搜索特定 OU,可以将其设置为搜索器对象的根:

$objOU = New-Object System.DirectoryServices.DirectoryEntry("LDAP://OU=Admin Accounts,DC=admin")
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objOU

您还可以控制搜索范围。以下是与您最相关的两个选项:
# Option 1: Return only users in the 'Admin Accounts' OU
$objSearcher.SearchScope = "OneLevel"

# Option 2: Return users in the 'Admin Accounts' OU or any level beneath it
$objSearcher.SearchScope = "SubTree"

除非您覆盖搜索根和范围,否则您将获得对当前域的根执行子树搜索的默认设置。您可以在这篇 TechNet 文章中找到更多详细信息:
  • Searching Active Directory with Powershell

  • 编辑:正如 uSlackr 所指出的,您的直流分量确实看起来很可疑。在我的示例中,我将它保持原样,但是无论您使用哪种方法,不完整/格式错误的基础对象名称都会使您的搜索失败。

    关于powershell - DirectoryServices 过滤器和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7597707/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com