我一直在寻找,但似乎无法完成这项工作。我正在尝试从 C# 应用程序中的按钮启动 SFC。我知道这需要权利提升,并且在我试图做的范围内是我想要的行为。
我努力了:以管理员身份运行 cmd 和命令?
使用来自 C# 的参数以管理员身份运行 CMD
and
C# 如何通过管理员提升的 cmd 运行进程(带参数)
我上次尝试的代码是:
private void button6_Click(object sender, EventArgs e)
{
ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c " + "processNeedToRun")
{
RedirectStandardError = true,
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true,
Verb = "runas"
};
}
我要么在所有 cmd 窗口闪烁时都没有进程启动,提示凭据不正确,要么命令不正确。
我究竟做错了什么?
根据添加的评论,我将其更改为:
private void button6_Click(object sender, EventArgs e)
{
ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c " + "sfc.exe /scannow")
{
RedirectStandardError = false,
RedirectStandardOutput = false,
UseShellExecute = true,
CreateNoWindow = false,
Verb = "runas"
};
}
没有变化
EDIT:
所以我设法找到了解决方案:
我创建了一个新的控制台应用程序,编辑了清单以需要管理员并执行此操作
Process.Start("CMD.exe", " /c SFC /Scannow");
这确实有我想要的行为。谢谢您的帮助!