PowerShell, чтобы проверить, отключена ли служба - PullRequest
1 голос
/ 05 мая 2020

Ниже приведена функция, позволяющая убедиться, что службы настроены на правильный тип запуска. Мой вопрос в том, как создать сценарий для учёта несуществующей службы? Например, если я согласен с тем, что «Имя службы 2» либо отключено, либо не существует, я не хочу, чтобы возвращалась ошибка. Какие изменения необходимо внести в код?

function validate-services {

    $servicelist = @{    

    "Name of Service 1" = "Manual"
    "Name of Service 2" = "Disabled"

    }

    foreach ($service in $servicelist.Keys){ 

        $startType = (Get-Service -Name $service).StartType

        if ( $startType -eq $servicelist[$service] ){

            write-host $service "is correct." 
        } 
        else
        {
            write-host $service "is NOT set to the correct startup type."            
        }
    } 
}

1 Ответ

3 голосов
/ 05 мая 2020

Вы можете инкапсулировать часть, которая может вызвать исключение, в блоке try и добавить реакцию на это исключение в следующий блок catch:

function Validate-Services {

    $servicelist = @{    
        "Name of Service 1" = "Manual"
        "Name of Service 2" = "Disabled"
    }

    foreach ($service in $servicelist.Keys) { 
        try {
            $startType = (Get-Service -Name $service -ErrorAction Stop).StartType
            if ($startType -eq $servicelist[$service]) {
                Write-Host "$service is correct." 
            } else {
                Write-Host "$service is NOT set to the correct startup type."            
            }
        } catch {
            Write-Host "$service does not exist."
        }
    } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...