Ошибка ChangeServiceConfig при настройке учетных данных для входа - PullRequest
1 голос
/ 01 октября 2008

У меня странная проблема - я звоню ChangeServiceConfig во вновь установленной службе (я CreateService сам), чтобы предоставить учетные данные для входа, но пока функция завершается успешно (возвращает TRUE), если я пытаюсь чтобы запустить службу, она завершается с 1069 (вход в систему не удалось). Если я захожу в диспетчер служб и вручную изменяю учетные данные (я вижу, что имя пользователя указано правильно, но, разумеется, не вижу пароль), то все в порядке и начинается нормально.

Сам звонок тривиален:

ChangeServiceConfig(hService, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, NULL, NULL, NULL, NULL, strUser, strPassword, NULL);

Любые идеи о том, где я должен искать и что может быть не так?

Заранее спасибо.

1 Ответ

1 голос
/ 01 октября 2008

У учетной записи пользователя должны быть права на вход в систему в качестве службы (SeServiceLogonRight). Многие пользователи, включая администраторов компьютеров, могут не устанавливать этот флаг, и вам может потребоваться установить его вручную. Панель управления службами Windows фактически делает это в фоновом режиме, когда вы используете ее для настройки служб.

У меня также есть смутные туманные воспоминания о необходимости полностью определить имя пользователя. Он должен быть в формате DOMAIN\Username - если это локальная учетная запись, вам нужно указать .\Username или узнать имя машины и использовать MACHINENAME\Username

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