我這裡有一個情況希望你能幫助我。我有一個使用特定使用者帳戶在 Windows Server 2012 R2 上執行的資料庫。同一用戶帳戶正在執行 Windows 服務。該服務執行一些工作,並對資料庫進行一些更新。到目前為止,這效果很好。
現在該服務必須在某個時刻運行外部程序。我用ProcessStartInfo
And來做到這一點Process.Start
。這給了以下例外:
System.ComponentModel.Win32Exception(0x80004005):存取被拒在System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)在System.Diagnostics.Process.Start()在System.Diagnostics.Process
根據這個堆疊溢位答案我必須將此使用者(Active Directory 使用者)新增至伺服器。現在,用戶無權存取伺服器。
我實際上想保持這種方式,只授予用戶啟動進程(程式)的權限,而無需訪問伺服器。
這是可能的還是我走錯路了?
控制面板>>使用者帳戶>>管理使用者帳戶>>新增...可能會完成這項工作,但我不知道必須在存取等級清單中選擇哪個存取等級。
答案1
好吧,我認為異常有點誤導。看起來好像不允許用戶運行該應用程序,但真正的問題是用戶無權訪問該應用程式所在的目錄。
- 更改資料夾的安全性設定以允許
Read & Execute
使用者授予權限將解決此問題。
這樣就不需要將使用者新增到伺服器。