Sc.exe를 사용하여 Windows 서비스를 만드는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 251192 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

명령줄에서 원격으로 서비스를 만들고 시작하는 데 리소스 키트에 포함된 SC 도구(Sc.exe)를 사용할 수 있습니다.

Netsvc.exe와 Instsrv.exe 도구를 사용하면 원격 컴퓨터에서 서비스를 시작할 수 있지만 원격으로 서비스를 만들 수는 없습니다.

참고: Srvinstw.exe 도구는 원격 서비스를 만드는 데 사용되는 GUI(그래픽 사용자 인터페이스) 버전이나 명령줄 도구가 아닙니다.

추가 정보

Sc.exe를 사용하여 Windows용 서비스를 쉽게 개발할 수 있습니다. 리소스 키트에서 제공하는 Sc.exe는 모든 Windows 서비스 제어 API(응용 프로그램 인터페이스) 함수에 대한 호출을 구현합니다. 명령줄에서 이러한 함수에 대한 매개 변수를 지정하는 방식으로 매개 변수를 설정할 수 있습니다. Sc.exe는 서비스 상태를 표시하고 상태 구조 필드에 저장된 값도 검색합니다. 이 도구를 사용하면 원격 컴퓨터 이름도 지정할 수 있으므로 원격 컴퓨터에서 서비스 API 함수를 호출하거나 서비스 상태 구조를 볼 수 있습니다.

Sc.exe를 사용하면 명령줄에서 서비스 제어 API 함수를 호출하고 매개 변수를 변경할 수도 있습니다. 이로 인한 장점은 레지스트리와 서비스 제어 관리자 데이터베이스에서 서비스 정보를 쉽게 만들거나 구성할 수 있다는 것입니다. 수동으로 레지스트리에 항목을 만든 다음 컴퓨터를 다시 시작하여 서비스 제어 관리자가 데이터베이스를 업데이트하도록 하는 방식으로 서비스를 구성할 필요가 없습니다.

Sc.exe에서는 다음과 같은 구문을 사용합니다.

구문 1(Sc.exe 실행에 구문 1 사용)
sc [Servername] Command Servicename [Optionname= Optionvalue...]
구문 2(query 명령을 제외한 도움말 정보 표시에 구문 2 사용)
sc [Command]

매개 변수

  • Servername
    선택적 매개 변수입니다. 원격 컴퓨터에서 명령을 실행하려고 할 때 서버 이름을 지정합니다. 이름은 백슬래시(\) 문자 두 개로 시작해야 합니다(예: \\myserver). 로컬 컴퓨터에서 Sc.exe를 실행하려면 이 매개 변수를 지정하지 마십시오.
  • Command
    sc 명령을 지정합니다. sc 명령 중 대부분은 지정된 컴퓨터에 대한 관리자 권한이 있어야 사용할 수 있습니다. Sc.exe는 다음과 같은 명령을 지원합니다.
    Config
    서비스의 구성을 변경합니다(영구적).

    Continue
    서비스에 Continue 제어 요청을 보냅니다.

    Control
    서비스에 컨트롤을 전송합니다.

    Create
    서비스를 만듭니다(레지스트리에 추가).

    Delete
    서비스를 삭제합니다(레지스트리에서 삭제).

    EnumDepend
    서비스 종속성을 열거합니다.

    GetDisplayName
    서비스의 DisplayName을 얻습니다.

    GetKeyName
    서비스의 ServiceKeyName을 얻습니다.

    Interrogate
    서비스에 Interrogate 제어 요청을 보냅니다.

    Pause
    서비스에 Pause 제어 요청을 보냅니다.

    qc
    서비스의 구성을 쿼리합니다. 자세한 내용은 "SC QC" 참조 절을 참조하십시오.

    Query
    서비스의 상태를 쿼리하거나 서비스 종류에 대한 상태를 열거합니다. 자세한 내용은 "SC QUERY" 참조 절을 참조하십시오.

    Start
    서비스를 시작합니다.

    Stop
    서비스에 Stop 요청을 보냅니다.
  • Servicename
    레지스트리에서 서비스 키 이름을 지정합니다. 이 이름은 표시 이름(제어판의 서비스 도구와 net start 명령에서 표시되는 이름)과 다릅니다. Sc.exe는 서비스의 기본 식별자로 서비스 키 이름을 사용합니다.
  • Optionname
    Optionname과 Optionvalue 매개 변수를 사용하여 선택적 명령 매개 변수의 이름과 값을 지정할 수 있습니다. Optionname과 등호 사이에는 공백이 없어야 합니다. 선택적 매개 변수 이름과 값 쌍을 여러 개 지정하거나 전혀 지정하지 않을 수 있습니다.
  • Optionvalue
    이름이 Optionname인 매개 변수의 값을 지정합니다. 각 Optionname에 대한 유효한 값의 범위는 제한되는 경우가 많습니다. 사용 가능한 값의 목록은 각 명령의 도움말을 참조하십시오.
