透過APPCMD命令行管理IIS自動化部署

 

AppCmd.exe 工具所在目錄 C:\windows\sytstem32\inetsrv\ 目錄下

 

使用命令行管理IIS 7.0時,需要使用 IIS7.0提供的全新管理工具 AppCmd.exe。AppCmd.exe 工具可以完成web服務器的全不管理工作。利用AppCmd.exe工具,既可以通過命令行提示完成挂歷工作,也可以通過腳本完成管理工作。利用AppCmd.exe工具,可以完成以下工作:

1、添加、刪除、修改web網站和應用程序池

2、停止,啟動web網站和應用程序池

3、觀察工作進程和請求信息

4、一列表形式顯示IIS和ASP.NET的配置信息,並支持對IIS和ASP.NET的配置信息進行修改

AppCmd.exe工具提供了一個一直的命令集,利用該命令集,針對受支持的對像類型,可以執行查詢操作並完成一些其他任務,既可以段杜運行這些命令,也可以講命令進行組合併欲行命令組合,從而可以執行複雜的任務,完成複雜的查詢工作,如表:

對象名稱描述

site:管理虛擬網站

app:管理應用程序

vdir:管理虛擬目錄

appool:管理應用程序池

config:挂歷通用配置文件

wp:挂歷工作進程

request:管理http請求

module:管理服務器模塊

backup:管理服務器配置備份

trace:管理失效請求跟?日誌

AppCmd.exe工具支持的命令:

add

clear

configure

delete

inspect

install

list

lock

migrate

recycle

reset

restore

search

set

start

stop

uninstall

unlock

AppCmd命令

溫馨提示:命令總是位於對象之前,而屬性總是位於對象之後,這樣就可以通過創建一個類似於一條語句的結構,在這個結構中,appcmd.exe通知對像做某事。

list:列出應用程序池
set:配置應用程序池
add:添加新應用程序池
delete:刪除應用程序池
start:啟動應用程序池
stop:停止應用程序池
recycle:回收應用程序池

 

1、列出一個對象所有實例:appcmd.exe list app

2、列出獨一無二的對象實例:appcmd.exe list app "Default Web Site/"

3、列出滿足一定準則的對象實例:appcmd.exe list app /apppool.name:"defaultapppool"

4、列出對象的詳細信息:appcmd.exe list app "default web site/"/text:*

5.列出所有XXX應用程序池的應用程序:appcmd.exe list app /text:/apppool.name:XXX

6、列出網站的配置信息:appcmd.exe list site "default web site "/config

7、更換應用程序池:appcmd.exe set app "default web site/" /applicationpool:"XXX"

8、添加新的應用程序池:appcmd.exe add apppool /name:"XXX"

9、刪除應用程序池:appcmd.exe delete apppool /apppool.name:"XXX"

10、列出所有的應用程序池的詳細信息:appcmd.exe list apppool

11、查詢所有應用程序池狀態為started的:appcmd.exe list apppools /state:started

12、關閉指定應用程序池:appcmd.exe stop appPool /appPool.name:"XXX"

13、開啟指定應用程序池:appcmd.exe start apppool /apppool.name:"XXX"

14、監視當前的請求:appcmd.exe list request

request對象可以使用屬性來找到特定的信息,通過使用屬性,可以返回摸個運行時間(以毫秒計算)超過預設值的網站、應用程序池、工作進程、URL, 以及請求的信息。request對象所使用的屬性包括:

基於網站ID的請求:appcmd.exe list request /site.id:1

基於應用程序池的請求:appcmd.exe list request /apppool.exe:DefaultAppPool

基於工作進程的請求:appcmd.exe list request /wp.name:"1044"

基於網站名稱的請求:appcmd.exe list request /site.name:"Default web Site"

基於進程運行時間的請求:appcmd.exe list request /elapsed:"1000"

15.站點備份與恢復:備份站點:appcmd.exe add backup backupname

列出備份:appcmd.exe list backup

恢復備份

在恢復一個備份時,IIS停止運行,並且重寫服務器的狀態。一旦配置文件被重寫,IIS隨即重新啟動。如果不希望IIS停止運行並重新啟動,那麼可以是使用/stop:false。這樣,就可以在合適的時間手動停止IIS運行,並手動重新啟動IIS

appcmd.exe restore backup /back.name:"XXX" /stop:false

appcmd.exe restore backup /backup.name:"XXX"

刪除備份:appcmd.exe relete backup XXX

16、列出服務器的整體配置信息:appcmd.exe list config

列出默認Web網站的配置:appcmd.exe list config "Default Web Site/"

當需要顯示默認web網站的配置內容時,為了減少顯示內容,可以執行:appcmd.exe list config "Defaul Web Site/" /section:system.net/settings

獲取所有可用節點:appcmd.exe list config -section:?

17、編輯配置節點信息

eg1: 啟用全局IPv6

appcmd.exe set config /section:system.net/settings -ipv6.enabled:"true"

eg2:在全局配置中啟用了IPv6,現在要在默認的web中引用IPv6

appcmd.exe set config "" /section:system.net/settings -ipv6.enabe:"false"

列出節點集合

appcmd.exe list config /section:httpErrors

編輯節點集合

eg:把401錯誤頁面有"401。htm"修改為"defaulterror.htm"

通過使用加號(+)或者一個減號(-)添加活刪除元素

刪除503狀態碼

appcmd.exe set config /section:httpErrors /-[statusCode='503']

appcmd.exe set config /section:httpErrors / [statusCode='401'].path:defaulterror.htm

18、對配置進行加鎖和解鎖

解鎖:appcmd.exe unlock config "default web site" /section:system.web/authentication

加鎖:appcmd.exe lock config "default web site" /section:system.web/authentication

19、使用管道傳送XML數據


以在appcmd list
中使用/xml修飾符來創建複雜的任務,還可以執行大規模的批處理工作。利用/xml修飾符,可以講一個查詢的結果導出並保存到一個標準XML格式的文件
中,從而使其他命令行工具或者shell命令可以使用這個XML文件。例如,為了列出所有已啟用的應用程序池,,並將信息保存到一個標準的XML文件中,
執行以下命令:

appcmd.exe list apppool /state:started /xml

  • Top