我有一台装有 Windows IOT Enterprise 的 PC,并且想从我的 C# 应用程序中控制(打开或关闭并设置排除项)UWF。我尝试使用 System.Diagnostics.Process 访问 uwfmgr.exe。我尝试了两种方法,它们在文件名和参数的初始化方面有所不同:
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo("cmd", /C c:\\windows\\system32\\uwfmgr get-config");
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo("c:\\windows\\system32\\uwfmgr.exe", "get-config");
其余代码相同,贴在下面:
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/C c:\\windows\\system32\\uwfmgr get-config");
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.CreateNoWindow = true;
startInfo.UserName = "Test";
var s = new System.Security.SecureString();
s.AppendChar('T');
s.AppendChar('e');
s.AppendChar('s');
s.AppendChar('t');
startInfo.Password = s;
process.StartInfo = startInfo;
process.Start();
result = "";
result_error = "";
exc = "";
process.WaitForExit();
result = process.StandardOutput.ReadToEnd();
result_error = process.StandardError.ReadToEnd();
Console.WriteLine(result);
File.WriteAllText("test.txt", result);
用户“Test”是另一个具有管理员权限的用户。结果仍然是命令被中止(拒绝访问)。我尝试使用我的登录用户,该用户也是管理员,但它没有任何区别。
我也尝试以管理员身份启动我的 exe 并获得相同的结果。
有没有解决这个正确问题的方法?我可以以管理员身份启动统一写入过滤器吗?提前感谢您的回复。