我需要在受限制的用户下安装软件列表。
我使用此代码:
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
没有写任何内容?
答案 0 :(得分:1)
您无法在没有管理员权限的情况下调用reg.exe。至少除非您使用的是Windows Millennium(这就是为什么它甚至不出现在MSFT网站上)。想象一下,如果可能的话,人们可以做些什么......