2016-02-24 28 views
0

背景:我需要一個Windows服務來識別給定的條件(這是工作,所以我會離開它),殺死一個進程(我有工作的部分並且不會詳述),然後重新啓動該過程。VB.NET服務以用戶身份重新啓動程序

此過程需要由此Windows服務啓動,該服務作爲LocalSystem運行,但需要以用戶身份啓動,並且應用程序需要顯示在該用戶的會話中,以便他們可以繼續與其交互。

憑證以文本文件的形式存儲,加密,然後由Windows服務讀取並與process.Start命令一起使用,以在殺死它之後啓動應用程序。

如果通過Windows窗體應用運行,以下代碼可用於配置一些數據以及測試此功能,但不會在以LocalSystem身份運行Windows服務時運行。

System.Diagnostics.Process.Start("C:\Program Files (x86)\(app folder)\(applicationname).exe", username, SecurePassword, Domain) 

當服務試圖運行這段代碼時,它會拋出一個異常(Access Is Denied);這反過來又被我的應用程序使用try/catch語句記錄到事件日誌中。

我已驗證它使用的是正確的用戶/密碼/域;如果我使用錯誤的證書,它會給我一個單獨的錯誤。

回答

相關問題