2011-05-10 136 views
7

我試圖以另一個用戶身份從服務運行進程。從Windows服務執行Process.Start時訪問被拒絕

Process.Start(applicationPath, params, account, SecureStringPassword, ""); 

服務在「本地系統」帳戶下運行。

account參數是類似於「WORKSTATION6 \ Tester」的字符串。此用戶是管理員組的成員。

「應用程序路徑」是指程序文件,因此每個用戶都可以從中讀取。

但我每次嘗試啓動該過程時都有「訪問被拒絕」異常。你可以建議什麼?

+0

你試過看着它在[進程監視器(HTTP://的TechNet。 microsoft.com/en-us/sysinternals/bb896645)?這可能會向您顯示它無法訪問的內容。但它聽起來像用戶切換可能是問題。 – Rup 2011-05-10 10:52:53

+0

我試過ProcMon,但它對我來說沒有任何用處。日誌中沒有錯誤。 那麼用戶切換問題呢? – 2011-05-10 11:10:32

回答

0

有一個如何在SecureString頁面上使用Process.Start的例子。 http://msdn.microsoft.com/en-us/library/system.security.securestring(v=VS.90).aspx#Y682

我認爲你需要做的就是把你的域用戶帳戶中的最後一個參數是這樣的:

Process.Start(applicationPath, params, "Tester", SecureStringPassword, "WORKSTATION6"); 
+0

它沒有幫助。我仍然有「拒絕訪問錯誤」 – 2011-05-11 09:13:11

+0

我有同樣的問題...已經嘗試調用.bat文件,使用WMI模擬,但沒有成功。任何更新@ E-Max? – Fernando 2013-07-15 18:34:06

+7

爲什麼這是公認的答案,如果它不工作? – Edgar 2014-02-12 14:07:28

相關問題