Настройка сервиса для запуска от имени учетной записи Local Service через командную строку

Вопрос или проблема

Как можно решить эту проблему?

Я знаю, что есть утилита sc, но не знаю, как назначить учетную запись Local Service параметру obj (из-за пробелов в названии) и как назначить пустой пароль (я предполагаю, что у учетной записи Local Service есть пустой пароль) параметру password.

Это должно сработать:

SC CONFIG MyService binPath= c:\myprogram.exe obj= "NT AUTHORITY\LocalService"

Чтобы уточнить, правильная команда:

SC CONFIG MYSERVICENAMEHERE obj="NT AUTHORITY\LocalService" password= ""

Ответ @Amir был ближе всего, но после знаков равенства нужны пробелы. Если вы посмотрите справку для SC.EXE, вы увидите:

NOTE: Имя опции включает знак равенства.
      Требуется пробел между знаком равенства и значением.

Поэтому, чтобы это работало с реальной учетной записью Local Service на Windows 2012 R2, следующее сработало:

SC.EXE CREATE TheServiceName start= auto binPath= "C:\path\to\TheService.exe" obj= "NT AUTHORITY\LocalService" password= ""

Когда я попробовал…

obj= "\Local Service"

…это не было установлено для работы с реальной учетной записью Local Service.

Что касается предыдущего комментария, имейте в виду, что Local System и Local Service — это не одна и та же учетная запись. Local Service имеет значительно меньшие права.

.

Ответ или решение

Чтобы настроить службу на запуск под учетной записью Local Service с помощью командной строки в Windows, вам потребуется использовать утилиту sc. Важно отметить, что учетная запись Local Service отображается как NT AUTHORITY\LocalService. Следует помнить, что Local Service не требует пароля, поэтому для параметра password можно использовать пустую строку.

Основные шаги для конфигурации службы:

  1. Запустите командную строку с правами администратора. Для этого нажмите кнопку «Пуск», введите cmd, щелкните правой кнопкой мыши на «Командная строка» и выберите «Запуск от имени администратора».

  2. Используйте команду sc для создания или изменения службы. Если служба еще не создана, вы можете использовать следующую команду:

    SC CREATE ИмяСлужбы start= auto binPath= "C:\путь\к\ВашейСлужбе.exe" obj= "NT AUTHORITY\LocalService" password= ""
    • ИмяСлужбы: замените на имя, которое вы хотите присвоить вашей службе.
    • binPath: укажите полный путь к исполняемому файлу вашей службы.
  3. Если служба уже существует и вы хотите изменить ее параметры, используйте следующую команду:

    SC CONFIG ИмяСлужбы obj= "NT AUTHORITY\LocalService" password= ""
  4. Примечание по синтаксису: Обратите внимание на следующее:

    • Важно, чтобы после знака равно (=) следовал пробел.
    • Имя учетной записи Local Service должно быть заключено в двойные кавычки из-за наличия пробелов.

Примеры команд:

  • Создание новой службы:

    SC CREATE MyService start= auto binPath= "C:\Programs\MyService.exe" obj= "NT AUTHORITY\LocalService" password= ""
  • Изменение существующей службы:

    SC CONFIG MyService obj= "NT AUTHORITY\LocalService" password= ""

Важные замечания:

  • Учтите, что Local Service и Local System – это разные учетные записи с различными правами. Local Service имеет значительно меньше прав, что делает ее более безопасной.
  • Перед выполнением команд рекомендуется проверить права учётной записи, под которой будет работать служба, и соответствие приложения требованиям безопасности.

Следуя этим шагам и указаниям, вы сможете успешно настроить службу для запуска под учетной записью Local Service в Windows с использованием командной строки.

Оцените материал
Добавить комментарий

Капча загружается...