windows - PowerShell 检查服务是否被禁用
问题描述
以下是确保服务设置为正确启动类型的功能。我的问题是如何编写脚本来解释不存在的服务?例如,如果我同意“服务名称 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."
}
}
}
解决方案
您可以将可能引发异常的部分封装在一个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."
}
}
}
推荐阅读
- javascript - 节点模块中的导入功能(alphavantage)
- javascript - 如何在 MongoDB findOne 上返回条件响应?
- c - C 调试,#if DEBUG 与 if (DEBUG)
- reactjs - 在 componentDidMount 中调用道具?
- r - R中的加权频率表
- javascript - Javascript - 以各种可能的方式组合两个数组
- node.js - WebDriverIO 和 AWS Lambda
- java - 如何在java中将eclipse控制台输出转换为txt文件
- python - 遍历文件夹和子文件夹中的所有文件并获取创建日期
- python-3.x - 在另一个 URL 中发送 URL