3
PS C:\> start regedit -ArgumentList '/S', 'D:\resources\hawk_config.reg' -Wait
Start-Process : Process with an Id of 5344 is not running.
At line:1 char:6
+ start <<<<  regedit -ArgumentList '/S', 'D:\resources\hawk_config.reg'
    + CategoryInfo          : NotSpecified: (:) [Start-Process], ArgumentException
    + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.StartProcessCommand

私はそれが何であるか理解できません。何か案は?

4

2 に答える 2

3

/Sこのパラメーターにより、.reg ファイルがマージされるとすぐに regedit が終了しませんか? Start-Process がプロセス オブジェクトで Process.WaitForExit() を呼び出す前に、regedit が既に終了しているため、エラーが発生していると思われます。$error[0] | Format-List *コマンドの直後に 実行して、エラーの中身を調べてください。プロセスがすでに終了している場合は、WaitForExit()をスローします。SystemExceptionこれを PowerShell v3 で再現することはできません。おそらく、彼らはこのコマンドレットの問題を修正しました。

回避策として、次のことを試すことができます。

$p = start-process regedit -ArgumentList '/S', 'D:\resources\hawk_config.reg' -passthru
$p.WaitForExit()
于 2012-07-24T04:57:35.050 に答える