대부분의 명령을 사용하는 데 관리자 권한이 필요하므로 사용자는 개발이 수행 중인 컴퓨터의 관리자여야 합니다.

sc create 명령은 레지스트리와 서비스 제어 관리자 데이터베이스에서 서비스에 대한 항목을 만듭니다.

구문
sc [Servername] create Servicename [Optionname=Optionvalue...

매개 변수

  • Servername
    선택적 매개 변수입니다. 원격 컴퓨터에서 명령을 실행하려고 할 때 서버의 이름을 지정합니다. 이름은 백슬래시 문자 두 개로 시작해야 합니다(예: \\myserver). 로컬 컴퓨터에서 SC를 실행하려면 이 매개 변수를 지정하지 마십시오.
  • Servicename
    레지스트리에서 서비스 키 이름을 지정합니다. 이 이름은 제어판의 서비스 도구와 net start에서 표시되는 이름인 표시 이름과 다릅니다. Sc.exe는 서비스의 기본 식별자로 서비스 키 이름을 사용합니다.
  • Optionname
    Optionname과 Optionvalue 매개 변수를 사용하여 선택적 매개 변수의 이름과 값을 지정할 수 있습니다. Optionname과 등호 사이에는 공백이 없어야 합니다. 선택적 매개 변수 이름과 값 쌍을 여러 개 지정하거나 전혀 지정하지 않을 수 있습니다. sc query 명령은 다음 OptionnameOptionvalue 값을 지원합니다.
    type=own, share, interact, kernel, filesys
    만들려는 서비스의 종류입니다. Optionvalue에는 드라이버에서 사용하는 종류가 포함됩니다.
    (기본값 = share)

    start=boot, system, auto, demand, disabled
    서비스의 시작 유형입니다. Optionvalue에는 드라이버에서 사용하는 유형이 포함됩니다.
    (기본값 = demand)

    error=normal, severe, critical, ignore
    서비스가 부팅 중 시작되지 않는 경우 오류의 심각성입니다.
    (기본값 = normal)

    binPath=(문자열)
    서비스 이진 파일에 대한 경로 이름입니다. 이 매개 변수에 대한 기본값은 없습니다. 이 문자열은 반드시 제공되어야 합니다.

    group=(문자열)
    서비스가 속해 있는 그룹의 이름입니다. 그룹 목록은 ServiceGroupOrder에서 레지스트리에 저장되어 있습니다.
    (기본값 = nothing)

    tag=(문자열)
    이 문자열이 "yes"로 설정되어 있으면 Sc.exe가 CreateService 호출에서 TagId를 얻지만 태그를 표시하지는 않습니다.
    (기본값 = nothing)

    depend=(공백으로 구분된 문자열)
    이 서비스 전에 시작되어야 하는 서비스나 그룹의 이름입니다.

    obj=(문자열)
    서비스가 실행되는 계정의 이름입니다. 드라이버의 경우 이 매개 변수는 Windows 드라이버 개체 이름입니다.
    (기본값 = LocalSystem)

    DisplayName=(문자열)
    사용자 인터페이스 프로그램에서 서비스 식별에 사용할 수 있는 문자열입니다.

    password=(문자열)
    암호 문자열입니다. 이 매개 변수는 LocalSystem이 아닌 계정을 사용하는 경우 필요합니다.
Optionvalue
이름이 Optionname인 매개 변수의 값을 지정합니다. 지원되는 값의 목록은 Optionname을 참조하십시오. 문자열을 입력해야 하는 경우 빈 따옴표를 사용하면 빈 문자열을 넣을 수 있습니다.

참고: sc create 명령은 CreateService API 함수의 작업을 수행합니다.

다음 예는 \\remotecomputer라는 컴퓨터에 이름이 "NewService"인 서비스에 대한 레지스트리 항목을 만듭니다.
sc \\remotecomputer create newservice binpath= c:\nt\system32\newserv.exe
이 서비스는 기본적으로 시작 유형이 SERVICE_DEMAND_START인 WIN32_SHARE_PROCESS로 만들어집니다. 이 서비스에는 종속성이 없으며 LocalSystem 보안 컨텍스트에서 실행됩니다.

다음 예는 자체 프로세스에서 실행되는 자동 시작 서비스로 로컬 컴퓨터에 서비스를 만듭니다. 이 서비스는 TDI 그룹과 NetBIOS 서비스에 종속되어 있습니다. 공백으로 구분된 종속성 목록 앞뒤에는 따옴표를 추가해야 합니다.
sc create newservice binpath= c:\nt\system32\newserv.exe type= own start= auto depend= "+tdi netbios"
Sc.exe 도구에 대한 자세한 내용은 리소스 키트에서 Sc-dev.txt 문서를 참조하십시오. 이 문서에서는 Sc.exe에 대해 자세하게 설명합니다.



Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 251192 - 마지막 검토: 2004년 11월 30일 화요일 - 수정: 3.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Windows NT Server 4.0, Terminal Server Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
키워드:?
kbinfo KB251192

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com