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 Web サイトにも表示されません)。可能であれば何ができるか想像してみてください...

于 2012-10-03T13:45:03.557 に答える