首页 > 系统 > Windows > 正文

Windows Server 2008 R2 PowerShell自动部署IIS站点的代码

2020-03-01 13:21:21
字体:
来源:转载
供稿:网友
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、实现

  源码如下:

# eastmoney html' target='_blank'>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:SOFTWAREMicrosoftNET Framework Setup"    if(!$isExists) {        return $false    } else {        # Returns the current .NET Framework version        $version = gci "HKLM:SOFTWAREMicrosoftNET Framework SetupNDP" | 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_pathdotnet4.0.exe -ArgumentList "/quiet"            Start-Process -Wait $packages_pathdotnet4.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:windirMicrosoft.NETFramework4.0.30319spnet_isapi.dll"    Set-Location "$env:windirMicrosoft.NETFramework4.0.30319"; .spnet_regiis.exe -i    if($is64bit) {        $isapiPath_64 = "$env:windirMicrosoft.NETFramework644.0.30319spnet_isapi.dll"        Set-Location "$env:windirMicrosoft.NETFramework644.0.30319"; .spnet_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}

以上就是Windows Server 2008 R2 PowerShell自动部署IIS站点的代码详解的详细内容,更多请关注 其它相关文章!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表