我在使用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中运行脚本。