2013-10-28 47 views
2

我正在開發一個項目,其中我有一個在Local System Account下運行的Windows服務。允許系統帳戶啓動模擬進程

我想要做的是啓動另一個應該將文件寫入磁盤的進程(C++應用程序)。

如果我只是使用Process.Start,那麼目標應用程序也運行在Local System Account下,據我所知我不能簡單地在任何地方寫文件。

由於這個原因,我試圖讓目標應用程序作爲一個不同的用戶運行。

ProcessStartInfo psi = new ProcessStartInfo(@"C:\Path\to\Application.exe", parameters); 
psi.UseShellExecute = false; 
psi.UserName = "Username"; 
System.Security.SecureString sec = new System.Security.SecureString(); 
foreach (Char c Password) 
    sec.AppendChar(c); 
psi.Password = sec; 
psi.Domain = "."; 
psi.LoadUserProfile = true; 
Process.Start(psi); 

但我得到一個Win32異常告訴我「訪問被拒絕」。 有人知道我能如何實現我的目標嗎?

+0

您是否檢查過[此](http://stackoverflow.com/q/16805952/806549)問題的答案? – 2013-10-30 22:16:08

回答

0

檢查文件系統權限。您正在使用的用戶是否具有指定應用程序的執行權限?

+0

是的,它的確如此。我試圖使用系統本地管理員帳號 – Thomas

+0

。我已經測試過,它對我來說工作正常......你在哪裏得到例外。你有沒有嘗試執行其他像cmd.exe的東西? –