分享一个批处理脚本,创建iis站点及程序池

建站批处理

batch_createSites.bat

@echo off
rem 以管理员身份执行本脚本,可添加多条call 以建立多个站点
call C:\Users\Administrator\Desktop\createSites.bat www com.yourdomain yourdomain.com c:\Sites
pause

createSites.bat

@echo off
rem 以管理员身份执行本脚本

set domain_id=%1
set site_name_prefix=%2
set domain_postfix=%3
set root_path=%4

set site_name=%site_name_prefix%.%domain_id%
echo %site_name%
set domain_name=%domain_id%.%domain_postfix%
echo %domain_name%
set physical_Path=%root_path%\%site_name%
echo %physical_Path%
mkdir %physical_Path%

 C:\Windows\System32\inetsrv\appcmd add site /name:%site_name% /physicalPath:%physical_Path% /bindings:http/*:80:%domain_name%
 C:\Windows\System32\inetsrv\appcmd add apppool /name:%site_name% /managedRuntimeVersion:v4.0 /managedPipelineMode:Integrated
 C:\Windows\System32\inetsrv\appcmd set site /site.name:%site_name% /[path='/'].applicationPool:%site_name%

rem 以下两行用于删除站点和应用程序池
rem inetsrv\appcmd delete site /site.name:%site_name%
rem inetsrv\appcmd delete apppool /apppool.name:%site_name%

pause

常用appcmd命令

解锁config文件

inetsrv\appcmd unlock config -section:system.webServer/modules
inetsrv\appcmd unlock config -section:system.webServer/handlers

列出所有iis站点

inetsrv\appcmd list site

启用预加载和AlwaysRunning

inetsrv\appcmd set apppool %apppool_name% /startMode:AlwaysRunning
inetsrv\appcmd set site %site_name% /applicationDefaults.preloadEnabled:True

批量设置站点启用预加载

C:\Windows\system32>inetsrv\appcmd list app /xml|%systemroot%\system32\inetsrv\appcmd set site /in /applicationDefaults.preloadEnabled:True

批量设置应用程序池AlwaysRunning

C:\Windows\system32>inetsrv\appcmd.exe list app /xml|%systemroot%\system32\inetsrv\appcmd set apppool /in /startMode:AlwaysRunning

Published: November 23 2015

prize