Вызов CreateService при явном указании локального домена в ошибках lpServiceStartName из - PullRequest
2 голосов
/ 11 января 2012

Я создаю сервис на машине в C # через вызов win32 API для CreateService. Страница MSDN для этой функции говорит о параметре lpServiceStartName:

Имя учетной записи, под которой должна работать служба. Если тип услуги SERVICE_WIN32_OWN_PROCESS, используйте имя учетной записи в Форма Доменное имя \ Имя пользователя. Процесс обслуживания будет зарегистрирован как этот пользователь. Если учетная запись принадлежит встроенному домену, вы можете указать. \ UserName.

На удаленном компьютере пользователь myuser принадлежит локальному домену по умолчанию WORKGROUP. Если я прохожу ".\myuser", все работает нормально. Если я пройду "WORKGROUP\myuser", я получу ERROR_INVALID_SERVICE_ACCOUNT.

Мне любопытно, что такое поведение, так как вышеприведенные документы говорят, что я могу указать .\myuser, а не то, что должен . Кто-нибудь может пролить свет на это?

1 Ответ

1 голос
/ 15 октября 2014

Прежде всего, я не являюсь экспертом в управлении учетными записями Windows, и я могу получить здесь несколько отрицательных отзывов, но вот что я заметил, когда тестировал службы Windows для входа в систему. Как указано в документации, вы можете указать «. \ UserName», если учетная запись принадлежит встроенному домену. Встроенный домен включает группы и пользователей, созданных при установке ОС ( ссылка ). Поэтому вместо «. \ UserName» вы можете указать «BUILTIN \ UserName», так как BUILTIN - это имя встроенного домена.

На практике это работало для "BUILTIN \ Администраторы" и "BUILTIN \ Гости", но не работало для пользователя "BUILTIN \ Guest". Если вы попытаетесь создать новую локальную группу и локального пользователя и установить его в качестве идентификатора входа в систему, вы все равно увидите его в форме ". \ UserName". Это может быть неточно в документации, но в любом случае для локальных учетных записей пользователей, которые не являются встроенными учетными записями, вы можете заменить точку на имя машины: «MACHINE \ UserName».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...