Windows PowerShell以检查服务是否已禁用

Windows PowerShell以检查服务是否已禁用,windows,powershell,Windows,Powershell,以下是确保服务设置为正确启动类型的函数。我的问题是如何编写脚本以说明不存在的服务?例如,若我同意服务2的名称被禁用或不存在,我不希望返回错误。需要对代码进行哪些更改 功能验证服务{ $servicelist=@{ 服务名称1=手动 服务名称2=已禁用 } $servicelist.Keys{ $startType=获取服务-名称$Service.startType if$startType-eq$servicelist[$service]{ 写入主机$service是正确的。 } 其他的 {

以下是确保服务设置为正确启动类型的函数。我的问题是如何编写脚本以说明不存在的服务?例如,若我同意服务2的名称被禁用或不存在,我不希望返回错误。需要对代码进行哪些更改

功能验证服务{ $servicelist=@{ 服务名称1=手动 服务名称2=已禁用 } $servicelist.Keys{ $startType=获取服务-名称$Service.startType if$startType-eq$servicelist[$service]{ 写入主机$service是正确的。 } 其他的 { 写入主机$service未设置为正确的启动类型。 } } }
您可以在try块中封装可能引发异常的部分,并将对该异常的反应添加到以下catch块中:

功能验证服务{ $servicelist=@{ 服务名称1=手动 服务名称2=已禁用 } $servicelist.Keys中的foreach$service{ 试一试{ $startType=Get Service-Name$Service-ErrorAction Stop.startType if$startType-eq$servicelist[$service]{ 写入主机$service是正确的。 }否则{ 写入主机$service未设置为正确的启动类型。 } }抓住{ 写入主机$服务不存在。 } } }
您可以在try块中封装可能引发异常的部分,并将对该异常的反应添加到以下catch块中:

功能验证服务{ $servicelist=@{ 服务名称1=手动 服务名称2=已禁用 } $servicelist.Keys中的foreach$service{ 试一试{ $startType=Get Service-Name$Service-ErrorAction Stop.startType if$startType-eq$servicelist[$service]{ 写入主机$service是正确的。 }否则{ 写入主机$service未设置为正确的启动类型。 } }抓住{ 写入主机$服务不存在。 } } }
您是否尝试捕获丢失的服务的错误?不,您建议如何执行此操作?我花了太长时间才发现丢失的服务以修复语法突出显示:D@Joseph-我将通过不在函数中嵌入这两个服务及其状态,使您的测试更加灵活。设置这些参数,让函数返回False/True或包含服务的PSCO、想要的starttype、实际的starttype和最终的IsCorrect属性。[grin]您是否尝试捕获丢失服务的错误?不,您建议如何执行此操作?我花了太长时间才发现丢失的服务以修复语法突出显示:D@Joseph-我将通过不在函数中嵌入这两个服务及其状态,使您的测试更加灵活。设置这些参数,让函数返回False/True或包含服务的PSCO、想要的starttype、实际的starttype和最终的IsCorrect属性。[咧嘴笑]