source

시스템에 실행 파일이 없을 때 Windows 서비스를 제거하는 방법은 무엇입니까?

ittop 2023. 5. 7. 11:48
반응형

시스템에 실행 파일이 없을 때 Windows 서비스를 제거하는 방법은 무엇입니까?

Windows 서비스에 대한 실행 파일이 시스템에 남아 있지 않은 경우 어떻게 제거합니까?나는 달릴 수 없습니다.installutil -u시스템에 실행 파일이 남아 있지 않기 때문입니다.서비스 콘솔에서 서비스에 대한 항목을 계속 볼 수 있습니다.

이 상태가 발생하는 이유는 서비스를 올바르게 제거하지 못하는 msi 패키지의 문제 때문일 수 있습니다. 하지만 서비스가 이 상태가 되면 어떻게 해결해야 합니까?

관리자(administrator) 명령 프롬프트에서 다음을 실행하여 sc.exe(윈도우즈 리소스 키트에 포함된 것으로 생각됨)를 사용하여 제거할 수 있어야 합니다.

sc.exe delete <service name>

어디에<service name>서비스 관리 콘솔에 표시되는 서비스 자체의 이름이지 exe의 이름이 아닙니다.

시스템 폴더에서 sc.exe를 찾을 수 있으며 이를 실행하려면 관리자 권한이 필요합니다.자세한 내용은 이 Microsoft KB 문서를 참조하십시오.

또는 DeleteService() api를 직접 호출할 수 있습니다.OpenSCManager() 등을 통해 서비스 제어 관리자에게 문의해야 하기 때문에 이 방법은 좀 더 복잡하지만, 다른 한편으로는 발생하는 상황을 보다 잘 제어할 수 있습니다.

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

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

  1. Regedit 또는 Regedt32 실행

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

  3. 삭제할 서비스를 찾아서 삭제합니다.키를 확인하여 서비스가 사용 중인 파일을 알 수 있으며 필요한 경우 삭제할 수도 있습니다.

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

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

sc삭제

다음 명령을 사용하여 서비스를 생성할 수도 있습니다.

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

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

서비스를 삭제하는 powershell 스크립트는 다음과 같습니다.foo

$foo= Get-WmiObject -Class Win32_Service -Filter "Name='foo'"
$foo.delete()

여기서 발견됨

방금 윈도우 XP를 사용해 봤는데, 작동했습니다.

로컬 컴퓨터: sc \\. delete [service-name]

  Deleting services in Windows Server 2003

  We can use sc.exe in the Windows Server 2003 to control services, create services and delete services. Since some people thought they must directly modify the registry to delete a service, I would like to share how to use sc.exe to delete a service without directly modifying the registry so that decreased the possibility for system failures.

  To delete a service: 

  Click “start“ - “run“, and then enter “cmd“ to open Microsoft Command Console.

  Enter command:

  sc servername delete servicename

  For instance, sc \\dc delete myservice

  (Note: In this example, dc is my Domain Controller Server name, which is not the local machine, myservice is the name of the service I want to delete on the DC server.)

  Below is the official help of all sc functions:

  DESCRIPTION:
    SC is a command line program used for communicating with the
    NT Service Controller and services. 
  USAGE:
          sc

내가 가장 좋아하는 방법은 Sysinternals Autoruns 응용 프로그램을 사용하는 것입니다.서비스를 선택하고 삭제를 누르면 됩니다.

PowerShell을 사용하여

Remove-Service -Name "TestService"

https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/remove-service

동일한 서비스의 실행 파일 복사본을 만들어 기존 서비스의 동일한 경로에 붙여넣은 다음 제거합니다.

언급URL : https://stackoverflow.com/questions/330836/how-to-uninstall-a-windows-service-when-there-is-no-executable-for-it-left-on-th

반응형