C# コードから「manage-bde」シェル コマンドを実行する必要があります。
メイン アプリケーション プロセスはすでに管理者として実行されており、昇格されています。
私は次のコードを使用しました: アプリ プロセスが昇格されていることを確認するために、MS Web サイトの UAC 自己昇格の例。( http://code.msdn.microsoft.com/windowsdesktop/CSUACSelfElevation-644673d3 )
ただし、C# コードから manage-bde を実行しようとすると、「指定されたファイルが見つかりません」というメッセージが表示されます。
Process p = new Process();
p.StartInfo.FileName = "C:\\Windows\\System32\\manage-bde.exe";
p.StartInfo.UseShellExecute = true;
p.Start();
回避策として、コマンドを実行するバッチ ファイルを作成しようとしました。
string batchFileName = DateTime.Now.Ticks + ".bat";
StreamWriter writer = new StreamWriter(batchFileName);
writer.WriteLine("manage-bde");
writer.Flush();
writer.Close();
Process p = new Process();
p.StartInfo.FileName = batchFileName;
p.StartInfo.UseShellExecute = true;
p.Start();
バッチ ファイルが書き込まれ、正常に実行されます。ただし、コマンド「manage-bde」は認識されません。
動詞「runas」を使用して管理者パスワードを使用するようにコードを変更しましたが、それは機能しますが、管理者パスワードを提供する必要なくバッチファイルを機能させたいです。現在ログインしているユーザーは既にコンピューターの管理者ですが、既存の管理者権限でバッチ ファイルが実行されていません。バッチ ファイルを実行して、manage-bde を正常に実行する必要があります。
あなたの助けやアドバイスは非常に高く評価されます:)
ps: manage-bde 以外の一部のコマンドは、admin runas を必要とせずに正常に動作します。