서비스 파일이 더 이상 존재하지 않으면 .NET Windows 서비스를 어떻게 제거합니까?
InstallUtil을 사용하여 .NET Windows 서비스를 설치했습니다. 그 후 파일을 삭제했지만 실행을 잊었습니다.
InstallUtil /u
먼저. 따라서 서비스는 여전히 서비스 MMC에 나열됩니다.
레지스트리에 들어가야합니까? 아니면 더 좋은 방법이 있습니까?
서비스 파일이 더 이상 존재하지 않으면 .NET Windows 서비스를 어떻게 제거합니까?
InstallUtil을 사용하여 .NET Windows 서비스를 설치했습니다. 그 후 파일을 삭제했지만 실행을 잊었습니다.
InstallUtil /u
먼저. 따라서 서비스는 여전히 서비스 MMC에 나열됩니다.
레지스트리에 들어가야합니까? 아니면 더 좋은 방법이 있습니까?
답변:
최소한 세 가지 옵션이 있습니다. 사용 환경 설정 순서대로 제시했습니다.
방법 1- 리소스 키트에 포함 된 SC 도구 (Sc.exe)를 사용할 수 있습니다 . (Windows 7/8에 포함)
명령 프롬프트를 열고 입력
sc delete <service-name>
도구 도움말 스 니펫은 다음과 같습니다.
DESCRIPTION:
SC is a command line program used for communicating with the
NT Service Controller and services.
delete----------Deletes a service (from the registry).
방법 2 -delserv 사용
delserv 명령 줄 유틸리티를 다운로드 하여 사용하십시오. 이 도구는 Windows 2000 용으로 개발 된 레거시 도구입니다. 현재 Window XP 상자에서는 방법 1에 설명 된 sc로 대체되었습니다.
방법 3- 레지스트리 항목을 수동으로 삭제 (Windows 7/8에서는이 역효과가 나타납니다)
Windows 서비스는 다음 레지스트리 키 아래에 등록되어 있습니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
참조 키에서 서비스 이름을 가진 하위 키를 검색하고 삭제하십시오. 서비스 목록에서 서비스를 완전히 제거하려면 다시 시작해야 할 수도 있습니다.
<Failed to Read Description. Error Code: 2>
명령 프롬프트에서 Windows "sc.exe"유틸리티를 사용하십시오. 다음과 같이 실행하십시오.
sc delete <service-name>
어떤 사람들 sc delete
은 대답으로 언급 합니다. 이것이 내가 한 방법이지만 <service-name>
매개 변수 를 찾는 데 시간이 걸렸습니다 .
이 명령 sc query type= service
(형식은 매우 특별합니다. "서비스"앞의 공백)은 설치된 Windows 서비스 목록을 sc delete <service-name>
명령 과 함께 사용할 정규화 된 이름과 함께 출력합니다 .
목록이 너무 길어서 출력을 텍스트 파일 (예 :)로 파이프 >> C:\test.txt
한 다음 검색하는 것을 고려할 수 있습니다 .
이것은 명령 SERVICE_NAME
과 함께 사용하는 것 sc delete <service-name>
입니다.
sc query
기본값 은 그대로 실행할 수 있습니다 type= service
.
레지스트리를 통해 Windows 서비스 제거
올바른 경로를 알고 있으면 레지스트리에서 서비스를 제거하는 것이 매우 쉽습니다. 내가 한 방법은 다음과 같습니다.
실행 을 Regedit 또는 Regedt32를
레지스트리 항목 "HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services"로 이동하십시오.
삭제하려는 서비스를 찾아서 삭제하십시오. 키를보고 서비스가 사용중인 파일을 확인하고 필요한 경우 삭제할 수도 있습니다.
명령 창을 통해 Windows 서비스 삭제
또는 명령 프롬프트를 사용하고 다음 명령을 사용하여 서비스를 삭제할 수도 있습니다.
sc 삭제
다음 명령을 사용하여 서비스를 만들 수도 있습니다
sc "MorganTechService"binpath = "C : \ Program Files \ MorganTechSPace \ myservice.exe"생성
참고 : 서비스 관리자에서 목록을 업데이트하려면 시스템을 재부팅해야 할 수도 있습니다.
도구를 사용하려면 Process Hacker를 사용할 수 있습니다
서비스 작성 양식 :
서비스의 상황에 맞는 메뉴에서 삭제 :
Process Hacker가 Windows 고유의 Taskmgr.exe보다 Windows 프로세스 및 서비스를 관리하는 더 편리한 도구라는 것을 알았습니다. 특히 작업 관리자에서 서비스에 전혀 액세스 할 수없는 Windows XP의 경우.
Tomcat 서비스를 다시 설치해야했기 때문에 먼저 제거했습니다. 이것은 나를 위해 일했다 :
Start a command prompt window using run as administrator
sc query type= service >t.txt
(t.txt 파일을 편집하고 목록을 검색하여 Tomcat 서비스를 찾으십시오. Tomcat7이라고합니다)
sc delete Tomcat7
그러나 Tomcat 서비스가 실행되고 있지 않기 때문에 query 명령이 처음으로 작동하지 않았습니다. 실행중인 서비스 만 나열하는 것 같습니다. 서비스를 시작하고 query 명령을 다시 실행해야했습니다.
state
매개 변수를 사용하십시오 .
1 단계 : 서비스가있는 디렉토리로 이동
명령 : cd c : \ xxx \ yyy \ service
2 단계 : 아래 명령을 입력하십시오
명령 : C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ InstallUtil.exe service.exe \ u
여기 service.exe는 서비스 exe이며 \ u는 서비스를 제거합니다. "제거가 완료되었습니다"라는 메시지가 나타납니다.
서비스를 설치하려면 위 명령에서 \ u를 제거하여 서비스를 설치하십시오.
명령 프롬프트로 Windows 서비스를 제거 하고이 명령을 작성하십시오.
cd\
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319(or version in which you developed your service)
installutil c:\\xxx.exe(physical path of your service) -d