我有一個安裝.NET Windows服務的ServiceProcessInstaller
。安裝Windows服務作爲虛擬用戶運行
安裝過程完美地工作,如果我可以:
- 設置爲SYSTEM(
serviceProcessInstaller1.Account = ServiceAccount.LocalSystem
)運行服務。 - 通過指定
Username
和Password
屬性或讓安裝進程提示我,將服務設置爲以普通用戶身份運行(serviceProcessInstaller1.Account = ServiceAccount.User
)。
不過,我想作爲一個虛擬用戶,一拉NT Service\ServiceName
運行服務。如果您查看一些SQL Server服務,您將看到它們默認以自己的虛擬用戶帳戶登錄。在http://technet.microsoft.com/en-us/library/dd548356.aspx有更多,儘管有限的信息。
我已經嘗試設置serviceProcessInstaller1.Username = @"NT Service\ServiceName"
,但隨後安裝程序引發以下錯誤不管是什麼我給的密碼(我曾嘗試String.Empty
,相同的用戶名,我自己的密碼,null
彈出互動對話,甚至是隨機的垃圾):
帳戶名和安全ID之間沒有映射已完成
但是,如果我安裝服務正常(例如,然後我可以從services.msc
管理單元中進入服務的屬性,在登錄頁面上將用戶更改爲NT Service\ServiceName
,並且它運行得非常漂亮。
我也看過ChangeServiceConfig2
function,但我似乎無法讓它改變任何東西。
我怎樣才能在用戶日誌從代碼設置爲虛擬用戶NT Service\ServiceName
我ServiceProcessInstaller
內?
託管和虛擬服務帳戶是一個非常新的Windows功能。你需要在諸如serverfault.com這樣的站點上提出關於它的問題,在那裏你會發現系統管理員用這個來修補它。 http://technet.microsoft.com/en-us/library/dd548356%28WS.10%29.aspx –
@HansPassant我意識到這有點臨界,但我的問題是關於如何從代碼設置用戶,具體爲我可以清楚地手動設置用戶。因此,我認爲這是一個編程問題而不是系統管理員問題,併發布在這裏。關於安裝服務的SO似乎還有比SF更多的問題 - 並不是說它意味着我想的很多。 –