トップ回答者
substしたネットワークドライブ上のexeをStart-Processすると警告される

質問
-
皆様お世話になります。
込み入った条件での事例で恐縮ですが、アドバイスをお願いします。
共有フォルダのサブフォルダに対し subst にてドライブレターを割り当てた上で、その中にある setup.exe ファイルを、PowerShell の Star-Process で起動すると「実行しますか?」とダイアログボックスが表示されてしまいます。(Explorer から起動した場合も同じ)
Powershell のスクリプトでサイレントインストーラーを構築したいので、この警告は不都合です。
この警告は Windows7 SP1 64bit で発生し、Windows10 64bit では発生しません。
また、UNC のまま起動すれば警告は出ないので subst 固有の問題ですが、この警告を抑制する方法は無いでしょうか?
なお、subst を使うにも事情があり、setup.exe を置いている親フォルダへのアクセス権を制限しているユーザーで実行すると正常に動作しないためですが、subst の代わりに pushd を用いてもアクセス権が無いとしてエラーになります。
また、Start-Process を使わずに実行しても警告は出ませんが、起動した exe の終了を待機するため -Wait オプションを使用しています。
よろしくお願いします。
回答
-
管理者権限で、はちょっと話が違うような。コマンドプロンプトで実行したら問題ないと言うことなので。
で、多分シェルで実行しなければいいんですが、Start-Processだと独立した引数が用意されていませんね。標準入出力エラーのどれかを-Redirect***してやれば強制的に非シェル実行になるはずなので、それで問題が無ければそれでいいかと思います。
そういうわけにいかないのなら、.NETのクラスであるSystem.Diagnostics.ProcessStartInfoとSystem.Diagnostics.Processを使ってやれば良いかと。
- 回答としてマーク M14Cluster 2019年5月1日 2:46
すべての返信
-
M14Clusterさん、こんにちは。フォーラムオペレーターのHarukaです。
TechNetフォーラムにご投稿くださいましてありがとうございます。
Windows Vistaおよびそれ以降のバージョンのWindowsでは、現在のユーザーが所有していないプロセスを起動/停止するには、[管理者として実行]オプションを使用してWindows PowerShellを起動する必要があります。
そのため、powershell.exeを管理者として実行してからコマンドを実行した場合、確認情報は表示されません。どうぞよろしくお願いします。
MSDN/ TechNet Community Support Haruka
ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~ -
管理者権限で、はちょっと話が違うような。コマンドプロンプトで実行したら問題ないと言うことなので。
で、多分シェルで実行しなければいいんですが、Start-Processだと独立した引数が用意されていませんね。標準入出力エラーのどれかを-Redirect***してやれば強制的に非シェル実行になるはずなので、それで問題が無ければそれでいいかと思います。
そういうわけにいかないのなら、.NETのクラスであるSystem.Diagnostics.ProcessStartInfoとSystem.Diagnostics.Processを使ってやれば良いかと。
- 回答としてマーク M14Cluster 2019年5月1日 2:46