设为首页 收藏本站
查看: 832|回复: 0

[经验分享] IIS7Appcmd 命令详解

[复制链接]

尚未签到

发表于 2017-12-28 22:06:01 | 显示全部楼层 |阅读模式
  IIS7 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 ...]

  使用指定的设置创建新的虚拟站点。至少,必须提供站点名称和>  支持的参数:
  /name (必需) 站点名称

  /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:

  使用指定的>  程序。
  appcmd add site /name:"My New Site" /id:2 /bindings:http/*:81: /physicalPath:"c
  :\inetpub\mynewsite"

  使用指定的>  定物理路径的根应用程序。
  appcmd add site /name:"My New Site" /bindings:http/*:81:

  使用绑定创建新站点“我的新站点”,并自动生成站点>  任何应用程序。
  配置虚拟站点
  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>  -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 添加应用程序进城池
  appcmd.exe add apppool  /name:test.com  /managedRuntimeVersion:"v4.0" /managedPipelineMode:"Integrated"
  2 添加站点,指定站点名,绑定,物理路径
  appcmd.exe add site /name:"test.com"  /id:1 /bindings:http/*:81: /physicalpath:"E:\webroot\test.com\Web"
  3 指定站点的进城池
  appcmd.exe set site /site.name:"test.com" /[path='/'].applicationPool:test.com
  4 指定站点的默认文档为index.aspx
  

appcmd.exe set config "test.com/" /section:defaultDocument /+files.[@start,value='index.aspx'] /commit:"test.com"  

  5 把特定目录的脚本执行权限关闭
  appcmd set config "test.com/Download" /section:handlers /accessPolicy:Read
  6导出一个机器上的所有应用进程池
  %windir%/system32/inetsrv/appcmd list apppool /config /xml > c:/apppools.xml
  7 导出1个机器上的所有站点
  %windir%/system32/inetsrv/appcmd list site /config /xml > c:/sites.xml
  8 导入所有进程池
  %windir%/system32/inetsrv/appcmd add apppool /in < c:/apppools.xml
  9 导入所有站点
  %windir%/system32/inetsrv/appcmd add site /in < c:/sites.xml
  以下是批处理脚本
  10 给站点文件授权
  ICACLS e:\webroot\test.com\  /inheritance:e /grant:R "IIS AppPool\test.com":R
  ICACLS e:\webroot\test.com\*  /inheritance:e /grant:R "IIS AppPool\test.com":R
  ICACLS e:\webroot\test.com\download   /grant:M "IIS AppPool\test.com":R
  ICACLS e:\webroot\test.com\download\*   /grant:M "IIS AppPool\test.com":R
  

*******************************************************  
set Sitename=test.com
  
set SitePath=E:\webroot\test.com
  
set LogPath=G:\logfile
  
set defaultDocument='index.aspx'
  
set Is32BitApp =False
  
set BackPort=99
  
set netversion=v4.0
  
set Cache=Cache
  
%windir%\system32\inetsrv\Appcmd add apppool  /name:%Sitename%  /managedRuntimeVersion:%netversion% /managedPipelineMode:"Integrated" /enable32BitAppOnWin64:False
  
%windir%\system32\inetsrv\Appcmd add site /name:"%Sitename%"  /id:100 /bindings:http/*:%BackPort%:,http/*:80:%sitename%  /physicalpath:%SitePath% /logfile.directory:%LogPath%
  
%windir%\system32\inetsrv\Appcmd set site /site.name:"%Sitename%" /[path='/'].applicationPool:%Sitename%
  
%windir%\system32\inetsrv\Appcmd set config "%Sitename%/" /section:defaultDocument /+files.[@start,value=%defaultDocument%] /commit:"%Sitename%"
  
ICACLS %SitePath% /inheritance:e /grant:R "IIS AppPool\%SiteName%":R
  
ICACLS %SitePath%\* /inheritance:e /grant:R "IIS AppPool\%SiteName%":R
  
ICACLS %SitePath%\%Cache% /inheritance:e /grant:R "IIS AppPool\%SiteName%":R
  
ICACLS %SitePath%\%Cache% /inheritance:e /grant:R "IIS AppPool\%SiteName%":R
  

  
水域 2017-04-04 14:44:51
  
set Sitename=test.com
  
set SitePath=E:\webroot\test.com
  
set LogPath=G:\logfile
  
set defaultDocument='index.aspx'
  
set Is32BitApp =False
  
set BackPort=99
  
set netversion=v4.0
  
set Cache=Cache
  
%windir%\system32\inetsrv\Appcmd add apppool  /name:%Sitename%  /managedRuntimeVersion:%netversion% /managedPipelineMode:"Integrated" /enable32BitAppOnWin64:False
  
%windir%\system32\inetsrv\Appcmd add site /name:"%Sitename%"  /id:100 /bindings:http/*:%BackPort%:,http/*:80:%sitename%  /physicalpath:%SitePath% /logfile.directory:%LogPath%
  
%windir%\system32\inetsrv\Appcmd set site /site.name:"%Sitename%" /[path='/'].applicationPool:%Sitename%
  
%windir%\system32\inetsrv\Appcmd set config "%Sitename%/" /section:defaultDocument /+files.[@start,value=%defaultDocument%] /commit:"%Sitename%"
  
ICACLS %SitePath% /inheritance:e /grant:R "IIS AppPool\%SiteName%":R
  
ICACLS %SitePath%\* /inheritance:e /grant:R "IIS AppPool\%SiteName%":R
  
ICACLS %SitePath%\%Cache% /inheritance:e /grant:R "IIS AppPool\%SiteName%":R
  
ICACLS %SitePath%\%Cache% /inheritance:e /grant:R "IIS AppPool\%SiteName%":R
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-429125-1-1.html 上篇帖子: ArcGIS 10.0发布缓存地图服务(详细版) 下篇帖子: 利用其它带文件防护功能的软件防止*.asp;*.jpg写入文件。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表