我需要从 C# 代码运行“manage-bde”shell 命令。
主应用程序进程已经以管理员身份运行并且已提升。
我使用来自 MS 网站上的 UAC self-elevation example 的代码来确认应用程序进程已提升。( 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 以外的一些命令可以正常工作,无需管理员运行。