Вопрос или проблема
Как можно решить эту проблему?
Я знаю, что есть утилита 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
можно использовать пустую строку.
Основные шаги для конфигурации службы:
-
Запустите командную строку с правами администратора. Для этого нажмите кнопку «Пуск», введите
cmd
, щелкните правой кнопкой мыши на «Командная строка» и выберите «Запуск от имени администратора». -
Используйте команду
sc
для создания или изменения службы. Если служба еще не создана, вы можете использовать следующую команду:SC CREATE ИмяСлужбы start= auto binPath= "C:\путь\к\ВашейСлужбе.exe" obj= "NT AUTHORITY\LocalService" password= ""
- ИмяСлужбы: замените на имя, которое вы хотите присвоить вашей службе.
- binPath: укажите полный путь к исполняемому файлу вашей службы.
-
Если служба уже существует и вы хотите изменить ее параметры, используйте следующую команду:
SC CONFIG ИмяСлужбы obj= "NT AUTHORITY\LocalService" password= ""
-
Примечание по синтаксису: Обратите внимание на следующее:
- Важно, чтобы после знака равно (
=
) следовал пробел. - Имя учетной записи 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 с использованием командной строки.