2010-12-15 79 views
15

安裝Windows服務時,有沒有辦法讓用戶在特定用戶帳戶和計算機帳戶(如LocalSystem)之間進行安裝選擇?我看到如何通過服務安裝程序屬性在構建時執行此操作,而不是在安裝期間執行此操作。Windows服務在安裝時選擇用戶或系統帳戶

+2

你在安裝什麼?微星的?命令行? – 2010-12-15 18:55:50

+0

我可能會使用自定義安裝程序並調用installutil。我已經看過這種情況,但我不確定它是如何工作的。 – AdamC 2010-12-15 21:08:02

回答

27

@Doobi,@Eric,以我的經驗(Win7Home 64位, VS2010Express,不是一個域)

processInstaller.Account = ServiceAccount.LocalService; 
processInstaller.Username = null; 
processInstaller.Password = null; 

將安裝服務爲本地服務沒有密碼提示。

要安裝服務爲本地用戶帳戶(並提供密碼提示,使用戶提供的憑據),我不得不使用:

this.serviceProcessInstaller.Account =System.ServiceProcess.ServiceAccount.User; 
this.serviceProcessInstaller.Password = null; 
this.serviceProcessInstaller.Username = null; 

重要的一步,我不得不採取以獲得安裝的服務是將計算機名稱放在憑證對話框中,即MYPC\dave而不是dave。我很驚訝我不得不這樣做,因爲它不在域上。我已經添加了這個評論,因爲我沒有看到關於這個提到的其他帖子必須在PC名稱前面加上用戶名。

+2

感謝computername \ username hint修正了我的問題 – Martin 2013-01-22 15:15:58

+0

域名在用戶名前也解決了我的問題。謝謝! – 2016-05-10 14:45:24

6

是的,它在進程安裝程序上。我認爲在新的框架中,如果您在設計界面上選擇流程安裝程序,那麼它就是一個可見的屬性。我最後一次做了(NET 2.0),你必須類似的東西把它添加到*了.Designer.cs文件:

processInstaller.Account = ServiceAccount.LocalService; 
      processInstaller.Username = null; 
      processInstaller.Password = null; 
+0

那麼這是如何「讓用戶安裝在特定用戶帳戶和計算機帳戶之間進行選擇,如LocalSystem」 – 2010-12-16 15:05:39

+0

因爲如果您將其設置爲「ServiceAccount.User」並且未指定憑據,則會提示用戶您安裝時的憑據。 – Doobi 2010-12-18 05:33:52

+1

+1這很酷。 – 2010-12-20 15:35:58

2

添加到以前的答案,不要忘記追加機器名稱到用戶名,同時輸入密碼提示的「用戶名」字段。否則,如果您提供正確的用戶名和密碼,服務將不會接受憑據。它會一直彈出提示輸入憑據。我花了一天的時間才弄清楚這一點。感謝Badgerspot!

相關問題