2010-07-02 108 views
2

我正在以用戶 - 本地系統的身份運行Windows服務(使用.NET編寫)。以LocalSystem身份運行的Windows服務,但需要以當前登錄的用戶身份啓動進程

從服務,我需要啓動一個進程,但作爲當前登錄的用戶。如果我使用Process.Start(process_name),默認情況下它將以服務的權限運行 - 即LocalSystem。我該如何模擬當前登錄的用戶並在相同的情況下運行該進程?

編輯:我將無法訪問用戶憑據 - 我不知道的登錄用戶

EDIT2密碼:在標記爲答案後第2的評論是什麼幫助。

回答

0

一個類似的問題已經被問Setting Service to Run as Current User

+0

是的,這有點不同。我安裝並運行我的服務 - LocalSystem。我需要這種服務,它使用提升的權限運行,以啓動具有較低權限的進程 - 即當前用戶。 – Sameet 2010-07-02 14:52:30

+1

啊我看到了,好的,讓服務創建一個計劃任務來運行你的程序呢?或者在啓動菜單中輸入一個條目,然後登錄時運行? – w69rdy 2010-07-02 15:15:53

0

可以使用ProcessStartInfo啓動一個進程 - 它可以讓你設置新進程的用戶名和密碼,以啓動:

ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe"); 
startInfo.UserName = myUserName; 
startInfo.Password = myUserPassword; 
startInfo.Arguments = "www.northwindtraders.com"; 
Process.Start(startInfo); 

更新:(以下更新質疑)

可能能夠使用RunAs爲此 - 如果其他人提供證書。

+0

哦對不起,忘了提及 - 我不能依靠傳遞用戶憑據 - 沒有密碼:) – Sameet 2010-07-02 14:49:35

相關問題