在没有安装群集的服务器上执行此块时,它显然会失败。但是,与其捕获错误并在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"
。