К сожалению, из-за ошибочных командлетов, таких как New-RegKey и Clear-Disk , ни один из этих ответов не является достаточным.В настоящее время я остановился на следующих строках в верхней части любого сценария powershell, чтобы сохранить свое здравомыслие.
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"
$PSDefaultParameterValues['*:ErrorAction']='Stop'
, и тогда любой нативный вызов получит такую обработку:
native_call.exe
$native_call_success = $?
if (-not $native_call_success)
{
throw 'error making native call'
}
Этот нативныйшаблон вызовов постепенно становится достаточно распространенным для меня, поэтому я, вероятно, должен рассмотреть варианты, чтобы сделать его более кратким.Я все еще новичок в PowerShell, поэтому предложения приветствуются.