0

私はコンソールツールを書いています。UAC サポート (マニフェスト ファイル) のために権限を昇格させずに、コマンド プロンプト ( cmd.exe ) またはコンソール ファイル マネージャー ( far.exeなど) からこのツールを呼び出すと、同じウィンドウでツールが開き、その出力が同じウィンドウに書き込まれます。

しかし、マニフェスト ファイルが追加されると、UAC 要求ダイアログの後にツール用の新しいコンソール ウィンドウが作成されるため、ツールの出力がそこに書き込まれ、ウィンドウが閉じます。そのようなツールをコンソールにする目的はありません。

それを修正する方法は?どのような回避策がありますか?

4

1 に答える 1

2

私の知る限り、それを「修正」する方法はありません。この動作は仕様によるものであり、昇格したコマンド ライン ツールが、昇格されていないコマンド ラインのパス変更の影響を受けないようにすることを目的としています。

通常の日常業務では、人々は自分のマシンでプログラムを実行するという考えです。これらのプログラムは、ユーザーのパスを変更する可能性があるため、たとえば reg.exe という名前の悪意のあるプログラムが含まれるフォルダーは、c:\windows\system32 の前に配置されます。次に、ユーザーが昇格を必要とする管理ツールを実行すると、ツールはパスを指定せずに reg.exe を呼び出し、出来上がり - あなたが所有しています。

ツールの出力をログ ファイルに記録することを検討する必要があります。または、昇格を必要としないコンソール ツールと、昇格を必要とする COM アウト プロセス サーバーの 2 つの部分でツールを開発することもできます。

于 2009-02-24T21:55:13.170 に答える