【发布时间】:2014-07-22 12:14:38
【问题描述】:
问题背景:
我正在调用一个批处理文件,通过使用 Process 对象对 MSTest.exe 运行指定的 dll。
代码:
我想确保始终以提升的管理员权限运行此进程。
我目前通过将进程verb属性设置为runas来做到这一点,如图:
try
{
_process.StartInfo.Verb = "runas";
_process.StartInfo.CreateNoWindow = true;
_process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
_process.StartInfo.Arguments = testLocation + " " + testDll;
_process.StartInfo.FileName = batchFileLocation;
_process.Start();
_process.WaitForExit();
}
catch (Exception ex)
{
throw ex;
}
问题:
这按预期运行,但用户帐户控制 (UAC) 提示要求确认我希望该进程运行 .exe。
由于此代码是自动化过程的一部分,我无法有任何人工输入来点击提示中的“是”按钮,我该如何禁用 UAC 提示?
【问题讨论】:
-
如果 UAC 提示是由需要从未提升的进程提升的进程引发的,则您无法绕过 UAC 提示。这是设计使然。