无法成功执行而没有错误的try-catch语句无法捕获

时间:2019-01-08 17:41:58

标签: windows powershell try-catch

在没有安装群集的服务器上执行此块时,它显然会失败。但是,与其捕获错误并在catch行中执行代码,不如将其视为成功。

我正在尝试编写一个小的脚本来自动化一系列日志生成任务。如果一项任务失败,我不希望整个脚本停止运行,因此我将它们全部放入try-catch语句中。这很容易测试,只需在未安装群集的Windows服务器上运行此任务即可。这样可以保证它出错。

#get the cluster event logs
try {
    Write-Host "Getting Cluster Event Logs..."
    Get-WinEvent -LogName microsoft-windows-failoverclustering/operational |
        Sort-Object timeCreated |
        Select-Object timecreated, machinename, id, ContainerLog,
            LevelDisplayName, userid, message |
        Export-Csv c:\diag\failoverclustering-operational.csv -NoType
    Write-Host "Success"
} catch {
    Write-Host "oops 4"
}

它应该执行Write-Host "Getting Cluster Event Logs...",然后,当Get-WinEvent由于不存在这样的条目而失败时,应该捕获并执行catch { Write-Host "oops 4" }

在执行下一个任务之前,好像执行成功一样,它会产生错误以控制台并运行Write-Host "Success"

0 个答案:

没有答案