2012-10-03 53 views
0

我需要在受限用戶下安裝軟件列表。在具有有限權限的代碼中使用reg.exe

我用這個代碼:

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(); 

在我的dev的機器,我看到正常輸出:

操作成功完成

不管我用什麼帳戶 - 管理員或受限用戶。

然後我在受限用戶的Windows XP上運行此應用程序。 ,看看接下來會在日誌中:

「輸出:」

空行,不錯。

當我在cmd中運行類似的查詢 - 它工作正常。我不明白,我做錯了什麼。

爲什麼reg.exe什麼都不寫?

回答

1

不能調用沒有管理員權限的reg.exe。至少除非你使用的是Windows Millennium(這就是爲什麼它甚至不出現在MSFT網站上)。想象一下,如果可能的話可以做些什麼...

+0

嗯,如果我不行,爲什麼它從命令行工作? –

+0

我需要閱讀不寫 –

+0

*您不能在沒有管理員權限的情況下調用reg.exe *您能否提供任何參考?我認爲訪問註冊表鍵是基於特定鍵所需的權限。請參閱[如何在Windows XP或Windows Server 2003中設置或更改註冊表編輯權限](http://support.microsoft.com/kb/310426) –