1

我有一台装有 Windows IOT Enterprise 的 PC,并且想从我的 C# 应用程序中控制(打开或关闭并设置排除项)UWF。我尝试使用 System.Diagnostics.Process 访问 uwfmgr.exe。我尝试了两种方法,它们在文件名和参数的初始化方面有所不同:

  1. System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo("cmd", /C c:\\windows\\system32\\uwfmgr get-config");
  2. 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 并获得相同的结果。

有没有解决这个正确问题的方法?我可以以管理员身份启动统一写入过滤器吗?提前感谢您的回复。

4

1 回答 1

-1

这可能是 32/64 位问题。尝试通过c:\windows\sysnative\uwfmgr.exe将根据您的应用程序架构正确重定向的路径调用它。

在侧节点上:除了直接通过可执行文件调用 uwfmgr 之外,还有一种通过 WMI 访问它的方法,这也将为您提供更容易解析的输出。有关一些 C# 示例代码,请参阅此问题:How to get registry and file excludes from UWF using WMI query in C#

于 2020-09-25T09:42:01.003 回答