当我做:
# Gets all domain-joined computer names and properties in one object
$strCategory = "computer"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.Filter = ("(objectCategory=$strCategory)")
$colProplist = "name"
foreach ($i in $colPropList) {
$objSearcher.PropertiesToLoad.Add($i)
}
$Reader = $objSearcher.FindAll()
foreach ($Computer in $Reader) {
Write-Host $Computer
}
$Computer
以System.DirectoryServices.SearchResult
的形式出现。如何查询所有计算机的Active Directory并将它们的字符串值存储在这样的数组中?我需要保留
foreach
语法(即foreach $Computer in $Reader
),因为我的代码使得$Reader
也可以接受这样的计算机文件:$Reader = Get-Content ((Resolve-Path $iL).Path)
总而言之,我想要一种既适用于输入文件,又适用于使用相同循环语法查询AD的东西。
编辑:我的输入文件是一个文本文件,该文件用换行符分隔计算机名称,如下所示:
win7box1
win7box2
win10box3
最佳答案
我解决了要从System.DirectoryServices.DirectorySearcher
获得一个字符串,您可以像我的示例那样做一个循环,然后执行:
foreach ($Computer in $Reader) {
$ComputerString = $Computer.Properties.Name
}
关于file - 如何在PowerShell中将所有Active Directory计算机读入数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41987475/