首页 > 解决方案 > 查找有服务的服务器

问题描述

我编写了以下脚本来查找具有“SolarWinds Agent”服务的服务器。

$Servers = (Get-ADComputer -Filter {(enabled -eq $true) -and (OperatingSystem -like 'Windows Server*')  }).Name
$Service = 'SolarWinds Agent'
$Results = @()

foreach($i in $Servers){
    if(Test-Connection $i -Count 1 -Quiet)
    {
        if((Get-Service $Service -ComputerName $i -ErrorAction SilentlyContinue).DisplayName -eq $Service)
        {$Results += $i}
    }
}

我想知道是否有更好的方法来编写代码。

标签: powershell

解决方案


尝试这样的事情:

$Servers = (Get-ADComputer -Filter "Enabled -eq 'True' -and OperatingSystem -like 'Windows Server*'").Name
$Service = 'SolarWinds Agent'
$Results = foreach ($computer in $Servers) {
    if(Test-Connection $computer -Count 1 -Quiet) {
        if(Get-Service -DisplayName $Service -ComputerName $computer -ErrorAction SilentlyContinue) { $computer }
    }
}

如果您愿意,您实际上可以省略 Test-Connection


推荐阅读