У меня есть сценарий PowerShell, который понижает параметры безопасности макроса офиса (с помощью ключей реестра), чтобы запускать макрос без ограничений (системная политика заключается в том, чтобы отключить их по умолчанию с предупреждением), прежде чем вернуть ключам прежние значения.

Хотя этого еще не произошло, я обеспокоен тем, что макрос и / или PowerShell сталкиваются с какой-то фатальной ошибкой, приводящей к падению оболочки до того, как она снова получит возможность повысить уровень безопасности макроса. Мои пользователи не опытны, поэтому они вряд ли поймут влияние такого события.

Просто хотел найти здесь идеи относительно надежного решения или как лучше подойти к этому вопросу?

1 ответ1

3

Вы должны обернуть свой код в try а затем обработать все ошибки, которые появляются из-за catch .

finally существует также то, что должно быть определено сразу после блока catch и выполняется каждый раз, независимо от того, была ли ошибка или нет. Таким образом, вы можете выполнять действия, которые необходимо выполнить независимо от того, была ли операция успешной или неудачной.

В вашем примере я бы сделал что-то вроде этого:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .