Я створив службу Windows для сервера tomcat, і вона працює добре, але тепер я хочу змінити назву служби, не видаляючи її.
тож чи є кроки cmd \ GUI для зміни назви служби?
Я створив службу Windows для сервера tomcat, і вона працює добре, але тепер я хочу змінити назву служби, не видаляючи її.
тож чи є кроки cmd \ GUI для зміни назви служби?
Відповіді:
@ bfhd відповідь спрацює, якщо ви просто хочете змінити відображуване ім'я (це те, що відображається у списку в Services.msc
, але це не "справжнє" ім'я служби (це ім'я ключа реєстру, що містить інформацію про службу, і використовується в APIs подобається 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
на вашому приводі з’явиться . Не забудьте змінити це ім'я