Проблема с настройкой параметров входа в систему ChangeServiceConfig
-
03-07-2019 - |
Вопрос
У меня возникла эта странная проблема - я звоню ChangeServiceConfig
во вновь установленной службе (I CreateService
это я сам), чтобы предоставить учетные данные для входа в систему, но хотя функция завершается успешно (возвращает TRUE), если я пытаюсь запустить службу, она завершается с ошибкой 1069 (сбой входа в систему).Если я захожу в диспетчер служб и вручную изменяю учетные данные (я вижу, что имя пользователя правильное, но, конечно, не вижу пароля), тогда все в порядке, и все запускается нормально.
Сам вызов тривиален:
ChangeServiceConfig(hService, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, NULL, NULL, NULL, NULL, strUser, strPassword, NULL);
Есть какие-нибудь идеи о том, где мне следует искать и что может быть не так?
Заранее благодарю.
Решение
Учетная запись пользователя должна явно иметь права для входа в систему в качестве службы (SeServiceLogonRight
).У многих пользователей, включая администраторов компьютеров, этот флаг может быть не установлен, и вам может потребоваться установить его вручную.Панель управления службами Windows на самом деле делает это незаметно, когда вы используете ее для настройки служб.
У меня также есть какие-то смутные воспоминания о необходимости полностью указать имя пользователя.Это должно быть в DOMAIN\Username
формат - если это локальная учетная запись, вам необходимо указать .\Username
или узнайте название машины и используйте MACHINENAME\Username