我有以下powershell脚本绑定到活动目录OU并列出计算机.它似乎工作得很好,除了它输出额外的0 - 我不知道为什么.有人可以帮忙吗?
$strCategory = "computer"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry("LDAP:// OU=Computers,OU=datacenter,DC=ourdomain,DC=local")
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher($objDomain)
$objSearcher.Filter = ("(objectCategory=$strCategory)")
$colProplist = "name"
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}
$colResults = $objSearcher.FindAll()
foreach ($objResult in $colResults)
{
$objComputer = $objResult.Properties;
$objComputer.name
}
Run Code Online (Sandbox Code Playgroud)
输出: 0 Server1 Server2 Server3
您需要捕获(或忽略)PropertiesToLoad.Add方法的输出,否则您将获得$ colPropList中每个属性的值.
foreach ($i in $colPropList){[void]$objSearcher.PropertiesToLoad.Add($i)}
Run Code Online (Sandbox Code Playgroud)
您可以简化和缩短脚本并在一次调用中加载一堆属性,而无需使用foreach循环.AddRange方法的另一个好处是它不输出所请求属性的长度,因此不需要捕获任何内容.
$strCategory = "computer"
$colProplist = "name","distinguishedname"
$searcher = [adsisearcher]"(objectCategory=$strCategory)"
$searcher.PropertiesToLoad.AddRange($colProplist)
$searcher.FindAll() | Foreach-Object {$_.Properties}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
301 次 |
| 最近记录: |