В данной статье будет рассказано о том, как отредактировать параметры запуска служб в Windows на примере службы «Агент сервера 1С:Предприятия 8.3». Будет показано как настроить тип запуска служб, изменить учетные данные для запуска службы, а также изменить параметры запуска исполняемого файла службы.
0. Оглавление
- Изменение свойств запуска службы
- Изменение параметров запуска исполняемого файла службы
1. Изменение настроек запуска службы
Предположим у нас имеется работающая служба, пусть это будет «Агент сервера 1С:Предприятия 8». Для того что бы отредактировать свойства запуска данной службы перейдем в оснастку «Службы» (Services).
В Microsoft Windows Server 2012 эту оснастку можно найти в Диспетчере серверов (Server Manager), пункт меню «Средства» (Tools) — «Службы» (Services).
В Microsoft Windows Server 2008 R2 в меню «Пуск» (Start) — «Администрирование» (Administrative Tools) — «Службы» (Services)
Ну или в любой версии Windows можно выполнить команду services.msc. Для этого необходимо нажать комбинацию клавиш Win + R, в открывшемся окне «Выполнить» (Run) ввести имя команды в поле «Открыть» (Open) и нажать «ОК».
Далее в открывшейся оснастке, в списке служб находим службу, параметры запуска которой необходимо отредактировать.
Кликаем два раза по имени службы, чтобы открыть ее свойства. В окне свойств службы можно отредактировать нижеперечисленные параметры запуска службы.
На закладке «Общие» (General) можно настроить тип запуска службы (Startup type) — Автоматически (Automatic), Вручную (Manual), Отключена (Disabled) или Автоматически (отложенный запуск) (Automatic (Delayed Start)), выбрав соответствующий вариант из списка. А также возможно Остановить (Stop), Приостановить (Pause) или Запустить (Start) данную службу.
На закладке «Вход в систему» (Log on) можно настроить параметры учетной записи (account), от которой будет запускаться выбранная служба. Возможно настроить запуск от системной учетной записи (Local System account), или выбрать конкретного пользователя Windows, указав его имя и пароль.
На закладке «Восстановление» (Recovery) можно задать действия, которые будет выполнять система при сбое службы.
На закладке «Зависимости» (Dependencies) можно настроить зависимость запуска службы от различных компонент системы.
2. Изменение параметров запуска исполняемого файла службы
В окне свойств службы, на закладке «Общие» (General) возможно просмотреть путь к исполняемому файлу службы, а также увидеть передаваемые для его запуска параметры.
Однако эта информация доступна только для чтения. Изменить строку запуска исполняемого файла службы можно с помощью системного реестра Windows.
Для запуска системного реестра, следует выполнить команду regedit.exe. Для этого необходимо нажать комбинацию клавиш Win + R, в открывшемся окне «Выполнить» (Run) ввести имя команды в поле «Открыть» (Open) и нажать «ОК».
В первую очередь при работе с реестром Windows необходимо сделать бэкап, выполнив экспорт всего реестра.
После этого в дереве папок слева переходим по пути:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
Затем в списке выделим группу с именем службы, свойства которой необходимо отредактировать. При этом, в окне справа увидим все параметры данной службы.
Кликаем 2 раза по имени параметра, который необходимо изменить и вводим новое значение.
Например, пусть нам необходимо запустить сервер «1С:Предприятие» в режиме отладки, т. е. добавить в строку запуска параметр -debug. Для этого меняем значение параметра ImagePath.
Нажимаем «ОК», для сохранения изменений и закрываем редактор реестра.
Перезапускаем службу для того, чтобы изменения вступили в силу. Сделать это моно также из оснастки «Службы» (Services), кликнув правой кнопкой мыши по имени службы в списке и выбрав в контекстном меню «Перезапустить» (Restart).
На этом все. Изменения вступили в силу, соответственно агент сервера запущен в режиме отладки.
Содержание
- Как изменить путь к исполняемому для службы Windows?
- Изменение «Путь к исполняемому файлу» службы Windows
- Как изменить путь к исполняемому файлу для службы Windows?
- 5 ответов
- Изменение «Путь к исполняемому файлу» службы Windows
- 7 ответов
- IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.
- Как настроить и добавить путь к программе в системную переменную Path в Windows 10, Windows 8 и Windows 7
- Что такое переменная Path и зачем она нужна в Windows. Зачем нужно добавлять путь?
- Как добавить путь к программе в системную переменную Path в Windows 10 и Windows 8
- Как настроить переменную Path в Windows 7
- Выводы
Как изменить путь к исполняемому для службы Windows?
Я хочу изменить путь к исполняемому файлу сервиса из командной строки.
Как я могу это сделать?
Я хочу, чтобы запустить другую .Exe из этой службы’s путь к исполняемому файлу.
Вы можете использовать команду СК конфигурации , чтобы изменить путь в точках обслуживания:
Это обновит сервис под названием YourServiceName и менять на «Путь к исполняемому» и запись в C:SomeDirectoryYourFile.EXE`. Вы хотите, чтобы перезагрузить после обслуживания, которое вы можете сделать с:
Вы должны будете сделать это в реестре:
система реестра HKEY_LOCAL_MACHINECurrentControlSet науслуги
Перейдите к службе, затем изменить имя образа, чтобы отразить новый путь
Как всегда, сделайте резервную копию системы до.
Вы также можете сделать это с помощью PowerShell:
« Get-WmiObject win32_service -filter «Name=’My Service’» | Invoke-WmiMethod -Name Change -ArgumentList @($null,$null,$null,$null,$null, «C:Program Files (x86)My ServiceNewName.EXE»)
Ответ, представленный выше, работает отлично, я могу’т отвечать на это, но, чтобы добавить, в случае, если вы хотите иметь котировки или другие аргументы в пути, скажем, чтобы исправить некотируемых путь уязвимость в реестр, как продуктам, вы можете сделать следующее с УМК как админ:
(например, для файлов C:Program (х86)YourServiceYourProcess.exe)
вы можете выполнять следующие действия с помощью PowerShell как админ:
Это даст вам следующий результат:
. кровавые Аргументы и побега параметры-это кошмар! Надеюсь, это поможет кому-то в будущем.
Изменение «Путь к исполняемому файлу» службы Windows
Я хотел бы изменить путь к своему приложению, но это нарушает его, потому что служба все еще указывает на старое местоположение.
Зайдя в, Administrative Tools > Services вы можете открыть диалоговое окно свойств и просмотреть Path to executable , но изменить его невозможно.
Есть ли способ, которым пользователь может изменить путь службы без переустановки приложения?
Существует также такой подход, который наблюдается в SuperUser, который использует sc командную строку вместо изменения реестра:
Примечание: пробел после binPath= важен. Вы также можете запросить текущую конфигурацию, используя:
Это отображает вывод, похожий на:
Это включает в себя редактирование реестра, но информацию о сервисе можно найти в HKEY_LOCAL_MACHINESystemCurrentControlSetServices . Найдите сервис, который вы хотите перенаправить, найдите ImagePath подраздел и измените это значение.
Вы также можете сделать это с помощью PowerShell:
Откройте Run (win + R), введите «Regedit.exe», чтобы открыть «Редактор реестра», перейдите к
HKEY_LOCAL_MACHINE System CurrentControlSet Services
найдите « Apache2.4 », откройте папку и найдите « ImagePath » с правой стороны, откройте «ImagePath» под « значением Data » и введите следующий путь:
«C: xampp apache bin httpd.exe» -k runservice для XAMPP для других указывает на местоположение, где установлен Apache, и внутри находит папку bin «C: (установленное Apache местоположение) bin httpd.exe» -k runservice
Вы не можете напрямую редактировать свой путь для выполнения услуги. Для этого вы можете использовать команду sc,
Небольшая модификация ответа этого @CodeMaker для любого, как я, который пытается изменить сервис MongoDB для использования аутентификации.
Когда я посмотрел на «Путь к исполняемому файлу» в «Сервисах», в исполняемой строке уже содержались речевые метки. Поэтому мне пришлось внести незначительные изменения в его пример.
Чтобы быть конкретным.
- Тип службы в Windows
- Найдите MongoDB (или службу, которую вы хотите изменить) и откройте службу, убедившись, что она остановлена.
- Запишите имя службы (не отображаемое имя)
- Найдите и скопируйте «Путь к исполняемому файлу» и скопируйте его.
Для меня путь был (обратите внимание на речевые отметки)
Как изменить путь к исполняемому файлу для службы Windows?
Я хочу изменить путь к исполняемому файлу для службы из командной строки.
Как я могу это сделать?
Я хочу запустить другой .EXE с пути этой службы к исполняемому.
5 ответов
Вы можете использовать команду sc config , чтобы изменить путь к точкам службы:
Это приведет к обновлению службы с именем YourServiceName и изменит запись «Path to Executable» на C:SomeDirectoryYourFile.EXE . После этого вы захотите перезапустить свой сервис, который вы можете сделать с помощью:
Вам нужно будет сделать это в реестре:
HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services
Перейдите к службе, затем измените имя изображения, чтобы отобразить новый путь
Как всегда, сделайте резервную копию системы PRIOR.
Вы также можете сделать это с помощью PowerShell:
Ответ, приведенный выше, отлично работает, я не могу ответить на него, но чтобы добавить его, если вам нужно иметь кавычки или другие аргументы в пути, скажем, чтобы исправить неуказанную уязвимость пути в реестре, например, imagepath, вы можете сделать следующее из CMD как admin:
(например, для C: Program Files (x86) YourService YourProcess.exe)
вы можете сделать следующее из powershell как admin:
Это даст вам следующий результат:
. кровавые аргументы и параметры побега — это кошмар! Надеюсь, это поможет кому-то в будущем.
Вы не можете напрямую редактировать свой путь для выполнения службы. Для этого вы можете использовать команду sc,
Откройте свою командную строку как администратор, затем введите следующую команду:
Изменение «Путь к исполняемому файлу» службы Windows
Я хотел бы изменить путь к своему приложению, но это нарушает его, потому что служба все еще указывает на старое местоположение.
Идя к Administrative Tools > Services Вы можете открыть диалоговое окно свойств и просмотреть Path to executable , но нет способа изменить это.
Есть ли способ, которым пользователь может изменить путь службы без переустановки приложения?
7 ответов
Существует также такой подход, наблюдаемый в SuperUser, который использует sc командная строка вместо изменения реестра:
Примечание: пробел после binPath= это важно. Вы также можете запросить текущую конфигурацию, используя:
Это отображает вывод, похожий на:
Это включает в себя редактирование реестра, но информацию об обслуживании можно найти в HKEY_LOCAL_MACHINESystemCurrentControlSetServices , Найдите сервис, который вы хотите перенаправить, найдите ImagePath подключ и измените это значение.
Вы также можете сделать это с помощью PowerShell:
Откройте Run(win+R), введите «Regedit.exe», чтобы открыть «Редактор реестра», перейдите к
HKEY_LOCAL_MACHINESystemCurrentControlSetServices
найдите «Apache2.4«, откройте папку и найдите «ImagePath» с правой стороны, откройте «ImagePath» под «значением Data» и введите следующий путь:
«C: xampp apache bin httpd.exe» -k runservice foe XAMPP для других указывает на местоположение, где установлен Apache, и внутри находит папку bin «C:(Apache установленное местоположение)binhttpd.exe» -k runservice
Вы не можете напрямую редактировать свой путь для выполнения услуги. Для этого вы можете использовать команду sc,
Небольшая модификация этого ответа @CodeMaker для всех, кто вроде меня, пытается изменить службу MongoDB для использования аутентификации.
Когда я посмотрел на «Путь к исполняемому файлу» в «Службах», выполненная строка уже содержала речевые метки. Поэтому мне пришлось внести небольшие изменения в его пример.
Чтобы быть конкретным.
- Тип службы в Windows
- Найдите MongoDB (или службу, которую вы хотите изменить) и откройте службу, обязательно остановив ее.
- Запишите имя службы (не отображаемое имя)
- Найдите и скопируйте «Путь к исполняемому файлу» и скопируйте его.
Для меня путь был (обратите внимание на знаки речи)
IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.
Как настроить и добавить путь к программе в системную переменную Path в Windows 10, Windows 8 и Windows 7
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжим разбираться с командами и системными утилитами в операционной системе Windows 10, на этот раз будет разговор о переменной PATH в Windows. Всё дело в том, что системная переменная PATH дает нам возможность расширить список команд командной строки Windows, как это сделать, вы узнаете из этой публикации. Здесь мы с вами поговорим о назначении системной переменной PATH, а также разберемся с вопросом: как добавить путь к исполняемому файлу в системную переменную PATH в операционных системах Windows 10, Windows 8 и Windows 7. Этой публикацией можно пользоваться как простой инструкцией по добавлению значений в переменную PATH для Windows.
Если вам интересна тема компьютерных сетей, то в блоге уже практически закончена первая часть курса по основам компьютерных сетей, можете ознакомиться с ее содержимым. И вот здесь можно получить немного информации о самом курсе.
Что такое переменная Path и зачем она нужна в Windows. Зачем нужно добавлять путь?
PATH – это системная переменная окружения Unix-подобных (например, Linux Mint) операционных систем, а также операционных систем семейства Windows. В переменной PATH нет ничего сложно и хитрого, это обыкновенный список папок и каталогов, в которых лежат исполняемые файлы (программы). Программы, путь к исполняемым файлом которых задан в системной переменной PATH, могут быть исполнены (запущены) непосредственно из командной строки Windows и из любого места вашей файловой системы (в Linux тоже есть командная строка, но ее лучше называть эмулятор терминала).
Давайте лучше посмотрим на примере зачем нужна переменная PATH в операционных системах семейства Windows (как, впрочем, и в других семействах). Смотреть будем на примере сторонней утилиты командной строки Windows tracetcp.exe. Она у меня установлена по следующему пути: c:Program Filestracetcp. Запустим командую строку Windows и попробуем выполнить команду tracetcp.
Пробуем запустить стороннюю утилиту командной строки Windows
Обратите внимание на то, что командная строка не смогла выполнить команду tracetcp, хотя приложение и установлено на мой компьютер, проблема заключается в том, что командная строка не смогла найти исполняемый файл tracetcp.exe. Но где командная строка его искала? Она искала этот файл в текущем каталоге, то есть в данном случае в каталоге: c:UsersDell, там этого файла не оказалось, затем командная строка обратилась к переменной PATH, там она не обнаружила пути к исполняемому файлу tracetcp.exe, но обнаружила путь к папке System32, проверила, что в этой папке также нет файла tracetcp.exe и выдала нам предупреждение: «»tracetcp» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.».
Поскольку мы находились в папке, отличной от той, где находится файл tracetcp.exe, а пути в переменной PATH к этому файлу не оказалось, командная строка просто не смогла его найти, чтобы исполнить, давайте всё-таки его запустим, для этого нужно будет перейти в папку c:Program Filestracetcp при помощи команды cd (в операционных системах Linux тоже есть команда cd и работает она аналогично), а затем запустить утилиту.
Запуск исполняемого файла в командной строке Windows
Теперь командная строка Windows смогла запустить нашу утилиту, поскольку смогла найти исполняемый файл tracetcp.exe, но каждый раз переходить в папку, где лежит исполняемый файл или каждый раз указывать абсолютный путь к исполняемому файлу — это очень неудобно, будет гораздо лучше, если мы укажем путь к исполняемому файлу в переменной PATH, тогда командная строка будет самостоятельно его находить в любое время и в любом месте.
Исполняемый файл был запущен, поскольку путь до него был добавлен в системную переменную Path
На рисунке выше показано, что командная строка смогла запустить приложение из домашней папки пользователя, но это лишь благодаря тому, что я добавил путь исполняемому файлу в переменную PATH, теперь команда tracetcp будет работать из любой другой папки. Утилита tracetcp довольно простое приложение, представляющее собой один исполняемый файл — tracetcp.exe, можно было бы не прописывать путь в переменную PATH, а просто скопировать этот файл в папку System32, но устанавливать сторонние и непроверенные приложения, не требующие наличия файлов в System32, не самая хорошая и безопасная затея. В Windows лучше потратить немного времени на то, чтобы добавить путь к файлу в переменную PATH, о том как это сделать мы и поговорим ниже, рассмотрев этот процесс для операционных систем Windows 10, Windows 8 и Windows 7.
Как добавить путь к программе в системную переменную Path в Windows 10 и Windows 8
Добавление пути к программе в системную переменную PATH в операционных системах Windows 10 и Windows 8 делается по одному алгоритму, показывать я буду на примере Windows 10, так как восьмерки под рукой нет. Ранее мы уже видели, что небольшая утилита tracetcp запускалась из командной строки Windows только в том случае, если мы переходили в ту папку, в которую она установлена. Но это легко исправить, просто добавив полный путь к исполняемому файлу tracetcp.exe в системную переменную PATH. Давайте это и сделаем. Описывать процесс добавления значения в переменную PATH буду буквально по шагам и с демонстрацией скриншотов окон в Windows 10. Хотя сперва я напишу сам алгоритм, если его не хватит, то обратитесь к скриншотам ниже:
- Открываем поиск и пишем: «Система» или «Панель управления».
- Появится окно, в левом верхнем углу которого есть небольшое меню и пункт «Дополнительные параметры системы».
- Появится окно поменьше, в нижнем правом углу есть кнопка «Переменные среды. ».
- Откроется окно управления переменными средами в Windows 10.
- Нас интересует переменная PATH, которая находится в разделе «Системные переменные», нажимаем на нее два раза.
- Появится окно для редактирования значений переменной PATH, чтобы добавить новое значение воспользуйтесь кнопкой «Создать».
- Подтвердите добавление нового значения в переменную PATH нажатием кнопки «Ок» и закройте все остальные окна.
- Если во время редактирования переменной PATH у вас была запущена командная строка Windows, то закройте ее и откройте заново, чтобы cmd.exe прочитала новое значение переменной PATH.
Открываем поиск Windows и в форму пишем: «Система» или «Панель управления». В результате вы должны увидеть примерно такой результат, как показано на рисунке ниже.
Используем поиск Windows, ищем по ключевому слову Система
После того, как вы нажмете на кнопку «Система», у вас появится окно, в левой части которого есть небольшое меню, самым нижним пунктом этого меню будет «Дополнительные параметры системы».
Чтобы добавить значение в переменную PATH переходим во вкладку Дополнительные параметры системы
После перехода у вас появится окно поменьше, в этом окне нас интересует вкладка «Дополнительно». В правом нижнем углу есть кнопка «Переменные среды. », на нее и нажимаем.
Нажимаем на кнопку Переменные среды
Появится еще одно окно, которое позволяет управлять системными переменными Windows 10. Обратите внимание: в это окно разделено на две части, в верхней части происходит управление переменными среды для текущего пользователя, в нижней части расположены системные переменные.
В разделе Системные перемененные ищем переменную PATH
В данном случае нас будет интересовать переменная Path, которая находится в разделе «Системные переменные», кликаем на нее два раза, у нас появляется окно, которое позволяет удалять, добавлять и редактировать значения системной переменной Path в Windows 10 и Windows 8. Нам осталось выполнить два действия: нажать на кнопку создать, в появившуюся активную форму вписать путь к файлу tracetcp.exe и подтвердить свои действия нажатием клавиши «Ок».
Дбовляем путь к исполняемому файлу в системную переменную PATH в Windows 10
Закройте все остальные окна. Если у вас была открыта командная строка, вы можете убедиться в том, что она не увидела новое значение переменной PATH, попробуйте выполнить tracetcp из корня диска C, ничего не сработает. Когда вы добавляете новый путь в переменную PATH, программе cmd.exe нужно перечитать значения этой переменной, самый простой способ заключается в том, чтобы закрыть и заново открыть командую строку. Теперь команда tracetcp работает из любой папки, аналогично можно поступать и с другими программами командной строки, которые вы устанавливаете в Windows.
Как настроить переменную Path в Windows 7
К сожалению, у меня не осталось скриншотов, на которых можно было бы продемонстрировать добавление пути в системную переменную PATH на Windows 7, поэтому здесь будет только пошаговый алгоритм добавления значения в переменную PATH:
- На вашем рабочем столе есть икнока с названием «Компьютер» или «Мой компьютер», нажмите на нее правой кнопкой мыши.
- Появится контекстное меню, в самом низу которого есть пункт «Свойства», выберете его.
- Перед вам развернется окно, в котором есть пункт меню «Дополнительные параметры системы», его и выбираем.
- В этом окне будет кнопка «Переменные среды», жмем на нее.
- У нас появляется окно управления системными переменными в Windows 7, внизу которого есть список переменных, среди которого нужно найти переменную PATH.
- Если такой переменной нет, то ее нужно создать, воспользовавшись кнопкой создать: у вас появится окно, в котором нужно будет вписать имя новой переменной, в нашем случае это Path.
- Если переменная PATH есть, то ее нужно выделить левой кнопкой мыши и нажать на кнопку изменить: появится небольшое окошко с двумя формами для ввода: верхняя форма содержит имя переменной — это Path. В нижней форме указаны абсолютные пути до исполняемых файлов различных программ, выглядет это примерно так: d:Program Filesapplication1;d:Program Filesapplication2;d:Program Filesaplication3; и так далее, чтобы добавить еще одно значение переместитесь в конец строки, убедитесь, что последним символом является «;» (именно этот символ является разделителем), впишите путь к исполняемому файлу (в моем случае он выглядел бы так: с:Program Filestracetcp) и в конце добавьте точку с запятой.
- Подтвердите свои действия нажатием кнопки «Ок» и закройте другие окна.
Как видите, настроить переменную PATH в Windows 7 не так уж и сложно.
Выводы
Вы этой статье мы разобрались с назначение системной переменной PATH и отметили, что в каждой операционной системе оно одинаковое и заключается в том, что переменная PATH является списком каталогов, в котором хранятся исполняемые файлы, если путь к исполняемому файлу есть в переменной PATH, то он может быть исполнен из командной строки операционной системы. Также мы разобрались с тем, как прописать путь к исполняемому файлу в операционных системах Windows 10, 8, 7.
I want to change the path to the executable for a service from the command line.
How can I do that?
I want to run another .EXE from that service’s path to executable.
asked Dec 15, 2010 at 6:24
1
You can use the sc config
command to change the path a service points to:
SC CONFIG YourServiceName binPath= "C:SomeDirectoryYourFile.EXE"
This will update the service called YourServiceName
and change the «Path to Executable» entry to C:SomeDirectoryYourFile.EXE
. You will want to restart your service afterwards, which you can do with:
NET STOP YourServiceName & NET START YourServiceName
answered Mar 3, 2011 at 20:35
6
You will need to do that in the registry:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
Navigate to the service, then modify the image name to reflect the new path
As always, make a backup of the system PRIOR.
Nakilon
9402 gold badges12 silver badges21 bronze badges
answered Dec 15, 2010 at 20:21
davedave
2091 silver badge2 bronze badges
1
The answer provided above works great, I can’t reply to it, but to add up, in case you need to have quotes or other arguments in the path, say to fix an unquoted path vulnerability in the registry, like an imagepath, you can do the following from CMD as admin:
(e.g. for C:Program Files (x86)YourServiceYourProcess.exe)
SC CONFIG YourService binPath= ""C:Program Files (x86)YourServiceYourProcess.exe"
you can do the following from powershell as admin:
SC.exe CONFIG YourService binPath= --% ""C:Program Files (x86)YourServiceYourProcess.exe"
These will give you the following result:
"C:Program Files (x86)YourServiceYourProcess.exe"
…bloody arguments and escaping parameters are a nightmare! Hope this helps someone in the future.
answered Jul 27, 2017 at 21:40
1
You could also do it with PowerShell:
Get-WmiObject win32_service -filter "Name='My Service'" `
| Invoke-WmiMethod -Name Change `
-ArgumentList @($null,$null,$null,$null,$null, `
"C:Program Files (x86)My ServiceNewName.EXE")
Or:
Set-ItemProperty -Path "HKLM:SystemCurrentControlSetServicesMy Service" `
-Name ImagePath -Value "C:Program Files (x86)My ServiceNewName.EXE"
answered Aug 13, 2015 at 5:10
Greg SansomGreg Sansom
8977 silver badges13 bronze badges
2
You can’t directly edit your path to execute of a service. For that you can use sc command,
Open your command prompt as administrator then type the following command,
SC CONFIG ServiceName binPath= "Path of your file"
Eg:
sc config MongoDB binPath="I:ProgrammingMongoDBMongoDBbinmongod.exe --config I:ProgrammingMongoDBMongoDBbinmongod.cfg --service"
answered Aug 14, 2018 at 9:29
1
I want to change the path to the executable for a service from the command line.
How can I do that?
I want to run another .EXE from that service’s path to executable.
asked Dec 15, 2010 at 6:24
1
You can use the sc config
command to change the path a service points to:
SC CONFIG YourServiceName binPath= "C:SomeDirectoryYourFile.EXE"
This will update the service called YourServiceName
and change the «Path to Executable» entry to C:SomeDirectoryYourFile.EXE
. You will want to restart your service afterwards, which you can do with:
NET STOP YourServiceName & NET START YourServiceName
answered Mar 3, 2011 at 20:35
6
You will need to do that in the registry:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
Navigate to the service, then modify the image name to reflect the new path
As always, make a backup of the system PRIOR.
Nakilon
9402 gold badges12 silver badges21 bronze badges
answered Dec 15, 2010 at 20:21
davedave
2091 silver badge2 bronze badges
1
The answer provided above works great, I can’t reply to it, but to add up, in case you need to have quotes or other arguments in the path, say to fix an unquoted path vulnerability in the registry, like an imagepath, you can do the following from CMD as admin:
(e.g. for C:Program Files (x86)YourServiceYourProcess.exe)
SC CONFIG YourService binPath= ""C:Program Files (x86)YourServiceYourProcess.exe"
you can do the following from powershell as admin:
SC.exe CONFIG YourService binPath= --% ""C:Program Files (x86)YourServiceYourProcess.exe"
These will give you the following result:
"C:Program Files (x86)YourServiceYourProcess.exe"
…bloody arguments and escaping parameters are a nightmare! Hope this helps someone in the future.
answered Jul 27, 2017 at 21:40
1
You could also do it with PowerShell:
Get-WmiObject win32_service -filter "Name='My Service'" `
| Invoke-WmiMethod -Name Change `
-ArgumentList @($null,$null,$null,$null,$null, `
"C:Program Files (x86)My ServiceNewName.EXE")
Or:
Set-ItemProperty -Path "HKLM:SystemCurrentControlSetServicesMy Service" `
-Name ImagePath -Value "C:Program Files (x86)My ServiceNewName.EXE"
answered Aug 13, 2015 at 5:10
Greg SansomGreg Sansom
8977 silver badges13 bronze badges
2
You can’t directly edit your path to execute of a service. For that you can use sc command,
Open your command prompt as administrator then type the following command,
SC CONFIG ServiceName binPath= "Path of your file"
Eg:
sc config MongoDB binPath="I:ProgrammingMongoDBMongoDBbinmongod.exe --config I:ProgrammingMongoDBMongoDBbinmongod.cfg --service"
answered Aug 14, 2018 at 9:29
1
|
|||
Vade_kirza
08.04.15 — 21:56 |
Добрый вечер! В общем ситуация такая в пути к исполняемому файлу в службе сервера 1с прописан путь к несуществующей платформе, нужно чтобы он либо как-то подцепил автоматически последнюю версию установленной платформы, либо руками пере прописать ему цифры в пути службы. Надеюсь на вашу помощь) P.S сервер перезагружали)) |
||
zak555
1 — 08.04.15 — 21:57 |
в реестре |
||
Vade_kirza
2 — 08.04.15 — 21:58 |
(1) Подскажите как, я к сожалению в этой части плаваю( |
||
zak555
3 — 08.04.15 — 21:59 |
так вбей в поиске реестра ragent.exe |
||
ДенисЧ
4 — 08.04.15 — 22:00 |
(2) тогда лучше свистни хорошего (или плохого, как правильней?) пловца… |
||
SlaBoy
5 — 08.04.15 — 22:01 |
HKLMSysytemCurrentControlSetServicesИмяСлужбы1С |
||
Vade_kirza
6 — 08.04.15 — 22:11 |
(3) Вот поискал вроде нашел строку, но что с ней делать? и она ли это?)) |
||
Vade_kirza
7 — 08.04.15 — 22:11 |
(3) (5) http://cs612918.vk.me/u42965622/docs/746b4d95c178/regedit.png?extra=z1SiIJWf0S3dR6wcMbpIcPSF68KSTKB40qU4NUeTNNtWwq9WD__LuCtnPoC1untIQx6gzvOMtC0ddXBKzSEjl4sFW-M |
||
mehfk
8 — 08.04.15 — 22:22 |
(6) Возьми листок в клетку. Напиши на нем авторучкой полный путь к службе. Заверни в листок забористой махорки и выкури в три затяжки. Ответ придет тебе сам собой. |
||
SlaBoy
9 — 08.04.15 — 22:22 |
(7) изменить руками на нужную версию, нужный путь. при обновлении должно само перезаписаться на обновляемую платформу |
||
Vade_kirza 10 — 08.04.15 — 22:32 |
(9) (3) спасибо, просто не сразу понял что менять. в ImagePath зашел, поменял все стало ок, спасибо! |
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Службы в Windows — особые процессы, выполняемые в фоновом режиме, в том числе от учетной записи «СИСТЕМА», которые могут быть запущены в том числе до входа в систему. При желании вы можете создать свою собственную службу, которая будет работать таким же образом.
В этой инструкции подробно о том, как создать службу в Windows 11 или Windows 10 средствами системы, ограничениях методов и одном дополнительном способе заставить работать ваш процесс в качестве службы.
Создание службы в командной строке
Первый способ — использование команды командной строки для создания своей службы, шаги будут следующими:
- Запустите командную строку от имени Администратора (способы запуска командной строки от Администратора).
- Используйте команду, заменив текстовые описания и пути на свои:
sc create Имя_службы binPath="C:service-file.exe" DisplayName= "Описание_службы" type=own start=auto
- После нажатия Enter вы получите сообщение: CreateService: успех, что означает, что служба была успешно создана.
В указанной команде используются следующие параметры:
- binPath — путь к исполняемому файлу службы.
- DisplayName — отображаемое в списке служб имя службы.
- start — тип запуска, возможные значения: boot, auto, demand (значение по умолчанию), disabled, delayed-auto
- type — тип службы, по умолчанию own, возможны другие значения: share (делит исполняемый файл с другими службами), kernel (драйвер), filesys (драйвер файловой системы), interact (интерактивная служба с возможность взаимодействия с пользователем, поддержка этого типа служб прекращается).
После создания службы вы сможете увидеть её в списке служб (Win+R — services.msc), а автоматический запуск произойдет при следующей перезагрузке системы.
Создание службы в Windows PowerShell
Создать службу можно и в PowerShell, запущенном от имени администратора (или в Терминале Windows). Базовый вариант команды с параметрами по умолчанию:
New-Service -Name "Имя_Службы" -BinaryPathName '"C:путь_к_файлу параметры_запуска"'
Расширенный вариант с указанием описания и типа запуска:
New-Service -Name MyService -BinaryPathName '"C:путь_к_файлу параметры_запуска"' -DisplayName "Имя_службы" -Description "Описание службы" -StarupType "Automatic"
В случае, если выполняется запуск исполняемого файла без параметров, а путь не содержит пробелов, использование кавычек не обязательно, например:
-BinaryPathName C:remontka.exe
При создании служб в PowerShell доступны и ряд дополнительных параметров, описанных в официальной справке на сайте Майкрософт.
Удаление созданной службы
Удалить созданную службы вы можете также в командной строке, запущенной от имени Администратора с помощью команды:
sc delete Имя_службы
Или в Windows PowerShell:
Remove-Service -Name MyService
После выполнения указанных команд созданная вами служба будет удалена из Windows.
Созданная служба не работает, варианты решения
Из описания можно предположить, что любой файл .exe может быть службой, однако, при попытке добавить свои фоновые утилиты и заставить их работать в виде службы рядовые пользователи обычно сталкиваются с ситуацией, когда процесс запускается, а затем закрывается сам. А при запуске службы вручную через некоторое время сообщает, что служба не ответила на запрос своевременно или о других ошибках.
Причина в том, что исполняемые файлы служб — не совсем обычные программы, они, помимо прочего, обмениваются данными с системой. Если ваш EXE не отвечает на соответствующие запросы системы, Windows «делает вывод» о том, что со службой что-то не так.
Как быть, если вы всё-таки настойчиво хотите использовать свой прикладной исполняемый файл в качестве службы?
- Использовать планировщик заданий и запуск от соответствующего пользователя — это не будет в полной мере службой, но почти то, что нужно.
- Ранее существовала программа RunAsSvc, позволяющая запускать любые процессы в качестве службы, но для современных ОC он не применима, а разработка была прекращена.
- Использовать инструменты INSTSRV.EXE и SRVANY.EXE из Windows Server 2003 Resource Kit Tools при создании службы Windows.
Создание пользовательской службы с помощью INSTSRV.EXE и SRVANY.EXE
Последний вариант из приведённого выше списка рассмотрим подробнее. Шаги будут следующими:
- Загрузите (вероятнее всего, придется найти в Интернете на сторонних сайтах) Windows Server 2003 Resource Kit полностью или только файлы INSTSRV.EXE и SRVANY.EXE, располагаем их у себя на диске, в моем примере путь — C:Windows
- В командной строке от имени администратора используйте команду (пути меняем на свои):
C:Windowsinstsrv.exe Имя_службы C:Windowssrvany.exe
- Если вы получили сообщение о том, что The service was successfully added, всё прошло успешно. Теперь требуется запустить редактор реестра (Win+R — regedit).
- В редакторе реестра перейдите по пути
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
и найдите раздел с вашим именем службы. Нажимаем по нему правой кнопкой мыши и выбираем пункт «Создать» — «Раздел», задаем имя «Parameters» для раздела.
- Выберите созданный раздел, нажмите правой кнопкой мыши в правой панели редактора реестра и создайте новый строковый параметр с именем Application
- Дважды нажмите по параметру и в поле «Значение» укажите путь к вашему файлу exe для запуска службы.
Закройте редактор реестра — служба создана, её можно запустить из services.msc или она будет автоматически запущена после перезагрузки компьютера.
Учитывайте, что во всех приведенных примерах служба по умолчанию запускается с учетной записью «СИСТЕМА». В некоторых случаях это может приводить к неправильной работе. В этом случае может иметь смысл зайти в свойства службы в services.msc и изменить параметры на вкладке «Вход в систему».