尝试/捕捉不要做错误的事情

时间:2017-01-17 13:52:18

标签: powershell

我有一个由三行组成的脚本:

<script type="text/javascript">
        function Init(sender, eventArgs) {
            sender._callbackManager.setTimeout(60000);
        }
 </script>


 ...
<ig:WebDataGrid ID="WebDataGrid1" runat="server" DataSourceID="EmployeesDataSource" 
    Width="100%" DataKeyFields="OrderID">
    <ClientEvents Initialize="Init" />

Invoke-GPUpdate -Computer $Computer -Force -RandomDelayInMinutes 0 Start-Sleep -Seconds 300 Close-UserSession -Computer $Computer -Force -Reboot 是一个函数,它最终只是调用远程计算机上的Win32ShutdownTracker来重新启动它。)

有时,Close-UserSession无法访问目标计算机,并引发错误。如果它确实抛出错误,我想要执行Invoke-GPUpdateStart-Sleep

基本上,我需要的几乎可以描述为&#34;尝试/反捕获&#34;。它必须是可能的;问题是......我该怎么做?

(注意:我不会坚持使用Try / Catch;它只是说明我需要的最佳方式。)

2 个答案:

答案 0 :(得分:1)

只需尝试,

try
{
Invoke-GPUpdate -Computer $Computer -Force -RandomDelayInMinutes 0
Start-Sleep -Seconds 300
Close-UserSession -Computer $Computer -Force -Reboot
}
catch 
{
    Write-Output "Remote Computer: $Computer Could not be reached!"
}

答案 1 :(得分:0)

您将完整脚本放在try中,而catch中没有任何内容;这样,如果第一行发生错误,它将放弃其他2并转到catch