过滤Powershell输出

时间:2013-06-05 12:00:22

标签: powershell filter output

我正在尝试过滤以下PS脚本的输出;

我们使用服务器名称,如:

SRV-APP-001, PRD-APP-001, TST-APP-001 等...

$strCategory = "computer" 
$strOperatingSystem = "Windows*Server*" 

$objDomain = New-Object System.DirectoryServices.DirectoryEntry 

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher 
$objSearcher.SearchRoot = $objDomain

$objSearcher.Filter = ("OperatingSystem=$strOperatingSystem") 

$colProplist = "name" 
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)} 

$colResults = $objSearcher.FindAll()

foreach ($objResult in $colResults) 
    { 
    $objComputer = $objResult.Properties;  
    $objComputer.name
    }

此脚本的输出是域中的所有服务器。

但我只希望看到以“SRV”或“PRD”开头的服务器

| where { $_name -like "SRV*"}部分之后,$objComputer.name无法正常工作。

提前谢谢

1 个答案:

答案 0 :(得分:3)

将过滤器更改为:

"(|(name=SRV*)(name=PRD*))(OperatingSystem=Windows*Server*)"