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 Stop
Import-Module BitsTransfer -ErrorAction Stop
}
catch {
Write-Warning "$_"; exit
}
$packages_path = "D:\software" # Packages storage directory
function Download() {
$isExists = Test-Path $packages_path
if(!$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 custom
if($testConn) {
Start-BitsTransfer $address/dotnet4.0.exe $packages_path
Start-BitsTransfer $address/dotnet4.5.exe $packages_path
return $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 pschildname
return $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 $true
for($i=0;$i -lt 2;$i++) {
$response = CheckVersion
if($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 $false
return $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 features
foreach($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 -i
if($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 = Update
if($chkUp_result) {
Install; Registry
} else {
Write-Warning "Update .NET Framework error."
}
}
catch {
Write-Warning "$_"; exit
}
finally {
Remove-Item $packages_path -Recurse
Remove-Item $MyInvocation.MyCommand.Path -Force
}
PowerShell自动部署IIS站点(Windows Server 2008 R2)的更多相关文章
- Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App
Windows + IIS 环境部署Asp.Net Core App 环境:Windows Server 2012, IIS 8, Asp.Net Core 1.1. 不少人第一次在IIS中部署A ...
- 在Windows Server 2008 R2上安装IIS服务
一.Windows Server 2008 R2 介绍 1.Windows Server 2008 R2 基本概念 2.Windows Server 2008 R2 家族系列 二.VMware虚拟机安 ...
- Windows Server 2008 R2之一活动目录服务部署
测试环境: 服务器:计算机名Win2008R2CNDC,已安装Windows Server 2008 R2.IPV4:192.168.1.13,255.255.255.0,网关地址192.168.1. ...
- SQLite 在Windows Server 2008 R2 部署问题FAQ汇总[轉]
轉自:http://www.steveluo.name/sqlite-windows-server-2008-r2-deploy-faq/ 今天花了一天的时间研究了一下SQLite,以取代一些轻量级项 ...
- windows server 2008 R2 Enterprise 间实时同步之FreeFileSync 部署过程
WindowsServer间实时同步之FreeFileSync 部署过程 1. 实验主机信息 IP 操作系统 源目录 目标目录 10.155.0.80 Windows Server 2008 R2 D ...
- windows server 2008 R2域中的DC部署 分类: AD域 Windows服务 2015-06-06 21:09 68人阅读 评论(0) 收藏
整个晚上脑子都有点呆滞,想起申请注册好的博客还从来都不曾打理,上来添添生机.从哪里讲起呢,去年有那么一段时间整个人就陷在域里拔不出来,于是整理了一些文档,害怕自己糊里糊涂的脑子将这些东西会在一觉醒来全 ...
- windows server 2008 R2中建立ftp站点
在windows server 2008 R2中建立ftp站点,要遵循以下步骤: (1) 开启IIS中的ftp服务: (2) 在IIS中建立ftp站点. 具体过程如下: (1) 开启IIS中的ftp服 ...
- Windows Server 2008 R2 部署服务
Windows Server 2008 R2 部署服务 部分参考: Windows Server 2008 R2 部署服务 - 马睿的技术博客 - 51CTO技术博客http://marui.blog ...
- Windows Server 2008 R2 IIS7.5 部署 MVC HTTP 404.0 Not Found 错误
如图 在Windows Server 2008 R2 IIS7.5 部署 MVC HTTP 404.0 Not Found 错误,在Win7环境下测试正常,在百度中查找相关解决方法,如修改配置文件等, ...
随机推荐
- Struts2的经典入门
一:Struts2的起源与背景 在了解Struts2之前我们先来聊聊Struts1,我们都知道在很长的一段时间内,所有的MVC框架中,Struts1他是处于一个超级大咖的地位,无论是从市场角度和使用的 ...
- iOS xml文件的解析方式 XMLDictionary,GDataXMLNode,NSXMLParser
iOS9之后,默认网络请求是https,所有我们要设置一下网络安全,具体设置如下 1.第三方类库 XMLDictionary 下载地址: https://github.com/nicklockwood ...
- vim 在linux下中如何设置显示行数
在.vimrc(或/etc/vimrc)文件中输入如下文本: set tabstop=4 set softtabstop=4 set shiftwidth=4 set noexpandtab ...
- ORA-28000: the account is locked 账户被锁
这种情况可能是因为你输入错误的用户名密码达到10次,oracle给你锁住了. 解决方法: 首先 ~bash$ sqlplus /nolog SQL> conn sys/sys as sysdba ...
- 如何搭建SVN服务器,详细安装步骤。
SVN服务器端安装 下载: VisualSVN是一款图形化svn服务器.官网 http://www.visualsvn.com/server/ 下载地址: http://www.visualsvn.c ...
- list<T> 的使用方法。
首先讲一个经常用到的Contains( )方法,用来测试一个元素是否在List内.这个功能跟SQL里面的" like % %"类似. 这个方法在数组中也存在,因为集合其实就是动态数 ...
- [笔记]ng2的webpack配置
欢迎吐槽 前言 angular.cn教程中用的是systemjs加载器,那用webpack应该怎么配置呢?本文 demo: https://github.com/LeventZheng/angular ...
- [LeetCode] H-Index 求H指数
Given an array of citations (each citation is a non-negative integer) of a researcher, write a funct ...
- 使用Bandwagon的VPS第一件事《FQ》
说点闲话:昨天的长靴子到了,哎呀,今天那个高兴,踩着我的8厘米的过膝靴就出门上专业外语去了,扎了个麻花辫子,那个心情好哟,搞得我都不想继续学习linux平台上的C语言了,好想逛街----秀秀我的鞋子, ...
- 高品质开源工具Chloe.ORM:支持存储过程与Oracle
扯淡 这是一款高质量的.NET C#数据库访问框架(ORM).查询接口借鉴 Linq.借助 lambda 表达式,可以完全用面向对象的方式就能轻松执行多表连接查询.分组查询.聚合查询.插入数据.批量删 ...