最近接到一个任务:使用批处理命令完成以下几个功能。
- Stop IIS Service
- Start IIS Service
- Stop AppPool
- Start AppPool
- Create AppPool
- Create Application Path
经过一番搜索也有些头绪,便开始了批处理文件的编写……
@echo off&cls
:: For AppPool
@set apppoolname="New AppPool"
:: true/false
@set loaduserprofile="false"
:: LocalSystem/LocalService/NetworkService/ApplicationPoolIdentity/SpecificUser
@set processmodelindentytype="NetworkService"
:: v4.0/v2.0
@set runtimeversion="v4.0"
:: Integrated/Classic
@set pipelinemode="Integrated"
:: For WebSite
@set websitename="New WebSite"
@set ipaddress="*"
@set port="8087"
@set sitePath="C:\website"
:: For Add Application Bindings
@set addbindingwebsitename="New WebSite"
:: http/https/net.tcp/net.pipe/met.msmq/msmq.formatname
@set addbindingsprotocol="https"
@set addbindingsipaddress="192.168.238.1"
@set addbindingsport="8089"
@set addsslcertificate="IIS Express Development Certificate"
:: For Delete
@set deleteapppoolname="New AppPool"
@set deletewebsitename="New WebSite"
GOTO MENU
:MENU
echo.
echo #############################
echo 1 Stop IIS Service
echo.
echo 2 Start IIS Service
echo.
echo 3 Stop AppPool
echo.
echo 4 Start AppPool
echo.
echo 5 Create AppPool
echo.
echo 6 Delete AppPool
echo.
echo 7 Create Application Path
echo.
echo 8 Add Application Bindings
echo.
echo 9 Delete Application Path
echo #############################
echo.
set/p a=Please select a function :
echo.
if %a%==1 goto cmd1
if %a%==2 goto cmd2
if %a%==3 goto cmd3
if %a%==4 goto cmd4
if %a%==5 goto cmd5
if %a%==6 goto cmd6
if %a%==7 goto cmd7
if %a%==8 goto cmd8
if %a%==9 goto cmd9
:cmd1
echo You choosed : Stop IIS Service
iisreset /STOP
goto MENU
:cmd2
echo You choosed : Start IIS Service
net start w3svc
goto MENU
:cmd3
echo You choosed : Stop AppPool
c:\windows\system32\inetsrv\AppCmd.exe stop apppool /apppool.name:%apppoolname%
goto MENU
:cmd4
echo You choosed : Start AppPool
c:\windows\system32\inetsrv\AppCmd.exe start apppool /apppool.name:%apppoolname%
goto MENU
:cmd5
echo You choosed : Create AppPool
C:\Windows\System32\inetsrv\appcmd.exe add apppool /name:%apppoolname% -processModel.loadUserProfile:%loaduserprofile% -processModel.identityType:%processmodelindentytype% /managedRuntimeVersion:%runtimeversion% /managedPipelineMode:%pipelinemode%
goto MENU
:cmd6
echo You choosed : Delete AppPool
C:\Windows\System32\inetsrv\appcmd.exe delete apppool /apppool.name:%deleteapppoolname%
goto MENU
:cmd7
echo You choosed : Create Application Path
C:\Windows\System32\inetsrv\appcmd.exe add site /name:%websitename% /bindings:http/%ipaddress%:%port%: /applicationDefaults.applicationPool:%apppoolname% /physicalPath:%sitePath%
goto MENU
:cmd8
echo You choosed : Add Application Bindings
C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:%addbindingwebsitename% /+bindings.[protocol='%addbindingsprotocol%',bindingInformation='%addbindingsipaddress%:%addbindingsport%:%addsslcertificate%']
goto MENU
:cmd9
echo You choosed : Delete Application Path
C:\Windows\System32\inetsrv\appcmd.exe delete site /site.name:%deletewebsitename%
goto MENU
Pause
goto menu
其中的Delete AppPool,Add Application Bindings,Delete Application Path是根据需求添加的功能。
注意:
1. 跑之前需要先在文件里把应用池和网站信息配置好(区分大小写,要注意);
2. 因为涉及权限问题,需要以“管理员身份”运行此文件。
3. Add Application Bindings这个功能里要注意单引号不能丢,bindingInformation和前面的逗号不能有空格。
4. 有什么问题请留言,共同讨论。