如何使用简单的界面在许多计算机上比较和重新启动相同的服务

时间:2016-01-07 13:52:57

标签: user-interface powershell service

我需要比较许多服务的状态以及许多远程计算机上的每个依赖项,以便在需要时重新启动它。

但是CLI中的get-service输出很差

1 个答案:

答案 0 :(得分:1)

您可以使用Out-GridView管道get-service,get-service接受computerName列表。

get-service -computerName PC1,PC2 | Out-GridView -OutputMode Multiple | Restart-Service -force -passthru

函数Out-gridView提供了一个非常好的用户界面。

function restartRmService {
    param (
            [Parameter(Mandatory=$true,Position=0)]
            [Alias("CN")]
                [string[]]$ComputerName,
            [Parameter(Mandatory=$false)]
            [Alias("CN")]
                [string[]]$serviceName
    ) 
    $Restart = @()

    if ($serviceName) {
        $Restart = Get-Service -ComputerName ($ComputerName | select-Object -unique) -name $serviceName | select *
    }
    else {
        $Restart = Get-Service -ComputerName ($ComputerName | select-Object -unique) | select MachineName, ServiceName, Status, DisplayName, DependentServices, ServicesDependedOn | Out-GridView -OutputMode Multiple -Title 'Selectionner les Services a Redemarer, puis valider'
    }

    $Restart | %{
        $status = (Get-Service -ComputerName $_.MachineName -ServiceName $_.ServiceName | Restart-Service -force -passthru | select *).status
    }
}

enter image description here