본문 바로가기
기타

윈도우 서비스 삭제하기

by leo21c 2009. 3. 27.
SMALL

[ 윈도우 서비스 삭제하기 ]


서비스에 관련된 윈도우 명령은 "sc" 입니다.
도스커맨드 프롬프트(시작->실행->"cmd" 입력하고 확인)에서
"sc"입력하면 다음과 같은 도움말이 출력됩니다.
======================================================

설명:
SC는 서비스 제어 관리자 및 서비스와의 통신에 사용되는
명령줄 프로그램입니다.

사용법:
sc <서버> [명령어] [서비스 이름] <옵션1> <옵션2>...

<서버> 옵션의 형식은 "\\ServerName">\ServerName"입니다.
명령어에 대한 자세한 도움말은 다음을 입력하십시오: "sc [명령어]"

명령어:
query-----------서비스 상태를 쿼리하거나 서비스 종류의 상태를 열거합니다.
queryex---------서비스의 확장 상태를 쿼리하거나 서비스 종류의 상태를 열거합니다.
start-----------서비스를 시작합니다.
pause-----------서비스에게 PAUSE 제어 요청을 보냅니다.
interrogate-----서비스에게 INTERROGATE 제어 요청을 보냅니다.
continue--------서비스에게 CONTINUE 제어 요청을 보냅니다.
stop------------서비스에게 STOP 요청을 보냅니다.
config----------서비스 구성을 변경합니다 (지속적).
description-----서비스 설명을 변경합니다.
failure---------서비스가 실패했을 때 행할 동작을 변경합니다.
qc--------------서비스의 구성 정보를 쿼리합니다.
qdescription----서비스 설명을 쿼리합니다.
qfailure--------서비스가 실패했을 때 행할 동작을 쿼리합니다.
delete----------서비스를 (레지스트리에서) 삭제합니다.
create----------서비스를 만듭니다. (레지스트리에 추가).
control---------서비스에게 제어를 보냅니다.
sdshow----------서비스의 보안 설명자를 표시합니다.
sdset-----------서비스의 보안 설명자를 설정합니다.
GetDisplayName--서비스의 DisplayName을 가져옵니다.
GetKeyName------서비스의 ServiceKeyName을 가져옵니다.
EnumDepend------서비스 종속성을 열거합니다.

다음 명령어에는 서비스 이름이 필요 없습니다:
sc <서버> <명령어> <옵션>
boot------------(ok | bad) 마지막 부팅을 마지막으로 성공한 부팅구성에 저장할 지 나타냅니다.
Lock------------서비스 데이터베이스를 잠급니다.
QueryLock-------SCManager 데이터베이스의 잠금 상태를 쿼리합니다

예:
sc start MyService

QUERY와 QUERYEX 명령 도움말을 보시겠습니까? [y|n]: y

QUERY 및 QUERYEX 옵션:
쿼리 명령어 뒤에 서비스 이름이 오면, 해당 서비스의
상태가 반환됩니다. 이 경우 다른 옵션은 적용되지
않습니다. 쿼리 명령어 뒤에 아무 것도 오지 않거나
아래 나열된 옵션 중의 하나가 오면, 서비스가 열거됩니다.

type= 열거할 서비스 종류 (driver, service, all)
(기본값 = service)
state= 열거할 서비스 상태 (inactive, all)
(기본값 = active)\n"
bufsize= 열거할 버퍼 크기 (바이트)
(기본값 = 4096)
ri= 열거하기 시작할 계속 인덱스 번호\n"
(기본값 = 0)
group= 열거할 서비스 그룹
(기본값 = all groups)

구문 예제
sc query - 활성 서비스 및 드라이버의 상태 열거
sc query messenger - 메신저 서비스의 상태 표시
sc queryex messenger - 메신저 서비스의 확장 상태 표시
sc query type= driver - 활성 드라이버만 열거
sc query type= service - Win32 서비스만 열거
sc query state= all - 모든 서비스 및 드라이버 열거
sc query bufsize= 50 - 50바이트 버퍼로 열거
sc query ri= 14 - 계속 인덱스 = 14로 열거
sc queryex group= \"\" - 그룹에 없는 활성 서비스 열거
sc query type= service type= interact - 모든 인터랙티브 서비스 열거
sc query type= driver group= NDIS - 모든 NDIS 드라이버 열거
======================================================


이 "sc" 명령으로 서비스를 시작/중단/삭제 및 관련 기타 작업을 하실 수 있습니다.


[EX]
1. 서비스를 중지한다.
2. sc delete [중지할 서비스명]


------------------------------------------------------------------------------

[레지스트리에서 삭제하는 방법]

- 머니머니 해도 레지스트리에서 삭제하는 방법이 깔끔하다.. 위험부담은 본인책임^^;

윈도우 서비스 목록에 원치 않는 서비스가 등록되었거나 소프트웨어의 언인스톨 후에도
남아있는 서비스가 있을경우 이를 제거하기 위해서는 레지스트리를 편집해야 한다.

1. 삭제하고자 하는 서비스가 실행되어 있다면 중지를 시킨다.
2. regedit 를 실행하여 레지스트리 편집기를 연다.
3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
삭제할 서비스를 찾아 선택한 후 삭제한다.
4. 재부팅

(참고)
재부팅 후에도 서비스 목록에 여전히 등록되어 있다면 레지스트리
HKEY_LOCAL_MACHINE\SYSTEM\ 하위에서 서비스 키명으로 검색하여
목록을 모두 제거한다.



예를 들면..
Atria Location Broker 서비스를 삭제하려면 "서비스"에서 서비스 이름을 확인하고
(Atria Location Broker 는 Albd 가 서비스 이름이다)




레지스트리에서
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 로 이동하여
Albd 폴더를 삭제하면 된다.
LIST