집 >운영 및 유지보수 >창문 운영 및 유지보수 >Windows Server 2008 R2 PowerShell IIS 사이트 자동 배포에 대한 자세한 코드 설명
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!