PowerShell:如何保证无论出现什么错误,一段代码始终能够运行?

PowerShell:如何保证无论出现什么错误,一段代码始终能够运行?

我有一个 PowerShell 脚本,它可以降低办公室宏的安全设置(通过注册表项),以便不受限制地运行宏(系统策略是默认使用警报禁用它们),然后将键恢复为以前的值。

虽然还没有,但我担心宏和/或 PowerShell 会遇到某种致命错误,导致 shell 在有机会再次提高宏安全级别之前崩溃。我的用户并不熟练,因此他们不太可能理解此类事件的影响。

只是想在这里寻求一个相对万无一失的解决方案的想法或如何最好地解决这个问题?

答案1

您应该将您的代码包装起来try,然后用处理由此出现的任何错误catch

另外,还有finally一个必须在块之后立即定义catch并每次运行的语句,无论是否出现错误。这样,无论操作成功还是失败,您都可以执行需要执行的操作。

在您的示例中,我会做这样的事情:

Try
{
  # Lower security level
  # Run macro
}
Catch
{
  # Ignore the error
}
Finally
{
  # Raise security level
}

相关内容