私の質問は、 Running a CMD or BAT in silent modeに似ていますが、追加の制約が 1 つあります。
vbscript でWshScript.Runを使用すると、プロセスの標準の in/error/out ストリームにアクセスできなくなります。 WshScript.Execを使用すると、標準ストリームにアクセスできますが、ウィンドウを非表示にすることはできません。ケーキを食べて (ウィンドウを隠して)、それを食べる (コンソール ストリームに直接アクセスする) にはどうすればよいでしょうか?
私は現在、新しい Windows ステーションとデスクトップを作成し ( MSDNを参照)、その新しいデスクトップ内で指定されたスクリプトを実行する C++ 実行可能ファイルについて考えています (私はまだ Windows ステーションとデスクトップの専門家ではないので、このアイデアは遅い)。
このアイデアは、 Condorの 機能に大まかに基づいています。このUSE_VISIBLE_DESKTOP
機能を無効にすると、非表示のデスクトップで Condor ジョブが実行されます。これに高い特権が必要かどうかはよくわかりません。
このアプローチのトレードオフは、スクリプトがユーザー入力でブロックされると、スクリプトが途方に暮れる可能性があることです。
追加のアイデアはありますか?または、上記のアプローチに関するフィードバックはありますか?
編集:
また、このスクリプトの目的はユーザー環境をセットアップすることなので、別のユーザーとして実行したり、システムのスケジュールされたタスクとして実行したりすることは、実際にはオプションではありません (私が知らない巧妙なトリックがない限り)。