본문 바로가기

Windows/명령어

sc.exe 명령어를 이용한 서비스 제어 3 - 등록된 서비스 설정항목 수정

서비스에 설정된 항목값을 수정하는 방법이다.

시스템에 등록된 서비스는 각각의 고유한 설정값 즉, 일종의 속성을 갖는데, 예를 들면 서비스가 시작하는 시점, 서비스의 종류, 서비스의 종속성, 서비스 실행 파일 위치, 서비스 이름 등이 그들이다.

자세한 사례까지는 설명하지 않고, 매뉴얼 내용만 공유하도록 하겠다.


sc config

레지스트리나 서비스 컨트롤 관리자의 데이터베이스에서 서비스의 항목 값을 수정합니다.

구문

sc [ServerName] config [ServiceName] [type= {own|share|kernel|filesys|rec|adapt|interact type= {own|share}}] [start= {boot|system|auto|demand|disabled}] [error= {normal|severe|critical|ignore}] [binpath= BinaryPathName] [group= LoadOrderGroup] [tag= {yes|no}] [depend= dependencies] [obj= {AccountName|ObjectName}] [displayname= DisplayName] [password= Password]

매개 변수

ServerName
서비스가 있는 원격 컴퓨터의 이름을 지정합니다. 이름은 UNC(Universal Naming Convention) 형식을 사용해야 합니다("\\myserver"). SC.exe를 로컬에서 실행하는 경우 이 매개 변수를 무시합니다.
ServiceName
getkeyname 작업이 반환한 서비스 이름을 지정합니다.
type= {own|share|kernel|filesys|rec|adapt|interact type= {own|share}}
서비스 종류를 지정합니다.
설명
own 서비스는 자체 프로세스에서 실행합니다. 다른 서비스와 실행 파일을 공유하지 않습니다. 기본값입니다.
공유 서비스를 공유 프로세스로 실행합니다. 다른 서비스와 실행 파일을 공유합니다.
커널 드라이버입니다.
filesys 파일 시스템 드라이버입니다.
rec 컴퓨터에서 사용되는 파일 시스템을 확인하는 파일 시스템 인식 드라이버입니다.
adapt 키보드, 마우스, 디스크 드라이브와 같은 하드웨어 항목을 확인하는 어댑터 드라이버입니다.
interact 사용자가 정보를 입력하면 서비스는 데스크톱과 상호 작용할 수 있습니다. 대화형 서비스는 LocalSystem 계정으로 실행해야 합니다. 이 서비스 종류는 type= own 또는 type= shared와 연계하여 사용해야 합니다(예: type= interact type= own). type= interact을 단독으로 사용하면 유효하지 않은 매개 변수 오류가 만들어집니다.
start= {boot|system|auto|demand|disabled}
서비스의 시작 종류를 지정합니다.
설명
boot 부팅 로더에 의해 로드되는 장치 드라이버입니다.
system 커널을 초기화하는 동안 시작하는 장치 드라이버입니다.
auto 컴퓨터를 자동으로 다시 시작하거나 로그온한 사람이 없어도 자동으로 컴퓨터를 실행하는 서비스입니다.
demand 수동으로 시작해야 하는 서비스입니다. start=를 지정하지 않는 경우 이것이 기본값입니다.
disabled 시작할 수 없는 서비스입니다. 사용할 수 없는 서비스를 시작하려면 시작 종류를 다른 값으로 변경합니다.
error= {normal|severe|critical|ignore}
부팅하는 동안 서비스가 실패하는 경우 오류의 심각도를 지정합니다.
설명
normal 오류가 기록되고 서비스 시작을 실패한 사용자 정보에 대한 메시지 상자가 표시됩니다. 시작을 계속합니다. 기본값입니다.
severe 가능한 경우에는 오류가 기록됩니다. last-known-good 구성으로 컴퓨터를 다시 시작하도록 시도합니다. 이렇게 설정하면 컴퓨터를 다시 시작할 수 있지만 서비스는 여전히 실행할 수 없습니다.
critical 가능한 경우에는 오류가 기록됩니다. last-known-good 구성으로 컴퓨터를 다시 시작하도록 시도합니다. last-known-good 구성을 실패하면 시작도 실패하고 중단 오류가 나타나면서 부팅 프로세스가 중단됩니다.
ignore 오류를 기록하고 시작을 계속합니다. 이벤트 로그에 오류를 기록할 뿐 사용자에게 알리지 않습니다.
binpath= BinaryPathName
서비스 이진 파일의 경로를 지정합니다.
group= LoadOrderGroup
이 서비스가 소속된 그룹의 이름을 지정합니다. 그룹 목록이 HKLM\System\CurrentControlSet\Control\ServiceGroupOrder 하위 키의 레지스트리에 저장됩니다. 기본값은 null입니다.
tag= {yes|no}
CreateService 호출에서 TagID를 가져올 것인지 여부를 지정합니다. 태그는 부팅 시작 및 시스템 시작 드라이버에만 사용됩니다.
depend= dependencies
이 서비스 전에 시작해야 하는 서비스 또는 그룹의 이름을 지정합니다. 이름은 슬래시(/)로 구분합니다.
obj= {AccountName|ObjectName}
서비스를 실행할 계정의 이름을 지정하거나 드라이버를 실행할 Windows 드라이버 개체의 이름을 지정합니다. 기본값은 LocalSystem입니다.
displayname= DisplayName
사용자에게 서비스를 확인시키기 위해 사용자 인터페이스 프로그램에서 사용될 이름을 친근하고 의미 있는 이름으로 지정합니다. 예를 들어, 한 서비스의 하위 키 이름이 wuauserv인 경우 사용자에게 불편을 주므로 표시 이름을 자동으로 업데이트합니다.
password= Password
암호를 지정합니다. LocalSystem 계정 이외의 계정을 사용하는 경우에 필요합니다.
/?
명령 프롬프트에서 도움말을 표시합니다.

설명

  • 매개 변수와 값 사이에 공백이 없으면(예: type=own이 아니고 type= own인 경우) 작동이 실패합니다.

예제

다음 예제는 sc config 명령을 사용하는 방법을 보여줍니다.

sc config NewService binpath= "ntsd -d c:\windows\system32\NewServ.exe"