это дает вам [bool]
результат, основанный на комбинации Name
& StartType
.
функция делает оба параметра обязательными, присваивает каждому номер позиции, устанавливает для каждого типа значение [string]
и - для StartType
- определяет действительный набор вариантов.
при запуске он получает служебную информацию, сравнивает фактический тип запуска с требуемым типом и, наконец, отправляет $False/$True
в зависимости от ситуации.
function Validate-ServiceStartType
{
<#
Comment Based Help goes here
#>
Param (
[Parameter (
Mandatory,
Position = 0
)]
[string]
$Name,
[Parameter (
Mandatory,
Position = 1
)]
[ValidateSet (
'Boot',
'System',
'Automatic',
'Manual',
'Disabled'
)]
[string]
$StartType
)
begin {}
process
{
(Get-Service -Name $Name).StartType -eq $StartType
}
end {}
} # end >>> function Validate-ServiceStartType
примеры с выводом ...
Validate-ServiceStartType -Name spool* -StartType Boot
# False
Validate-ServiceStartType -Name spool* -StartType Automatic
# True
Validate-ServiceStartType -Name ZigZagPapers -StartType Manual
# False
# lots of red error text
если вы хотите подавить текст ошибки, измените следующую строку кода на следующую после нее ...
(Get-Service -Name $Name).StartType -eq $StartType
(Get-Service -Name $Name -ErrorAction 'SilentlyContinue').StartType -eq $StartType
Я предпочитаю получить ошибку и разобраться с ней [возможно, с -ErrorAction SilentlyContinue
], но вы можете предпочесть иное. [ ухмылка ]