为什么auditpol不从C#应用本地策略设置?

为什么auditpol不从C#应用本地策略设置?,c#,.net,windows,visual-studio-2013,C#,.net,Windows,Visual Studio 2013,我正在从一个C#.NET程序中设置本地审核策略,该程序从文件中读取设置,然后使用Process.Start()和'cmd'来执行命令。这种方法在过去对我需要它做的每件事都有效(包括这个确切的情况),但最近它开始神秘地无法制定政策 代码如下:(命令的形式为“auditpol/set/subcategory:“blah”/success:enable”) 在VS2013的debug中,它可以很好地应用策略,甚至在同一台计算机上的完整on.exe中,它也可以很好地应用策略,但是当它被传输到另一台计算机

我正在从一个C#.NET程序中设置本地审核策略,该程序从文件中读取设置,然后使用Process.Start()和'cmd'来执行命令。这种方法在过去对我需要它做的每件事都有效(包括这个确切的情况),但最近它开始神秘地无法制定政策

代码如下:(命令的形式为“auditpol/set/subcategory:“blah”/success:enable”)


在VS2013的debug中,它可以很好地应用策略,甚至在同一台计算机上的完整on.exe中,它也可以很好地应用策略,但是当它被传输到另一台计算机时,它不会通过auditpol命令设置策略。有人知道会发生什么吗?

也许它不是以用户身份运行的,没有足够的权限在另一台计算机上进行更改?
结果
错误
字符串是否包含任何诊断消息?命令返回的值是什么-零或其他?这正是发生的情况:它返回一个错误“User not have the required privilege 0x00000522”,即使程序是以管理员身份运行的。我在UseShellExecute=true上尝试了同样的方法,并在requireAdministrator中嵌入了一个清单,但这也不起作用(虽然可能是另一个错误,但在没有重定向的standarderror和cmd屏幕快速闪烁的情况下无法判断).看一看被接受的答案,这就是让我尝试嵌入清单并使用UseShellExecute=true的答案。但是,最终没有得到要执行的命令,并且我无法检查错误,因为您不能使用UseShellExecute=true重定向StandardError。如果你查看他的编辑,他也会说,当这个家伙不能让“runas”工作时,有些事情很奇怪(我也用过)。
ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c " + command);
procStartInfo.RedirectStandardOutput = true;
procStartInfo.RedirectStandardError = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
Process proc = new Process();
proc.StartInfo = procStartInfo;
proc.Start();
proc.WaitForExit();
string result = proc.StandardOutput.ReadToEnd();
string error = proc.StandardError.ReadToEnd();