利用PowerShell安装IIS或启用IIS的方法
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
我们在做一些开发的时候,测试环境中经常需要用到iis,每次通过图形界面启用IIS以及相关组件得勾选很多东西,感觉繁琐而且又麻烦,如阁下正好用的是2012或者win8甚至以上,Windows server 2012 R2和Windows 8.1操作系统上,使用PowerShell一行命令即可哦。具体指令请参阅下面:
Windows Server 2012
Install-WindowsFeature web-server -IncludeAllSubFeature |
Windows 8.1
Enable-WindowsOptionalFeature –online –featurename IIS-WebServerRole |
==================华丽分割线====================================
我们也可以用VBS启动PowerShell来安装IIS,具体代码如下:
# eastmoney
public
tools# version: v1.0.2# create by XuHoo, 2016-9-27#
try
{
Import-Module ServerManager -ErrorAction Stop
Import-Module BitsTransfer -ErrorAction Stop
}
catch
{
Write-Warning
"$_"
;
exit
}
$packages_path
=
"D:\software"
# Packages storage directoryfunction 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
}
以上功能描述
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。
===================华丽分割线====================================
通过PowerShell选择选项安装IIS 8.0
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!