1. 기능 설명
1. 소프트웨어 소스 서버에 연결하여 .NET Framework 4.0, .NET Framework 4.5를 다운로드합니다.
2. 현재 .NET Framework 버전이 v4.0 미만인지 감지 및 확인하고 v4.0 미만인 경우 업그레이드합니다.
3. 설치IIS 구성 요소 설치가 완료되면 소프트웨어와 스크립트를 삭제합니다.
.NET Framework를 업그레이드할 때 먼저 3.5에서 업그레이드한 다음("Add-WindowsFeature As-Net-Framework" 명령을 실행하여 3.5를 직접 설치할 수 있음) 4.0, 4.5로 순차적으로 업그레이드하세요.
2. 구현
소스 코드는 다음과 같습니다.
# 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 }
위 내용은 Windows Server 2008 R2 PowerShell IIS 사이트 자동 배포에 대한 자세한 코드 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!