Я создал службу Windows для сервера Tomcat, и он работает нормально, но теперь я хочу изменить имя службы без ее удаления.
так есть ли какие-либо шаги cmd \ GUI для изменения имени службы?
Я создал службу Windows для сервера Tomcat, и он работает нормально, но теперь я хочу изменить имя службы без ее удаления.
так есть ли какие-либо шаги cmd \ GUI для изменения имени службы?
Ответы:
Ответ @ bfhd сработает, если вы просто захотите изменить отображаемое имя (это то, что показано в списке Services.msc
, но не «реальное» имя службы) (это имя раздела реестра, содержащего информацию о службе, которое используется в API, например OpenService
). В разделе «Примечания» этой статьи MSDN немного больше говорится об именах служб и отображаемых именах.
К сожалению, нет официального способа изменить название сервиса. Тем не менее, это возможно, если вам по какой-то причине необходимо переименовать службу, а не просто переустанавливать ее под новым именем. Сделайте следующее:
regedit.exe
(редактор реестра).HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
и найдите подраздел с названием вашей службы.Services.exe
процесс, в котором находится диспетчер управления службами, не увидит изменения, если вы этого не сделаете; Попытки запустить переименованный процесс (или вообще вообще не взаимодействовать с ним) потерпят неудачу.Я не обещаю этой работы. Однако, возможно, стоит попробовать, если по какой-то причине просто переустановить службу под новым именем так недопустимо.
Если вы должны сделать это программно, может существовать функция, RegRenameKey
которая может выполнить для вас четвертый шаг выше. Я подчеркиваю, может существовать, потому что, насколько я могу судить, эта функция является полностью неофициальной; это не в MSDN, и есть очень мало информации об этом. Единственное, что я нашел, кроме заголовков Windows (которые имеют прототип и указывают, что это только на Vista - NT6.0 - и новее), это сообщение на форуме Sysinternals , которое указывает, что он вызывает системный вызов NT (также недокументированный ). Прототип функции, от WinReg.h
, является
WINADVAPI
LSTATUS
APIENTRY
RegRenameKey(
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKeyName,
_In_ LPCWSTR lpNewKeyName
);
Программа командной строки Windows для изменения служб - «sc».
Вот справочная страница Microsoft: https://technet.microsoft.com/en-us/library/bb490995.aspx
Чтобы изменить отображаемое имя службы, вы можете запустить:
sc config "Old service name" displayname= "New service name"
Чтобы изменить исполняемый файл, вы можете запустить:
sc config "Service name" binpath= "C:\path\to\executable\here"
Для обеих этих команд, убедитесь , что у вас есть пространство между = и новым именем (например. displayname= "New Name"
, НЕ displayname="New Name"
)
[oldservicename]w.exe
на вашем диске будет значок. Не забудьте поменять это имя