Tomcat 서버에 대한 Windows 서비스를 만들었으며 제대로 실행되고 있지만 서비스 이름을 삭제하지 않고 변경하고 싶습니다.
서비스 이름을 변경하는 cmd \ GUI 단계가 있습니까?
Tomcat 서버에 대한 Windows 서비스를 만들었으며 제대로 실행되고 있지만 서비스 이름을 삭제하지 않고 변경하고 싶습니다.
서비스 이름을 변경하는 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 forum post 이며 NT syscall (또한 문서화되지 않음)을 호출 함을 나타냅니다. ). 의 함수 프로토 타입 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"
, NOT displayname="New Name"
)
[oldservicename]w.exe
드라이브에 있습니다. 그 이름을 바꾸는 것을 잊지 마십시오