在具有有限权限的代码中使用reg.exe

时间:2012-10-03 13:40:31

标签: c# permissions registry

我需要在受限制的用户下安装软件列表。

我使用此代码:

string fullString = string.Format("EXPORT \"{0}\\{1}\" \"{2}\" /y", hiveString, keyPath, Path.GetTempFileName());
Log(fullString);
var p = Process.Start(new ProcessStartInfo("reg.exe", fullString) {RedirectStandardOutput = true, UseShellExecute = false,WorkingDirectory = Directory.GetCurrentDirectory()});
Log("Output: " + p.StandardOutput.ReadToEnd());
p.WaitForExit();

在我的开发机器上,我看到正常的输出:

  

操作成功完成

无论我使用什么帐户 - 管理员或受限制的用户。

然后我在限制用户的Windows XP上运行此应用程序。并在日志中看到下一步:

  

“输出:”

空行,是的。

当我在cmd中运行类似的查询时 - 它工作正常。我无法理解,我做错了什么。

为什么reg.exe没有写任何内容?

1 个答案:

答案 0 :(得分:1)

无法在没有管理员权限的情况下调用reg.exe。至少除非您使用的是Windows Millennium(这就是为什么它甚至不出现在MSFT网站上)。想象一下,如果可能的话,人们可以做些什么......