Оснастки запускаются в процессе PowerShell, и поэтому PowerShell пытается защитить себя, перехватывая исключения, которые выдает оснастка.Последнее, что вы хотите сделать, это вызвать Environment.Exit()
, потому что это убьет процесс PowerShell.Вы можете либо позволить исключению выйти из вашей реализации командлета (или выбросить, если необходимо), но было бы лучше использовать метод ThrowTerminatingError()
в вашем экземпляре PSCmdlet, чтобы сообщить о завершающем условии для вашего командлета.