Utworzyłem usługę systemu Windows dla serwera tomcat i działa ona dobrze, ale teraz chcę zmienić nazwę usługi bez jej usuwania.
więc czy są jakieś kroki cmd \ GUI, aby zmienić nazwę usługi?
Utworzyłem usługę systemu Windows dla serwera tomcat i działa ona dobrze, ale teraz chcę zmienić nazwę usługi bez jej usuwania.
więc czy są jakieś kroki cmd \ GUI, aby zmienić nazwę usługi?
Odpowiedzi:
Odpowiedź @ bfhd zadziała, jeśli chcesz tylko zmienić Nazwę wyświetlaną (która jest pokazana na liście w Services.msc
, ale nie jest „prawdziwą” nazwą usługi (która jest nazwą klucza rejestru zawierającego informacje o usłudze i jest używana w Interfejsy API, takie jak OpenService
) W części Uwagi w tym artykule MSDN omówiono nazwy usług w porównaniu z nazwami wyświetlanymi.
Niestety nie ma oficjalnego sposobu zmiany nazwy usługi. Jednakże, jest to prawdopodobnie możliwe, jeśli absolutnie muszą zmienić nazwę usługi, a nie tylko Ponowne zainstalowanie go pod nową nazwą dla jakiegoś powodu. Wykonaj następujące czynności:
regedit.exe
(Edytor rejestru).HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
i znajdź podklucz z nazwą usługi.Services.exe
, proces obsługujący menedżera kontroli usług, nie zobaczy zmiany, chyba że to zrobisz; próby rozpoczęcia procesu zmiany nazwy (lub w ogóle interakcji z nim w ogóle) zakończą się niepowodzeniem.Nie obiecuję, że to zadziała. Prawdopodobnie warto jednak spróbować, jeśli z jakiegoś powodu ponowna instalacja usługi pod nową nazwą jest tak niedopuszczalna.
Jeśli musisz to zrobić programowo, może istnieć funkcja, RegRenameKey
która może wykonać czwarty krok powyżej. Podkreślam, że może istnieć, ponieważ, o ile wiem, ta funkcja jest całkowicie nieoficjalna; nie ma go w MSDN i jest o nim niewiele cennych informacji. Jedyną rzeczą, którą znalazłem, oprócz nagłówków Windows (które mają prototyp i wskazują, że jest to tylko w systemie Vista - NT6.0 - i nowszych), jest post na forum Sysinternals , który wskazuje, że wywołuje wywołanie systemowe NT (również nieudokumentowane ). Prototypem funkcji od WinReg.h
jest
WINADVAPI
LSTATUS
APIENTRY
RegRenameKey(
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKeyName,
_In_ LPCWSTR lpNewKeyName
);
Program wiersza poleceń systemu Windows do zmiany usług to „sc”.
Oto strona referencyjna Microsoft: https://technet.microsoft.com/en-us/library/bb490995.aspx
Aby zmienić wyświetlaną nazwę usługi, możesz uruchomić:
sc config "Old service name" displayname= "New service name"
Aby zmienić plik wykonywalny, możesz uruchomić:
sc config "Service name" binpath= "C:\path\to\executable\here"
Dla obu tych poleceń, upewnij się, że przestrzeń między = i nową nazwę (tj. displayname= "New Name"
, NOT displayname="New Name"
)
[oldservicename]w.exe
na dysku pojawi się symbol. Nie zapomnij zmienić tej nazwy