Попробуйте
sc query state= all
для списка сервисов и работают ли они или нет.
У вас должно получиться сделать это примерно так, когда вы запрашиваете Snapin, но говорите PowerShell не выводить ошибку, если он не может его найти:
if ( (Get-PSSnapin -Name MySnapin -ErrorAction SilentlyContinue) -eq $null )
{
Add-PsSnapin MySnapin
}
Скотт уже дал вам ответ. Вы также можете загрузить его в любом случае и игнорировать ошибку, если она уже загружена:
Add-PSSnapin -Name <snapin> -ErrorAction SilentlyContinue