Development Tip

파일이 더 이상 존재하지 않는 경우 Windows 서비스를 제거하려면 어떻게합니까?

yourdevel 2020. 10. 3. 12:03
반응형

파일이 더 이상 존재하지 않는 경우 Windows 서비스를 제거하려면 어떻게합니까?


서비스 파일이 더 이상 존재하지 않는 경우 .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

참조 된 키에서 서비스 이름이있는 하위 키를 검색하여 삭제합니다. (서비스 목록에서 서비스를 완전히 제거하려면 다시 시작해야 할 수도 있습니다.)


명령 프롬프트에서 Windows "sc.exe"유틸리티를 사용하십시오. 다음과 같이 실행합니다.

sc delete <service-name>

Windows 8에서 "sc delete"사용에 대한 참고 사항 :

1) 상승 된 권한으로 CMD 창을 엽니 다. [Windows Key-X : 옵션이있는 메뉴를 불러옵니다. "명령 프롬프트 (관리자)"를 선택합니다.]
2) 서비스 목록에서 괄호 안에있는 이름을 사용합니다 . [예 : 서비스에서 "Google 업데이트 (gupdate)"를 읽을 때 "sc delete gupdate"를 사용했습니다.]


어떤 사람들 sc delete은 대답으로 언급 합니다. 이것이 내가 한 방법이지만 <service-name>매개 변수 를 찾는 데 시간이 걸렸습니다 .

명령 sc query type= service( "service"앞의 공백이 필요함)은 sc delete <service-name>명령 과 함께 사용할 정규화 된 이름과 함께 설치된 Windows 서비스 목록을 출력합니다 .

목록이 매우 길기 때문에 출력을 텍스트 파일 (예 :)로 파이핑 >> C:\test.txt한 다음 검색하는 것을 고려할 수 있습니다 .

SERVICE_NAME함께 사용할 수있는 하나입니다 sc delete <service-name>명령.


레지스트리를 통해 Windows 서비스 제거

올바른 경로를 알고 있다면 레지스트리에서 서비스를 제거하는 것은 매우 쉽습니다. 내가 한 방법은 다음과 같습니다.

  1. 실행 을 Regedit 또는 Regedt32를

  2. 레지스트리 항목 "HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services"로 이동합니다.

  3. 삭제하려는 서비스를 찾아 삭제하십시오. 키를보고 서비스에서 사용중인 파일을 확인하고 필요한 경우 삭제할 수도 있습니다.

명령 창을 통해 Windows 서비스 삭제

또는 명령 프롬프트를 사용하고 다음 명령을 사용하여 서비스를 삭제할 수도 있습니다.

sc 삭제

다음 명령을 사용하여 서비스를 만들 수도 있습니다.

sc create "MorganTechService"binpath = "C : \ Program Files \ MorganTechSPace \ myservice.exe"

참고 : 서비스 관리자에서 목록을 업데이트하려면 시스템을 재부팅해야 할 수 있습니다.


도구를 사용하려면 Process Hacker를 사용할 수 있습니다.

서비스 생성 양식 :

Process Hacker Create Service

삭제할 서비스의 컨텍스트 메뉴 :

Process Hacker Delete Service

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

HOWEVER, the query command did not work the first time, because the tomcat service was not running. It seems to only list services that are running. I had to start the service and run the query command again.


If the original Service .InstallLog and .InstallState files are still in the folder, you can try reinstalling the executable to replace the files, then use InstallUtil /u, then uninstall the program. It's a bit convoluted, but worked in a particular instance for me.


You can try running Autoruns, which would save you from having to edit the registry by hand. This is especially useful when you don't have the needed permissions.


1st Step : Move to the Directory where your service is present

Command : cd c:\xxx\yyy\service

2nd Step : Enter the below command

Command : C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe service.exe \u

Here service.exe is your service exe and \u will uninstall the service. you'll see "The uninstall has completed" message.

If you wanna install a service, Remove \u in the above command which will install your service


We discovered that even if you run sc_delete, there can be an entry remaining in the registry for your service, so that reinstalling the service results in a corrupted set of registry entries (they don't match). What we did was to regedit and remove this leftover entry by hand.

Note: ShipmunkService is still showing up after sc_delete!

Then you can reinstall, and your service will run correctly. Best of luck to you all, and may the force be with you.


You can uninstall your windows service by command prompt also just write this piece of command

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

-Windows+r open cmd.

-sc YourSeviceName this code remove your service.

-Uninstal "YourService Path" this code uninstall your service.

참고URL : https://stackoverflow.com/questions/197876/how-do-i-uninstall-a-windows-service-if-the-files-do-not-exist-anymore

반응형