我想以管理员身份在我的VS项目中运行bat文件。 bat文件中有一些命令,我想执行该文件。这些命令需要管理员权限。代码在。
下给出AndroidSmS aHelper = new AndroidSmS();
string renameMsg = aHelper.RenameFile();
public string RenameFile() {
string renameBATPath = ConfigurationManager.AppSettings["RenameBATPath"].ToString();
string o;
string str = DateTime.Now.ToOADate().ToString();
using (var p = new System.Diagnostics.Process())
{
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = @renameBATPath;
p.StartInfo.Arguments = DateTime.Now.ToShortDateString().ToString().Replace('/', '-')+".db";
p.Start();
o = p.StandardOutput.ReadToEnd();
p.WaitForExit();
}
return o;
}
有些人可以告诉我如何运行这些命令或以管理员模式运行此文件。任何类型的帮助将不胜感激。提前致谢 此致
答案 0 :(得分:2)
你有几个选择
您可以指定管理员凭据以使用
启动批处理文件p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = @renameBATPath;
p.StartInfo.Arguments = DateTime.Now.ToShortDateString().ToString().Replace('/', '-')+".db";
p.StartInfo.UserName = "administrator";
char[] password = { 'p', 'a', 's', 's', 'w', 'o', 'r', 'd' };
SecureString adminpassword = new SecureString();
foreach (char c in password)
{
adminpassword.AppendChar(c);
}
p.StartInfo.Password = adminpassword;
p.Start();
或者您可以在您的应用上提示UAC,这意味着它启动的任何内容都将以相同的权限运行。
有关如何创建清单文件的信息,请参阅here。
答案 1 :(得分:0)
由于您无法跳过UAC,我想您可以在此处获得答案:http://www.vistaclues.com/run-a-batch-file-as-an-administrator/
只需创建一个快捷方式,将其设置为以管理员身份运行,然后执行它,而不是直接调用.BAT文件。