PowerShell自动部署IIS站点(Windows Server 2008 R2)
1、功能描述
1. 连接软件源服务器下载.NET Framework 4.0、.NET Framework 4.5。
2. 检测并判断当前.NET Framework版本是否小于v4.0,如果小于则进行升级。
3. 安装IIS组件,安装完成后删除软件及脚本。
在升级.NET Framework时,是先从3.5升级(可以通过执行命令"Add-WindowsFeature As-Net-Framework"直接安装3.5),然后依次升级4.0、4.5。
2、实现
源码如下:
try {Import-Module ServerManager -ErrorAction StopImport-Module BitsTransfer -ErrorAction Stop } catch {Write-Warning "$_"; exit }$packages_path = "D:\software" # Packages storage directoryfunction Download() {$isExists = Test-Path $packages_pathif(!$isExists) {New-Item -ItemType Directory $packages_path}# instantiate a socket object,# Try connect to download the source$testConn = New-Object Net.Sockets.TcpClient$testConn.Connect("$address", 80) # $address need to customif($testConn) {Start-BitsTransfer $address/dotnet4.0.exe $packages_pathStart-BitsTransfer $address/dotnet4.5.exe $packages_pathreturn $true} else {return $false} }function CheckVersion {# To detect the .NET Framework whether exists in the registry$isExists = Test-Path "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\"if(!$isExists) {return $false} else {# Returns the current .NET Framework version$version = gci "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP" | sort pschildname -desc | select -fi 1 -exp pschildnamereturn $version} }function Update {Add-WindowsFeature As-Net-Framework # Update .NET Framework 3.5# The first cycle:# Perfrom CheckVersion function, returns the value assigned to $response# If $response < 4.0, start install dotnet 4.0 and dotnet 4.5# Enter the second loop# The second cycle:# Again to perfrom CheckVersion function# If the installation is successful,# the value of variable $response at this time will be greater than 4.0,# the output corrent .NET Framework version and returns $truefor($i=0;$i -lt 2;$i++) {$response = CheckVersionif($response -lt "v4.0") {Start-Process -Wait $packages_path\dotnet4.0.exe -ArgumentList "/quiet"Start-Process -Wait $packages_path\dotnet4.5.exe -ArgumentList "/quiet"} else {Write-Host "DotNET current version is: $response"return $true}}# Above cycle without entering the return statement,# then .NET Framework update failed, this function will return the $falsereturn $false }function Install {$features = Get-WindowsFeature Web-Server,Web-Static-Content,Web-Default-Doc,Web-Http-Errors,Web-Http-Redirect,Web-Asp-Net,Web-Net-Ext,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Http-Logging,Web-Request-Monitor,Web-Filtering,Web-IP-Security,Web-Stat-Compression,Web-Mgmt-Console,Web-WHC# Install IIS featuresforeach($item in $features) {Add-WindowsFeature $item}Remove-WindowsFeature Web-Dir-Browsing # Delete "Web-Dir-Browsing" function }function Registry {$is64bit = [IntPtr]::Size -eq 8 # To determine whether a system is 64-bit$isapiPath_32 = "$env:windir\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll"Set-Location "$env:windir\Microsoft.NET\Framework\v4.0.30319\"; .\aspnet_regiis.exe -iif($is64bit) {$isapiPath_64 = "$env:windir\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"Set-Location "$env:windir\Microsoft.NET\Framework64\v4.0.30319\"; .\aspnet_regiis.exe -i} }try {$chkGet_result = Download$chkUp_result = Updateif($chkUp_result) {Install; Registry} else {Write-Warning "Update .NET Framework error."} } catch {Write-Warning "$_"; exit } finally {Remove-Item $packages_path -RecurseRemove-Item $MyInvocation.MyCommand.Path -Force }
转载于:https://www.cnblogs.com/XuHoo/p/5916974.html
PowerShell自动部署IIS站点(Windows Server 2008 R2)相关推荐
- Exchange Server 2010部署(一)部署Windows Server 2008 R2域控制器
(一)部署企业中第一台Windows Server 2008 R2域控制器 一.DC网络属性的基本配置 1.服务器DC的IP地址一定要是静态的IP地址,虽然不一定需要配置默认网关,但是DNS服务器指向 ...
- 在线文档预览解决方案-Office Web Apps在Windows Server 2008 R2部署教程
由于接触到的服务器一般安装较多的是Windows Server 2008 R2版本的服务器,在此记录一下部署过程中踩得坑 优势:可以同时支持pc端和手机端,支持文件类型包括 doc,ppt,xls,d ...
- 部署企业中第一台Windows Server 2008 R2域控制器
部署企业中第一台Windows Server 2008 R2域控制器 前言 对于活动目录(AD)来讲,从Windows 2000到现在有非常多的文章在对其进行探讨,微软公司每推出一代新的Window ...
- 一键安装php环境 iis,Windows Server 2008(R2) 一键安装PHP环境(PHP5.3+FastCGI模式
本文通过最简单快捷的方式,讲述从崭新的Windows Server 2008(R2),通过护卫神·PHP套件一键部署PHP运行环境的过程,十分简单. 套件包下载地址: //www.jb51.net/s ...
- Windows Server 2008 R2 活动目录服务部署 (一)
测试环境: 硬件环境:IBM X3250M3 软件环境:wmware esxi 5.1.0 客户端:VMware vSphere Client 5.1.0 服务器:计算机名LMDC1,已安装Windo ...
- windows多个服务器之间共享文件夹,windows server 2008 R2 部署NFS,实现多台服务器间、客户端间的共享目录。...
如何通过Windows Server 2008 R2建立NFS存储服务? 通过Windows Server 2008 R2,我们可以很容易地将其作为一台NFS存储服务器,得到一个NFS软存储,轻松解决 ...
- dell服务器r730老自动重启_Dell R730服务器安装windows server 2008 R2蓝屏问题
前几天在dell R730服务器上安装windows server 2008 R2,安装过程蓝屏: 查询相关资料,13G服务器OS-driver比较新,其中不包含windows server 2008 ...
- 计算机组播相关服务,Windows Server 2008 R2 之十八WDS(部署服务)之二
一.有关说明 1.捕获映像.一种将客户端计算机启动到的启动映像类型,用于以 .wim 文件形式捕获操作系统.必须首先创建捕获映像,然后才能创建自定义的安装映像.在使用捕获映像进行捕获之前,必须在待捕获 ...
- windows server 2008 r2 IIS PHP
在Windows server 2008 r2 的IIS(7.5)中搭建PHP运行环境: 一:安装IIS服务器(没有装IIS) 1.我的电脑>>右键>>管理(Manage) 2 ...
- 注意: 如何解决Windows Server 2008 R2 EFI启动模式安装2019年8月更新KB4512486 KB4512506 KB4512514后自动进入修复模式,无法正常启动问题!!!
2019.12月发现累积几个月的更新没有重启动, 重启动后BIOS模式也遇到启动自动进入恢复模式了,使用 dism.exe /image:c:\ /cleanup-image /revertpendi ...
最新文章
- 百面机器学习之模型评估
- EST:李芳柏团队揭示微生物介导的砷氧化耦合硝酸还原
- Scala传名参数(By-Name)
- 洛谷1006 传纸条
- ThreadLocal封装SimpleDateFormat
- Linux 命令之 unzip -- 解压缩文件
- java createstatement,createStatement参数说明
- C++ | Qt 获取局域网中存在的主机(IP以及主机名)
- nodejs版本更新问题:express不是内部或外部命令
- Controller中servletFileUpload.parseRequest(request)解析为空
- ipython tesseract_python使用Tesseract库识别验证
- 苹果小企业项目申请App Store Small Business Program
- 智能交通卡口和电子警察解决方案
- form-making爬坑笔记(jeecg项目替换表单设计器)
- unity LineRender结合多点触摸 实现拖拽 重复画线
- 如何成为优秀的UI设计师
- bmob php支付,GitHub - bmob/bmob-php-sdk: PHP SDK相关源码
- VSTO插件供WPS使用
- 使用PlayCanvas制作一个简单的小游戏(一)
- bias and variance在机器学习中的应用
热门文章
- python编写量化交易程序英语_Python量化交易开源框架:AmazingQuant
- opencv 梯度幅值_20、 OpenCV导数和梯度
- python设置字符串的格式_Python中的字符串格式
- chrome 模拟点击_详解爬虫模拟登陆的三种方法
- Kubernetes 小白学习笔记(21)--kubernetes的运维-管理Lable
- 用php解二元一次方程程序,编写一个程序,求二元一次方程组,编写一个程序,求二元一次方程组的解...
- python学习第七天--文件系统常用模块os,os.path,pickle
- bootstart讲义,不过忘了是哪个老师的了
- 二十五、JAVA多线程(三、线程同步)
- PHP JAVA BASE64 encode decode