近期由于新上架一批Windows平台服务器,并加入负载均衡中使用,故每台服务器上的IIS部署一致,如果在每台服务器上去重复操作是一项很烦人的事儿,结合之前部署的puppet及mco在Puppet服务端将脚本和要用到的程序及文件部署到Files目录下 利用MCO直接推送到新上架的服务器中进行部署和并执行脚本,现就将其建立IIS站点部署这一部分脚本共享给大家,其中有什么不足之处,还请大牛们多多指教:

# ************************************************************
# *                                                          *
# *                 Powershell部署IIS脚本                    *
# *                                                          *
# ************************************************************
# 作者:网上管家婆运维工程师--Sanddy QQ:442405
# 日期:2014-06-02
#set-executionpolicy remotesigned
Import-Module WebAdministration  #导入IIS模块
# 建立IIS站点所用参数(修改以下参数可以建立不同的站点)
#################################################################################################
$sitePort = 80  #端口
$SiteName = "test"    #站点名
$SiteAppPools = $SiteName  #进程池名
$SiteAppPoolsModel = "Classic"  #进程池使用通道模式
$AppPoolType = "Network Service"        #指定应用程序池要使用的帐户标识(0 >Local Service 1 >Local System  2 >Network Service  3 >User 4 >ApplicationPoolIdentity)
$managedRuntimeVersion = "v4.0"  #.net版本
$WebSitePath = "D:\OM_WebSite\Test" #站点程序路径
$HostHeader1 = "test.test.com.cn"      #绑定站点域名
$HostHeader2 = "test.test.com"      #绑定站点域名
$defaultDocument = "Default.html"
$IISLogFile = "d:\LogFiles\$SiteName" #IIS日志路径
$net32Or64 = $true  #是否启用.net32模式#################################################################################################
#创建IIS应用程序池
function BuildAppPool(){$AppPool = "iis:\AppPools\" + $SiteAppPools$existAppPool = Test-Path $AppPoolif($existAppPool -eq $false){#创建应用程序池.$Env:windir\system32\inetsrv\appcmd.exe add apppool /name:$SiteAppPools /managedRuntimeVersion:$managedRuntimeVersion  /managedPipelineMode:$SiteAppPoolsModel#指定应用程序池要使用的帐户标识.$Env:windir\system32\inetsrv\appcmd.exe set config /section:applicationPools /[name="'$SiteAppPools'"].processModel.identityType:NetworkService#设置应用程序池使用.net版本.$Env:windir\system32\inetsrv\appcmd.exe add apppool /name:$SiteAppPools /managedRuntimeVersion:$managedRuntimeVersion  /managedPipelineMode:$SiteAppPoolsModel#限制进程使用内存上限为1.5G.$Env:windir\system32\inetsrv\appcmd.exe set config /section:applicationPools /[name="'$SiteAppPools'"].recycling.periodicRestart.privateMemory:1572864#指定进程固定回收时间.$Env:windir\system32\inetsrv\appcmd.exe set apppool /apppool.name: $SiteAppPools /recycling.periodicRestart.time:1.00:00:00#启用.net32模式.$Env:windir\system32\inetsrv\appcmd.exe set config /section:applicationPools /[name="'$SiteAppPools'"].enable32BitAppOnWin64:$net32Or64#是否自动启动.$Env:windir\system32\inetsrv\appcmd.exe set config /section:applicationPools /[name="'$SiteAppPools'"].autoStart:$true}
}#创建IIS应用站点
function BuildSite(){$appSitePath = "iis:\sites\"+$SiteName$existweb = Test-Path $appSitePathif(!$existweb){New-Website -name $SiteName -port $sitePort  -ApplicationPool $SiteAppPools -PhysicalPath $WebSitePath.$Env:windir\system32\inetsrv\appcmd.exe set site $SiteName /bindings:"http/*:80:$HostHeader1,http/*:80:$HostHeader2".$Env:windir\system32\inetsrv\appcmd.exe set config /section:directoryBrowse /enabled:false    }else{echo "'$SiteName' is Already exists"}
}#设置IIS日志记录路径
function CreatIISLogFile(){.$Env:windir\system32\inetsrv\appcmd.exe set site $SiteName "-logfile.directory:$IISLogFile"
}#为F5设备创建ISPAI筛选器
function CreatISP(){$x = [string](.$Env:windir\system32\inetsrv\appcmd.exe list config $SiteName /section:isapiFilters)if ($x -like "*F5XForwardedFor*"){echo "isapiFilters is Already exists"}else{.$Env:windir\system32\inetsrv\appcmd.exe unlock config $SiteName "-section:system.webServer/isapiFilters".$Env:windir\system32\inetsrv\appcmd.exe set config $SiteName /section:isapiFilters /"+[name='F5XForwardedFor',path='$Env:windir\System32\F5XForwardedFor.dll',enabled='true']"}
}function RunBuild(){BuildAppPoolBuildSite    CreatIISLogFileCreatISP.$Env:windir\system32\inetsrv\appcmd.exe start site $SiteName
}
RunBuild

转载于:https://blog.51cto.com/starlight/1425210

利用PowerShell脚本部署IIS站点相关推荐

  1. 使用PowerShell脚本部署定时器到MOSS2010(原创)

    第一章 前言 在此次练习中,您将了解到如何使用PowerShell和使用SharePoint 2010构建的PowerShell加载项.我这里使用Windows PowerShell ISE来编辑Po ...

  2. 利用Powershell自动部署asp.net mvc网站项目 (一)

    这一篇中我们会写一些关于自动化部署的代码.我们会使用 Powershell 书写这类代码. 你将发现这篇文章中涉及的东西非常具体,有的要求甚至相当苛刻且可能不具有通用性.这是因为部署从来都是跟环境打交 ...

  3. 利用PowerShell进行数据库部署冒烟测试

    PowerShell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能,也可以调用Azure.在Win10里面附带PowerShell V5,Po ...

  4. Windows Azure Cloud Service (23) 使用Full IIS模式部署多站点和虚拟目录

    <Windows Azure Platform 系列文章目录> 本章我们将介绍如何使用Windows Azure的Full IIS模式部署多站点和虚拟目录. 首先我们先新建一个Window ...

  5. SharePoint自动化部署,利用PowerShell 导入用户至AD——PART II

    这是对上一篇文章<SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户>进行补充.开发时,为了测试和演示,我们往往需要经常性的把用户添加到AD中.数据量小的时候 ...

  6. bat脚本交互输入_测评 | 不使用powershell运行 PowerShell 脚本的工具汇总

    不使用 powershell.exe 的情况下,可以运行 powershell 脚本和命令么? 可以的! 本文总结了6款可直接运行 powershell 脚本和命令的工具,献给所有的渗透测试人员和红队 ...

  7. 如何利用Gitlab-CI持续部署到远程机器?

    长话短说,今天聊一聊使用Gitlab-CI 自动部署到远程服务器. 如果看过<基于docker-compose的Gitlab CI/CD实践&排坑指南>这篇文章的朋友,会注意到我是 ...

  8. winexec函数 执行powershell 脚本_丢掉 Powershell.exe 来渗透测试

    0x00 前言 作为一个 pentest,真的是不需要 Powershell 吗?如果是,我真的会觉得不可思议. 但是,如果是因为某些策略,阻止了你对 powershell.exe 的访问,那该怎么办 ...

  9. Windows Server 2003 部署IIS、部署DNS,Windows Server 2003搭建网站,实现同网段主机访问网站

    zWinserver 2003部署网站步骤: 目的: 让winserver 2003做网站服务器,接着再继续部署dns,让该服务器也做dns服务器,要想让同网段也访问得到该dns服务器域名解析后的网站 ...

最新文章

  1. ABAP git客户端
  2. you need to build uWSGI with SSL support to use the websocket handshake api function !!!
  3. android后台获取view,android – 如何获取当前显示在AdapterView中的项目?
  4. linux 下的文件属性,Linux 下文件属性介绍(示例代码)
  5. 图解算法之排序算法(2)——选择排序
  6. 用GZIP来压缩socket传输的序列化的类
  7. EasyUI 二级联动
  8. 本科毕设研究记录(一)————小样本综述
  9. “防护左移”赋能开发人员,实时修复代码安全问题
  10. linux 3.16内核下载,linux块设备驱动程序示例(适用于高版本内核3.16.0 - 3.19.0等,亲测可用)...
  11. WPS_Word空白页删除
  12. php excel多级下拉菜单自动生成,Excel下拉菜单怎么做 多级联动+自动匹配教程
  13. 云从科技在科创板IPO注册获批,收入远高于格灵深瞳同期
  14. 策略学习(Policy-Based Reinforcement Learning)
  15. 学了python能找人吗_只学python能找工作吗
  16. R语言多元Logistic逻辑回归 应用案例
  17. 程序员小灰2017-2019年原创汇总
  18. 维度、度量与多维数据
  19. JAVA入门————API(常用API)
  20. 线性代数学习笔记7-3:特征值的应用——解微分方程、矩阵的指数函数

热门文章

  1. 如何选购手机移动电源/充电宝?
  2. mockito 外部接口_Mockito入门
  3. arcgis栅格计算器python教程_arcgis 栅格计算器(Spatial Analyst/Raster Calculator)
  4. 同名在线查询系统微信小程序源码下载支持多种流量主
  5. 通过Servlet生成验证码图片 (转孤傲苍狼)
  6. 三国志战略版:Daniel_周泰分析
  7. 微信小程序:Swiper组件的小圆点的位置如何更改
  8. svn启动停止重启等命令
  9. 前端:下载文件(多种方法)
  10. 关于搭建XXX规避运营商劫持的问题