Вариант 1
Примерно можно использовать такую функцию.
Function ServiceExists([string] $ServiceName) {
[bool] $Return = $False
if ( Get-WmiObject -Class Win32_Service -Filter "Name='$ServiceName'" ) {
$Return = $True
}
Return $Return
}
Потом проверка и запуск команды
if (!ServiceExists ServiceName)
{
run some command
}
Вариант 2
if (!Get-Service "ServiceName" -ErrorAction SilentlyContinue)
{
run some command
}
Вариант 3
Я бы наверно сделал лучше wmi filter для GPO и его бы прикрутил к политике, такие ощущения, что надежнее будет.
Get-WmiObject -Class Win32_Service -Filter "Name='$ServiceName'"
P.S!
Примеры не проверял, используйте их на свой страх и риск )))