Não posso comentar este assunto em particular, mas gostaria de oferecer algumas recomendações gerais. Escrevi alguns códigos PS de missão crítica ao longo dos últimos anos, alguns dos quais interagem com equipamentos de telemetria remota via HTTPS. Esse código deve ter êxito ou falhar normalmente, com log muito detalhado. O código, embora seja executado em VMs do Windows, é tratado como "sistema / appliance incorporado".
Eu sinceramente recomendo adicionar código de tratamento de erros ao seu script. Concedido, a Internet está cheia de exemplos bang-bang-bang do código do PowerShell, com cada passo sucessivo assumindo que o anterior foi bem-sucedido. Isso às vezes é agravado pelo uso excessivo de pipelines PS, por exemplo: enumerate-something | foreach-object {do-something}, em que alguns dos algo fracassam, o que significa que você geralmente fica em uma situação de reversão impossível.
De qualquer forma, basta balbuciar. Recomendações:
- Ative o modo estrito. Isso evitará qualquer tipo de coerção / coerção não intencional. Pré-declare suas variáveis, com definições de tipo corretas.
- Use -erroraction silencentlyContinue sempre que possível e intercepte erros com "if ($?)" verifica ... ou agrupa chamadas que geram exceções com construções try {} catch {}. Nem todas as funções PS levantam exceções!
- Escreva vários dados de registro
- Identifique ações com maior probabilidade de falhar e codifique a lógica de nova tentativa sempre que possível.
Eu vou parar aí!
Boa sorte.