【发布时间】:2011-09-29 13:01:01
【问题描述】:
我正在尝试从 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"))
没有返回。这是为什么呢?
我还想显示某些值(如果帐户处于活动状态或已禁用等),但如果我通过管道将 $member 传递到 gm,我什么也得不到。
任何帮助将不胜感激。
【问题讨论】:
-
小心@TiZon 你正在混合三件事。 Ajk 向您解释如何将 ADSI 对象与 DirectorySearcher 一起使用,直到 PowerShell V1.0 才有效。 USlackr 正在使用来自 PowerShell V2.0 上的 ActiveDirectory 模块和 W2K8R2 的 Cmdlet。 Christian 正在使用来自 PowerShell V1.0 以来可用的 Qest 包的 Cmdlet。所有 3 种解决方案都有效,但不要混合使用这三种方法
-
@JPBlanc:感谢您的提醒!
标签: powershell active-directory windows-server-2008-r2