1

Excel.exe プロセスが既に存在する場合、Start-Process -Wait は機能しません。Excel.exe インスタンスが実行されていない場合、コマンドレットは正常に動作します。ただし、すでに実行中のインスタンスがある場合は、エラーがスローされます。私はいくつかのトラブルシューティングを行いましたが、問題は、開始されたプロセス自体が既存のプロセスに「ネスト」しているようです。新しい Excel.exe が別の PID で開始されることがわかりますが、1 ~ 2 秒後にこの PID が消え、コマンドレットを呼び出す前に実行されていた Excel.exe インスタンスの既存の PID に新しいインスタンスがカプセル化されます。

誰でもこの動作について適切な説明がありますか?
誰にもこれに対する回避策がありますか?
すべての情報を歓迎します!

ありがとう!

4

1 に答える 1

2

これは、2013 年以降のほとんどの Office プログラムの意図された動作です (と思います)。Microsoft は、Excel、Word、および PowerPoint (少なくとも) が既定で追加のプロセスを開始するのを停止することを決定しました。

これを回避するには、Excel に新しいインスタンスを開くように指示する引数を渡します。

Start-Process Excel.exe -ArgumentList "/x" -Wait

これにより、プロセスの複数のインスタンスが表示されるはずです。 ここに画像の説明を入力

編集

ファイルを開きたい場合は、次のように呼び出すだけで、エラーは発生しません。

Start-Process excel.exe -wait -ArgumentList "C:\temp\testxlsx.xlsx /x"
于 2016-05-24T02:22:31.100 に答える