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

一条命令批量添加应用程序

c:\Windows\System32\inetsrv>for /d %i in (e:\wwwroot\*.*) do appcmd add app /site.name:"Default Web Site" /path:/%~ni /physicalpath:%i

 

 appcmd add app /site.name:"Default Web Site" /path:webview/physicalpath:E:\wwwroot\webview

使用命令行管理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

 

使用Appcmd配置IIS 7

 (2011-10-20 13:33:56)

转载

标签: 

 

appcmd

 

iis

 

commandline

 

it

分类: server2008core

在Windows Server Core 2008版本中,提供了对IIS比较多的支持,但是嫩,由于不支持PowerShell,所以没办法使用Server Core 2008 R2中的PowerShell模块,但是,IIS 7提供了命令行appcmd来实现IIS 7的管理,用来配置IIS 7是一点问题木有的。

appcmd.exe在%windir%\system32\inetsrv里,默认系统路径是木有的,需要使用绝对路径来引用appcmd,非常不方便,所以首先第一件事就是要添加appcmd的路径

在命令行窗口下打开注册表,找到

[HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]

找到Path键,将路径输入到值里面,以后就可以直接在命令行下使用appcmd了

查询所有网站信息

appcmd list sites

查询某个网站信息

appcmd list sites /name:"default web site"

查询正在运行的网站信息

appcmd list sites /state:started

获取帮助

appcmd site /?

appcmd list site /?

appcmd set site /?

appcmd add site /?

appcmd delete site /?

appcmd start site /?

其他的帮助信息与之类似,呵呵,有了这些,就可以使用帮助来配置大部分的IIS网站

新建一个网站

appcmd add site /name:"FirstSite" /id:2 /bindings:"http/*:81:" /physicalPath:"C:\MyNewSite"

appcmd add site /name:benet /id:2 /bindings:"http/192.168.1.1:80:www.benet.com" /physicalpath:"c:\benet" /serverautostart:true

删除一个网站

appcmd delete site "FirstSite"

修改一个网站信息

appcmd set site "FirstSite" /id:5

appcmd set site /site.name:"default web site" /bindings:"http/192.168.1.1:80:"

备份网站配置信息

appcmd add backup "My Backup"

恢复备份信息

appcmd restore backup "My Backup"

应用程序池 :Application Pool

列出Default Web Site的应用程序池

appcmd list apps /site.name:"Default Web Site"

获取帮助

appcmd list app /?

列出虚拟目录

appcmd list vdir /app.name:"Default Web Site/"

添加一个应用程序

appcmd add app /site.name:"Default Web Site" /path:/app1 /physicalPath:C:\inetpub\mysite\app1

为应用程序制定一个虚拟目录

appcmd add vdir /app.name:"Default Web Site/app1" /path:/vdir1 /physicalPath:C:\inetpub\mysite\app1\vdir1
新建一个应用程序池

APPCMD add apppool /name:MyAppPool

修改应用程序池

APPCMD set app "Default Web Site/" /applicationPool:MyAppPool

以文本方式列出默认应用程序池

appcmd list apppool "DefaultAppPool" /text:*

修改应用程序池的某一项属性,例如,修改managedRuntimeVersion属性值,以便使程序能运行在ASP.NET1.1环境下

appcmd set apppool "DefaultAppPool" /managedruntimeversion:v1.1

修改底层属性,也就是嵌套的属性值

APPCMD set apppool "DefaultAppPool" /processModel.pingingEnabled:false

检查当前的Web请求

appcmd list requests

以后的应用很多,已经超出我对IIS的理解了,木哈哈。等有IIS的具体应用再说了

更具体的设置可以参考下面这篇文章

http://learn.iis.net/page.aspx/114/getting-started-with-appcmdexe/