【发布时间】:2016-10-28 15:39:09
【问题描述】:
我有两个服务,其中一个服务名称错误(Spooler1)。当我运行 Invoke-command 以使用 try catch 块停止服务时,会产生错误消息。
例子:
[array]$Services = "spooler1","spooler"
$ComputerName = 'localhost'
For ($i=0; $i -lt $Services.Count; $i++)
{
Try
{
#Stop service
Invoke-Command -ComputerName $ComputerName -ScriptBlock {param($Service) Stop-Service $Service} -ArgumentList $Services[$i]
Write-Host "Try Block"
}
Catch
{
Write-Host "Catch Block"
}
}
结果:
Cannot find any service with service name 'spooler1'.
+ CategoryInfo : ObjectNotFound: (spooler1:String) [Stop-Service], ServiceCommandException
+ FullyQualifiedErrorId : NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.StopServiceCommand
+ PSComputerName : localhost
Try Block
Try Block
当我在 Powershell 脚本上运行时,会为这两个服务生成消息“尝试阻止”。
但结果应该是
Catch Block
Try Block
我们是否有任何解决方法来解决此问题。
【问题讨论】:
标签: powershell