Ваша "проблема" в том, что вы используете PowerShell в ISE. Попробуйте использовать PowerShell напрямую. Разница? Сначала две странные вещи:
reg export
записывает свой вывод в случае успеха в stdout
. reg import
записывает свой вывод в случае успеха в stderr
(я бы посчитал это "странным"). - ISE выдает исключение, если внешняя программа пишет в
stderr
. PowerShell этого не делает.
В заключение, ISE выдает ошибку в фактическом сообщении об успехе, поскольку оно было записано в stderr
. Вы можете предотвратить это, используя командлет Start-Process
:
Start-Process reg -ArgumentList "import C:\Scripts\MyFile.reg"
, поскольку stdout
и stderr
внешней программы не передаются на ваш терминал. Вместо этого вы можете обращаться к ним через параметры -RedirectStandardOutput
и -RedirectStandardError
, если это необходимо.
Если вы хотите оценить код выхода, вы можете сделать это следующим образом:
$process = Start-Process reg -ArgumentList "import C:\Scripts\MyFile.reg" -PassThru -Wait
$process.ExitCode