我在使用 System.DirectoryServices.DirectorySearcher 对象在 AD 中查找用户信息时遇到问题。我第一次运行命令而不是返回结果时,它返回字符串值“System.DirectoryServices.SearchResult”。我在保存这个结果的变量上运行了 .GetType(),它以字符串的形式返回。
第二次,以及所有后续的时间,我运行这个脚本,它返回我正在寻找的用户对象。这是我的代码。
$MyDomain = New-Object System.DirectoryServices.DirectoryEntry
$ADSearcher = New-Object System.DirectoryServices.DirectorySearcher
$ADSearcher.SearchRoot = $MyDomain
$ADSearcher.PageSize = 1000
$ADSearcher.SearchScope = "Subtree"
$ADSearcher.Filter = "samaccountname=myaccount"
$User = $ADSearcher.FindOne()
我在 2008 R2 上运行 Powershell 3。
更新:我认为我不清楚它的工作环境。如果我运行脚本一次,并使用 FindOne() 搜索 5 个不同的用户,他们都会错误地返回。如果我立即再次运行该程序,它将检索所有 5 个用户对象。这表明它是环境中的某些东西,但我肯定无法弄清楚它是什么。我在 ISE 中运行脚本。