私はWindowsコマンドプロンプトでコマンドを実行する必要があるWPFアプリケーションを作成しました。したがって、次のコードを作成しました。ファイルのドラッグアンドドロップを実装するために、自分のWPFホストなしで管理者権限を持つプロセスを管理者権限で実行する方法を教えてください。
// The 'RunAs' indicates it needs to be elevated.
var process = Process.Start(new ProcessStartInfo(@"C:\Windows\System32\wevtutil.exe", commandArgs)
{
//Process will be started as admin
Verb = "runAs",
//Do not show the shell window
CreateNoWindow = true,
UseShellExecute = false,
RedirectStandardError = true,
RedirectStandardOutput = true,
RedirectStandardInput = true,
})
このコマンドには管理者権限が必要です。 WPFホストを管理者権限で起動するマニフェストファイルを追加しました。
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"><requestedExecutionLevel level="requireAdministrator" uiAccess="false" /></requestedPrivileges>
これまでのところ、このソリューションはうまくいきます。 WPFアプリケーションを起動し、ボタンを押してイベントをトリガーすると、このコマンドプロンプトでプロセスが実行されます。
今、私はWPFクライアントにドラッグ&をドラッグしていくつかのファイルを追加したいと思います。私のアプリケーションは管理者権限で実行されているので、Windowsファイルエクスプローラからドロップファイル&をアプリケーションにドラッグすることはできません。
Total Commanderのドロップファイルを&にドラッグすることができます。トータルコマンダーは管理者権限で起動できるためです。私のWPFホストにOpenFileDialogを追加すると、&のドラッグをドラッグするほうがはるかに快適になります。
admin権限なしでアプリケーションを実行すると、&のドロップが機能しますが、権限がないためにアプリケーションがコマンドプロンプトを実行できません。
私のファイルを追加するためにドラッグ&ドロップを実装し、その後、これらのファイルをパラメータとして必要とする管理者権限を持つコマンドプロンプトを実行するにはどうすればよいですか?
昇格したプロセスを開始するアプリケーションに管理者権限が必要な理由を決定するのはなぜですか? – Sinatr
C:\ Windows \ System32 \ wevtutil.exeを実行して、一連のETWマニフェストをインストールします。 wevtutil.exeには管理権限が必要です。 –
あなたの問題はコードでは解決できないと思います。これはWindowsセキュリティの動作です。しかし、私はまだこの質問に不思議です。 http://superuser.com/questions/59051/drag-and-drop-file-into-application-under-run-as-administrator – Smartis