Czy podczas instalowania usługi Windows istnieje możliwość instalacji przez użytkownika określonego konta użytkownika i konta komputera, na przykład LocalSystem? Widzę, jak to zrobić w czasie kompilacji za pomocą właściwości instalatora serwisowego, ale nie podczas instalacji.Usługa systemu Windows Wybierz konto użytkownika lub systemowe podczas instalacji
Odpowiedz
@Doobi, @Eric, z mojego doświadczenia (Win7Home 64-bit, VS2010Express, a nie w domenie)
processInstaller.Account = ServiceAccount.LocalService;
processInstaller.Username = null;
processInstaller.Password = null;
zainstaluje usługę jako usługa lokalna bez pytania o hasło.
Aby zainstalować usługę jako lokalnego konta użytkownika (i zapewniają pytanie o hasło, aby umożliwić użytkownikowi dostarczyć poświadczenia) musiałem użyć:
this.serviceProcessInstaller.Account =System.ServiceProcess.ServiceAccount.User;
this.serviceProcessInstaller.Password = null;
this.serviceProcessInstaller.Username = null;
Ważnym krokiem musiałem podjąć, aby uzyskać Zainstalowana usługa polega na umieszczeniu nazwy komputera w oknie dialogowym poświadczeń, tj. MYPC\dave
zamiast dave
. Byłem zaskoczony, że będę musiał to zrobić, ponieważ nie jest to domena. Dodałem ten komentarz, ponieważ żadne inne posty, które widziałem o tej wzmiance, nie muszą poprzedzać nazwy użytkownika nazwą komputera.
Dzięki informacjom nazwa_komputera \ nazwa_użytkownika poprawiono mój numer – Martin
nazwy domeny przed nazwą użytkownika. Naprawiono również problem. Dzięki! –
Tak, jest na instalatorze procesu. Myślę, że w nowszych frameworkach jest to widoczna właściwość, jeśli wybierzesz instalator procesu na powierzchni projektowej. Ostatni raz to zrobiłem (.NET 2.0) trzeba dodać coś podobnego do tego w pliku * .designer.cs:
processInstaller.Account = ServiceAccount.LocalService;
processInstaller.Username = null;
processInstaller.Password = null;
Więc w jaki sposób "pozwala użytkownikowi instalować wybrać między określonym kontem użytkownika a kontem komputera, na przykład LocalSystem" –
Ponieważ jeśli ustawisz go na "ServiceAccount.User" i nie określisz poświadczeń, monituje użytkownika o poświadczenia podczas instalacji. – Doobi
+1 To całkiem fajne. –
Dodając do poprzednich odpowiedzi, nie zapomnij dodać nazwy komputera do nazwy użytkownika podczas wpisywania hasła "Nazwa użytkownika". W przeciwnym razie usługa nie zaakceptuje poświadczeń, mimo że podasz poprawną nazwę użytkownika i pwd. Zostanie wyświetlony monit o wprowadzenie danych uwierzytelniających. Zajęło mi to jeden dzień, aby to rozgryźć. Dzięki Badgerspot!
z czym instalujesz? MSI's? Wiersz poleceń? –
Prawdopodobnie użyję niestandardowego instalatora i wywołaję installutil. Widziałem przypadki, w których to się stało, ale nie jestem pewien, jak to działa. – AdamC