標籤:
IIS7.0 Appcmd 命令詳解
廢話不說!雖然有配置介面管理器!但是做安裝包的時候命令建立是必不可少的!最近使用NSIS製作安裝包仔細研究了一下Appcmd的命令,可謂是功能齊全.
上網查了些資料,那些部落格大部分都是轉載的別人的。都是些基本的介紹,很多命令都沒介紹到(不知道是不是我走眼了)。
就連微軟的 技術資產庫 也不詳細:
附地址:http://technet.microsoft.com/zh-cn/library/cc772200(WS.10).aspx(反正我找了一遍!沒找到我要的)
微軟的 技術資產庫 有的我就不介紹了,點開上面的連結自己去看。
(介紹我們能用到的一些命令,目前只包含site 的操作,其他apppool config app vdir 後續有時間在加入)
一:準備工作
APPcmd.exe 位於 C:\Windows\System32\inetsrv 目錄
使用 Cd c:\Windows\System32\inetsrv 切換到該目錄
二:命令操作簡介
IIS 命令列管理工具基本格式:
APPCMD (命令) (物件類型) <標識符> </參數1:值1 ...>
支援的物件類型:
SITE 虛擬網站的管理
APP 管理應用程式
VDIR 管理虛擬目錄
APPPOOL 管理應用程式池
CONFIG 管理常規配置節
WP 管理背景工作處理序
REQUEST 管理 HTTP 要求
MODULE 管理伺服器模組
BACKUP 管理伺服器配置備份
TRACE 使用失敗請求追蹤記錄檔
-----------這個就不解釋很詳細了,懂的人都知道這個IIS的層次。
三:對Site的命令詳解
1.命令介紹
虛擬網站的管理
APPCMD <命令> SITE [標識符] [-參數1:值1 ...] 如: appcmd list site (列出當前存在的網站)
支援的命令:
list 列出虛擬網站
set 配置虛擬網站
add 添加新虛擬網站
delete 刪除虛擬網站
start 啟動虛擬網站
stop 停止虛擬網站
2.詳解
列出虛擬網站
APPCMD list SITE [標識符] [-參數1:值1 ...]
列出電腦上的虛擬網站。此命令可用於使用特定網站的標識符或 url 尋找該網站,或者
基於指定的網站屬性匹配零個或多個網站。
樣本:
appcmd list sites
列出電腦上的所有網站。
appcmd list site "Default Web Site"
尋找網站“Default Web Site”。
appcmd list site http://localhost/app1
尋找與指定的 url 關聯的網站。
appcmd list site /serverAutoStart:false
尋找“serverAutoStart”配置屬性設定為“false”的所有網站。
添加新虛擬網站
APPCMD add SITE [標識符] [-參數1:值1 ...]
使用指定的設定建立新的虛擬網站。至少,必須提供網站名稱和 ID。
支援的參數:
/name (必需) 網站名稱
/id 網站 ID
/bindings “http://domain:port,...”好記格式或“protocol/bindingInformation,...”原始格式的繫結資料行表
/physicalPath
如果指定,將導致為該網站建立包含指向指定路徑的根虛擬目錄的根應用程式。如果忽
略,將建立一個沒有根應用程式的網站,並且該網站在建立根應用程式之前將無法啟動。
樣本:
appcmd add site /name:"My New Site" /id:2 /bindings:http://www.domain.com:80
使用指定的好記綁定建立一個新網站“我的新網站”,以便在連接埠 80 上偵聽對 www.d
omain.com 的 http 請求。
appcmd add site /name:"My New Site" /id:2 /bindings:http://*:81
使用指定的好記綁定建立一個新網站“我的新網站”,以便在連接埠 81 上偵聽對任何域
名的 http 請求。
appcmd add site /name:"My New Site" /id:2 /bindings:http/*:81:
使用指定的 ID 和綁定建立新網站“我的新網站”。建立後,新網站中不包含任何應用
程式。
appcmd add site /name:"My New Site" /id:2 /bindings:http/*:81: /physicalPath:"c
:\inetpub\mynewsite"
使用指定的 ID 和綁定建立新網站“我的新網站”。系統將自動建立根虛擬目錄指向指
定實體路徑的根應用程式。
appcmd add site /name:"My New Site" /bindings:http/*:81:
使用綁定建立新網站“我的新網站”,並自動產生網站 ID。建立後,該新網站不包含
任何應用程式。
配置虛擬網站
APPCMD set SITE [標識符] [-參數1:值1 ...]
允許設定指定虛擬網站的屬性。必須提供準確的網站標識符,並且必須將該標識符解析為現
有網站。
支援的參數:
identifier (必需)
要修改的網站的網站名稱或 url
/site.name
要修改的網站的網站名稱或 url (與標識符相同)
/bindings
“http://domain:port,...”好記格式或“protocol/bindingInformation,...”原始
格式的繫結資料行表
樣本:
appcmd set site "Default Web Site" /serverAutoStart:false /id:100
設定“Default Web Site”網站的“serverAutoStart”和“id”屬性。
這裡對 set 操作附加一些進階操作(重要)
當時用 appcmd set site "Default Web Site" 當時用後其他進階參數
解釋後續補上............
-name 名稱
-id ID標識
-serverAutoStart 是否自動啟動
-bindings.[protocol=‘string‘,bindingInformation=‘string‘].p
-bindings.[protocol=‘string‘,bindingInformation=‘string‘].b
-limits.maxBandwidth
-limits.maxConnections
-limits.connectionTimeout
-logFile.logExtFileFlags
-logFile.customLogPluginClsid
-logFile.logFormat
-logFile.directory
-logFile.period
-logFile.truncateSize
-logFile.localTimeRollover
-logFile.enabled
-traceFailedRequestsLogging.enabled
-traceFailedRequestsLogging.directory
-traceFailedRequestsLogging.maxLogFiles
-traceFailedRequestsLogging.maxLogFileSizeKB
-traceFailedRequestsLogging.customActionsEnabled
-applicationDefaults.path
-applicationDefaults.applicationPool
-applicationDefaults.enabledProtocols
-virtualDirectoryDefaults.path
-virtualDirectoryDefaults.physicalPath 網站的實體路徑
-virtualDirectoryDefaults.userName 實體路徑憑據的賬戶
-virtualDirectoryDefaults.password 實體路徑憑據的密碼
-virtualDirectoryDefaults.logonMethod
-virtualDirectoryDefaults.allowSubDirConfig
-[path=‘string‘].path
-[path=‘string‘].applicationPool
-[path=‘string‘].enabledProtocols
-[path=‘string‘].virtualDirectoryDefaults.path
-[path=‘string‘].virtualDirectoryDefaults.physicalPath
-[path=‘string‘].virtualDirectoryDefaults.userName
-[path=‘string‘].virtualDirectoryDefaults.password
-[path=‘string‘].virtualDirectoryDefaults.logonMethod
-[path=‘string‘].virtualDirectoryDefaults.allowSubDirConfig
-[path=‘string‘].[path=‘string‘].path
-[path=‘string‘].[path=‘string‘].physicalPath
-[path=‘string‘].[path=‘string‘].userName
-[path=‘string‘].[path=‘string‘].password
-[path=‘string‘].[path=‘string‘].logonMethod
-[path=‘string‘].[path=‘string‘].allowSubDirConfig
刪除虛擬網站
APPCMD delete SITE [標識符] [-參數1:值1 ...]
描敘: 從電腦刪除指定的虛擬網站。必須提供準確的網站標識符,並且必須將該標識符解析為現有網站。
支援的參數:
identifier (必需)要刪除的網站的網站名稱或 url
/site.name 要刪除的網站的網站名稱或 url (與標識符相同)
樣本:
appcmd delete site "Default Web Site" 刪除網站“Default Web Site”。
啟動虛擬網站
APPCMD start SITE [標識符] [-參數1:值1 ...]
啟動指定的虛擬網站並啟用該網站,以開始偵聽其所有綁定端點上的新請求。必須提供準確的網站標識符,並且必須將該標識符解析為現有網站。
支援的參數:
identifier (必需)要啟動的網站的網站名稱或 url
/site.name 要啟動的網站的網站名稱或 url (與標識符相同)
樣本:
appcmd start site "Default Web Site"
啟動網站“Default Web Site”。
停止虛擬網站
APPCMD stop SITE [標識符] [-參數1:值1 ...]
停止指定的虛擬網站,阻止在其綁定端點上接收新請求。必須提供準確的網站標識符,並且
必須將該標識符解析為現有網站。
支援的參數:
identifier (必需)要停止的網站的網站名稱或 url
/site.name 要停止的網站的網站名稱或 url (與標識符相同)
樣本:
appcmd stop site "Default Web Site"
停止網站“Default Web Site”。
由於工作中需要定時重啟應用池及網站,新同事搞的搞了一個計劃任務定時執行操作,我藉助同事文檔進一步總結。
1、建立一個批次檔檔案,以停止、啟動服務。 批次檔的副檔名為:.bat 或.cmd。
同事的方法:
例如重啟應用池和網站都是名為IntraWebService:
//停止,等待60秒,啟動,儲存執行命令後的結果到C:\Users\jcheng\restart.log
appcmd stop apppool /apppool.name:IntraWebService >> C:\Users\jcheng\restart.log
appcmd stop site /site.name:IntraWebService>> C:\Users\jcheng\restart.log
ping -n 60 -w 1000 192.168.255.255
appcmd stop apppool /apppool.name:IntraWebService>> C:\Users\jcheng\restart.log
appcmd stop site /site.name:IntraWebService>> C:\Users\jcheng\restart.log
2、建立計劃任務定時執行bat檔案。
網路百度:
用Win7任務計劃功能來定時執行程式
大家在使用電腦的時候可能會遇到一些需要無人值守讓電腦自行執行任務後定時關機的情形,在Win7系統中,我們可以使用任務計劃設定功能結合shutdown命令靈活設定任務計劃,讓Win7系統實現定時自動執行,並且可以定製日常任務,讓Win7按指定時間頻率自動執行。
我們在Win7系統中點擊開始按鈕,依次選擇開啟所有程式—附件—系統工具,找到工作排程器即可開啟Win7系統的任務計劃設定面板。也可以點擊Win7開始按鈕,在多功能搜尋方塊中輸入任務計劃,直接從搜尋結果中開啟。
前提是你寫好了一個啟動指令碼。指令碼如下:
IIS7.0 Appcmd 命令詳解和定時重啟應用池及網站的設定