Служба Windows Выберите пользователя или системную учетную запись при установке

При установке службы Windows существует ли способ, позволяющий пользователю устанавливать выбор между определенной учетной записью пользователя и учетной записью компьютера, такой как LocalSystem? Я вижу, как это сделать во время сборки через свойства установщика службы, но не во время установки.

Ответы

Ответ 1

@Doobi, @Eric, по моему опыту (Win7Home 64-bit, VS2010Express, а не в домене)

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

установит службу как LocalService без подсказки пароля.

Чтобы установить службу как локальную учетную запись пользователя (и предоставить приглашение пароля, чтобы дать пользователю возможность предоставить учетные данные), я должен был использовать:

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

Важным шагом, который я должен был предпринять, чтобы установить службу, является поместить имя компьютера в диалоговое окно учетных данных, то есть MYPC\dave вместо dave. Я был удивлен, что мне придется делать это, как не в домене. Я добавил этот комментарий, поскольку никакие другие сообщения, которые я видел об этом упоминании, не должны были префикс имени пользователя с именем ПК.

Ответ 2

Да, есть, это в процессе установки. Я думаю, что в более новых фреймворках это видимое свойство, если вы выбираете установщик процесса в области проектирования. В последний раз, когда я делал это (.NET 2.0), вы должны добавить что-то похожее на это в файле *.designer.cs:

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

Ответ 3

Добавляя к предыдущим ответам, не забудьте добавить имя машины к имени пользователя при вводе имени пользователя "Имя пользователя". В противном случае служба не будет принимать учетные данные, хотя если вы укажете правильное имя пользователя и pwd. Он будет продолжать всплывающее приглашение ввести учетные данные. Мне понадобился день, чтобы понять это. Благодаря Badgerspot!