0%

IIS 커맨드명령, IIS appcmd

iis

windows서버를 사용하시면 IIS를 많이 사용하실텐데요,
GUI 환경의 인터넷 정보 서비스 관리자를 사용하지 않고 쉽고 빠르게 IIS를 제어할 수 있는 방법을 소개합니다.

appcmd.exe

Appcmd.exe 를 이용해서 IIS의 다양한 아래 기능들을 수행할 수 있습니다.    

  • 웹 사이트, 응용 프로그램 풀, 가상 디렉터리의 생성, 삭제, 변경, 설정
  • 웹 사이트, 응용 프로그램 풀의 시작, 중지, 재생
  • 실행 중인 worker process, 요청에 대한 정보 보기
  • IIS, ASP.NET 설정에 대한 가져오기, 내보내기, 변경

appcmd 의 경로는 아래와 같습니다.
%systemroot%\system32\inetsrv

appcmd 사용방법

APPCMD (명령) (개체 유형) <식별자> </매개 변수1:값1 …>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
C:\Windows\System32\inetsrv>appcmd
일반적으로 사용되는 IIS 명령줄 관리 도구입니다.

APPCMD (명령) (개체 유형) <식별자> </매개 변수1:값1 ...>

지원되는 개체 유형:

SITE 가상 사이트 관리
APP 애플리케이션 관리
VDIR 가상 디렉터리 관리
APPPOOL 애플리케이션 풀 관리
CONFIG 일반 구성 섹션 관리
WP 작업자 프로세스 관리
REQUEST HTTP 요청 관리
MODULE 서버 모듈 관리
BACKUP 서버 구성 백업 관리
TRACE 실패한 요청 추적 로그로 작업
BINDING SSL 바인딩에 사용할 개체

(각 개체별로 지원되는 명령을 나열하려면 /?를 사용합니다. 예: 'appcmd.exe site /?')

일반 매개 변수:

/? 상황에 맞는 도움말 메시지를 표시합니다.

/text<:value> 텍스트 형식으로 출력을 생성합니다(기본값).
/text:*는 모든 개체 속성을 자세히 보기로 표시합니다.
/text:<attribute>는 각 개체에 대해
지정된 특성 값을 표시합니다.
/xml XML 형식으로 출력을 생성합니다.
/in 모드에서 실행 중인 다른 명령에 보낼 수 있는
출력을 생성하려면 이 매개 변수를 사용합니다.
/in 또는 - 표준 입력에서 XML 입력을 읽어 처리합니다.
/xml 모드에서 실행 중인 다른 명령이 생성한 입력을
처리하려면 이 매개 변수를 사용합니다.
/config<:*> 표시된 개체의 구성을 표시합니다.
/config:*는 상속된 구성도 포함합니다.
/metadata 구성을 표시할 때 구성 메타데이터를 표시합니다.

/commit 구성 변경 내용이 저장되는 구성 경로를 설정합니다.
특정 구성 경로인 "site",
"app", "parent" 또는 "url"을 지정하여 명령으로 편집되는 해당 경로 부분에
저장하거나 해당 구성 수준으로 "apphost", "webroot" 또는
"machine"을 지정할 수 있습니다.
/apphostconfig 편집할 다른 applicationHost.config 파일을 지정하십시오.
/debug 명령 실행에 대한 디버깅 정보를 표시합니다.

-일반 매개 변수와 같은 이름을 사용하는 매개 변수를 이스케이프하려면
"!"를 사용하십시오. 예를 들어 "debug"라는 구성 속성을 설정하려면 "/!debug:value"를 사용합니다.

사용예제 : 리스트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-- 사이트 리스트
C:\Windows\System32\inetsrv>appcmd list site
SITE "Default Web Site" (id:1,bindings:http/*:80:,state:Started)

-- 설치된 모듈확인
C:\Windows\System32\inetsrv>appcmd list module
MODULE "HttpLoggingModule" ( native, preCondition: )
MODULE "HttpCacheModule" ( native, preCondition: )
MODULE "StaticCompressionModule" ( native, preCondition: )
MODULE "DefaultDocumentModule" ( native, preCondition: )
MODULE "DirectoryListingModule" ( native, preCondition: )
MODULE "ProtocolSupportModule" ( native, preCondition: )
MODULE "StaticFileModule" ( native, preCondition: )
MODULE "AnonymousAuthenticationModule" ( native, preCondition: )
MODULE "RequestFilteringModule" ( native, preCondition: )
MODULE "CustomErrorModule" ( native, preCondition: )

-- 현재 실행중인 요청
C:\Windows\System32\inetsrv>APPCMD list request /site.name:"WEB1"
REQUEST "c900000080003a68" (url:POST /MiniPopupMonitor/WebServiceMessenger.asmx,
time:15 msec, client:192.168.0.101, stage:MapRequestHandler, module:ManagedPipelineHandler)


사용예제 : 상태제어

-- 사이트 중지
C:\Windows\System32\inetsrv>appcmd start site /site.name:"Default Web Site"
"Default Web Site"을(를) 시작했습니다.

-- 사이트 중지
C:\Windows\System32\inetsrv>appcmd stop site /site.name:"Default Web Site"
"Default Web Site"을(를) 중지했습니다.

-- 어플리케이션 풀 시작
C:\Windows\System32\inetsrv>appcmd start apppool /apppool.name:"DefaultAppPool"
"DefaultAppPool"을(를) 시작했습니다.

-- 어플리케이션 풀 중지
C:\Windows\System32\inetsrv>appcmd stop apppool /apppool.name:"DefaultAppPool"
"DefaultAppPool"을(를) 중지했습니다.
--