1

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

我使用这段代码:

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什么都不写?

4

1 回答 1

1

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

于 2012-10-03T13:45:03.557 回答