如下各項之一: ios
注意: git
命令行PS腳本和SP2016前置離線包放在C盤根目錄下。以下圖 github
注: redis
SP2016前置條件的安裝powershell(sp2016InstallPrerequisiteFiles.ps1)腳本須要修改以下路徑: sql
注意: shell
一、路徑根據本身的實際狀況來修改,以上離線包爲中文環境的離線包,其餘的語言包請自行下載各自的離線包,同時注意離線包的命名跟命令行寫的一致性。附帶下載地址: 數據庫
附帶下載這些離線包的PS1腳本(Download-SP2016-Prereqs.ps1): windows
二、我這個測試安裝環境是windows server 2016+sql server 2016 瀏覽器
若是出現以下表示添加角色和功能成功,以下圖 服務器
如何上找到PS1腳本所在的位置,進行安裝就能夠,注意前置條件所在的文件夾以及前置命令行所在的盤符,好比:虛擬光驅
腳本爲:sp2016InstallPrerequisiteFiles.ps1
腳本爲:sp2016InstallPrerequisiteFilesContinue.ps1,注意前置命令行所在的位置以下圖:
附帶命令行:sp2016EnableWindowsFeatures.ps1
# =================================================================================== # 編制人:忘憂草 # 編制時間:2016-11-07 # 編制做用:添加windows server 2012或2016服務器角色和功能 # 備註:爲安裝sharepoint2016作前置準備條件 # =================================================================================== #設置windows server 2012的服務器角色和功能 function getServer2012Features { $windows2012R2Features = @( "Application-Server", "AS-NET-Framework", "AS-TCP-Port-Sharing", "AS-Web-Support", "AS-WAS-Support", "AS-HTTP-Activation", "AS-Named-Pipes", "AS-TCP-Activation", "FileAndStorage-Services", "Storage-Services", "Web-Server", "Web-WebServer", "Web-Common-Http", "Web-Default-Doc", "Web-Dir-Browsing", "Web-Http-Errors", "Web-Static-Content", "Web-Http-Redirect", "Web-Health", "Web-Http-Logging", "Web-Log-Libraries", "Web-Request-Monitor", "Web-Http-Tracing", "Web-Performance", "Web-Stat-Compression", "Web-Dyn-Compression", "Web-Security", "Web-Filtering", "Web-Basic-Auth", "Web-Client-Auth", "Web-Digest-Auth", "Web-Cert-Auth", "Web-IP-Security", "Web-Url-Auth", "Web-Windows-Auth", "Web-App-Dev", "Web-Net-Ext", "Web-Net-Ext45", "Web-Asp-Net", "Web-Asp-Net45", "Web-ISAPI-Ext", "Web-ISAPI-Filter", "Web-Mgmt-Tools", "Web-Mgmt-Console", "Web-Mgmt-Compat", "Web-Metabase", "Web-Lgcy-Mgmt-Console", "Web-Lgcy-Scripting", "Web-WMI", "Web-Scripting-Tools", "NET-Framework-Features", "NET-Framework-Core", "NET-HTTP-Activation", "NET-Non-HTTP-Activ", "NET-Framework-45-Features", "NET-Framework-45-Core", "NET-Framework-45-ASPNET", "NET-WCF-Services45", "NET-WCF-HTTP-Activation45", "NET-WCF-Pipe-Activation45", "NET-WCF-TCP-Activation45", "NET-WCF-TCP-PortSharing45", "Server-Media-Foundation", "FS-SMB1", "User-Interfaces-Infra", "Server-Gui-Mgmt-Infra", "Server-Gui-Shell", "Windows-Identity-Foundation", "PowerShellRoot", "PowerShell", "PowerShell-V2", "PowerShell-ISE", "WAS", "WAS-Process-Model", "WAS-NET-Environment", "WAS-Config-APIs", "WoW64-Support", "XPS-Viewer" ) return $windows2012R2Features } #設置windows server 2016的服務器角色和功能 function getServer2016Features { $windows2016Features = @( "FileAndStorage-Services", "File-Services", "FS-FileServer", "Storage-Services", "Web-Server", "Web-WebServer", "Web-Common-Http", "Web-Default-Doc", "Web-Dir-Browsing", "Web-Http-Errors", "Web-Static-Content", "Web-Health", "Web-Http-Logging", "Web-Log-Libraries", "Web-Request-Monitor", "Web-Http-Tracing", "Web-Performance", "Web-Stat-Compression", "Web-Dyn-Compression", "Web-Security", "Web-Filtering", "Web-Basic-Auth", "Web-Digest-Auth", "Web-Windows-Auth", "Web-App-Dev", "Web-Net-Ext", "Web-Net-Ext45", "Web-Asp-Net", "Web-Asp-Net45", "Web-ISAPI-Ext", "Web-ISAPI-Filter", "Web-Mgmt-Tools", "Web-Mgmt-Console", "Web-Mgmt-Compat", "Web-Metabase", "Web-Lgcy-Scripting", "Web-WMI", "NET-Framework-Features", "NET-Framework-Core", "NET-HTTP-Activation", "NET-Non-HTTP-Activ", "NET-Framework-45-Features", "NET-Framework-45-Core", "NET-Framework-45-ASPNET", "NET-WCF-Services45", "NET-WCF-HTTP-Activation45", "NET-WCF-Pipe-Activation45", "NET-WCF-TCP-PortSharing45", "FS-SMB1", "Windows-Defender-Features", "Windows-Defender", "Windows-Defender-Gui", "Windows-Identity-Foundation", "PowerShellRoot", "PowerShell", "PowerShell-V2", "PowerShell-ISE", "WAS", "WAS-Process-Model", "WAS-NET-Environment", "WAS-Config-APIs", "WoW64-Support", "XPS-Viewer" ) return $windows2016Features } #設置服務器環境 function setEnvironment { #判斷操做系統版本 $serverOS = ([environment]::OSVersion.Version) # Server 2016 if (($serverOS.Major -eq "10") -and ($serverOS.Build -eq "14393")) { $windowsFeatures = @() $windowsFeatures = getServer2016Features $OS = (Get-WmiObject -ComputerName $env:COMPUTERNAME -Class Win32_OperatingSystem).Caption Write-Host("Adding features for $OS...") } # Server 2012R2 if (($serverOS.Major -eq "6")) { $windowsFeatures = @() $windowsFeatures = getServer2012Features $OS = (Get-WmiObject -ComputerName $env:COMPUTERNAME -Class Win32_OperatingSystem).Caption Write-Host("Adding features for $OS...") } #若是安裝.NET3.5須要制定 –Source <your source path> example: 「D:\sources\sxs」. $restart = Add-WindowsFeature (foreach{$windowsFeatures}) #若是成功 if ($restart.Success -eq "True") { #提示信息成功 Write-Host("Added feature $OS is OK...") -ForegroundColor Green #列表出成功的Feature信息 Get-WindowsFeature $windowsFeatures } #若是錯誤 if ($restart.Success -eq "False") { #提示信息成功 Write-Host("Added feature $OS is Error...") -ForegroundColor Red #列表出成功的Feature信息 Get-WindowsFeature $windowsFeatures } #判斷是否重啓 if ($restart.RestartNeeded -ne "No") { restartComputer } } #重啓計算機 function restartComputer { for ($i = 10; $i -gt 0; $i--) { Write-Host("$env:COMPUTERNAME will reboot in $i seconds") Start-Sleep -Seconds 1 } Restart-Computer -Force } #導入服務管理 Import-Module ServerManager #執行 setEnvironment
命令行:sp2016InstallPrerequisiteFiles.ps1
# =================================================================================== # 編制人:忘憂草 # 編制時間:2016-11-07 # 編制做用:安裝sharepoint2016的離線安裝包 # 備註:爲安裝sharepoint2016作前置準備條件 # =================================================================================== Import-Module Servermanager #sharepoint2016的先決條件prerequisiteinstaller.exe所在的盤符(虛擬機通常是指虛擬光驅) $sp2016Location = "D:\" # Change to folder location of SharePoint prerequisiteinstaller.exe file #sharepoint先決條件的離線包所在的文件夾位置 $sp2016preReqPath = "C:\SharePoint2016Prerequisite" #對路徑進行處理 $sp2016preReqPath = $sp2016preReqPath.TrimEnd('\') $sp2016Location = $sp2016Location.TrimEnd('\') #命令行所在位置 $preLoc = $sp2016Location + "\prerequisiteinstaller.exe" #endregion function installSP2016Files($prepath,$path) { $arguments = @( "/DotNetFx:`"$path\NDP46-KB3045557-x86-x64-AllOS-ENU.exe`"",#安裝 Microsoft .NET Framework 4.6 #"/MSIPCClient:`"$path\setup_msipc_x64.exe`"",#安裝 Microsoft Information Protection and Control 客戶端 "/WCFDataServices56:`"$path\WcfDataServices56.exe`"" ,#安裝 Microsoft WCF Data Services 5.6 "/SQLNCli:`"$path\sqlncli.msi`"",#安裝 Microsoft SQL Server 2012 SP1 Native Client "/ODBC:`"$path\msodbcsql.msi`"",#安裝 Microsoft ODBC Driver 11 for SQL Server "/Sync:`"$path\Synchronization.msi`"",#安裝 Microsoft Sync Framework Runtime SP1 v1.0 (x64)。 "/AppFabric:`"$path\WindowsServerAppFabricSetup_x64.exe`"" ,#安裝 Windows Server AppFabric(AppFabric 必須用 /i CacheClient,CachingService,CacheAdmin /gac 選項來安裝) "/IDFX11:`"$path\microsoftidentityextensions-64.msi`"",# 安裝 Windows Identity Foundation v1.1 "/KB3092423:`"$path\AppFabric-KB3092423-x64-CHS.exe`"",#安裝 Microsoft AppFabric 1.1 for Windows Server 累積更新包 7 (KB3092423) "/MSVCRT11:`"$path\vcredist_x64.exe`"",#安裝適用於 Visual Studio 2012 的 Visual C++ 可再發行組件包 "/MSVCRT14:`"$path\vc_redist.x64.exe`""#安裝適用於 Visual Studio 2015 的 Visual C++ 可再發行組件包 ) #命令行所在位置 $setupFile = $prepath + "\prerequisiteinstaller.exe " #開始安裝 Start-Process $setupFile -ArgumentList $arguments -Verbose -Wait #重啓計算機倒數 for ($i = 10; $i -gt 0; $i--) { Write-Host("$env:COMPUTERNAME will reboot in $i seconds") #Start-Sleep -Seconds 1 } #重啓計算機 #Restart-Computer -Force } #檢查路徑是否存在 function checkPath($path) { # Check if destination path exists If (!(Get-ChildItem -Path $path -ErrorAction -0).Exists) { Write-Host("$path does not exist. Please validate the location and try agian.") exit } } #region Functions #檢查sharepoint先決條件的離線包是否存在 checkPath -path $sp2016preReqPath #檢查命令行是否存在 checkPath -path $preLoc #開始執行安裝 installSP2016Files -prepath $sp2016Location -path $sp2016preReqPath #endregion
命令行:Download-SP2016-Prereqs.ps1
# Download SharePoint 2016 Prerequisites # 1.0 # 16 March 2016 # # (c) Intellem, Inc. - DO NOT DISTRIBUTE WITHOUT PERMISSION. # FOR DEMONSTRATION PURPOSES ONLY. USE AT YOUR OWN RISK. # Please provide feedback to Dan Holme # dan.holme@intelliem.com # # Follow this script at https://github.com/DanHolme/SP2016-Prereq-Downloader # # This script downloads SharePoint 2016 prerequisites that can be # later installed by the SharePoint 2016 Prerequisite installer and # by addiitonal prerequisite installation scripts. # # TESTED ON: Windows Server 2012 R2 # Should work on Windows Server 2016 # # VERSION HISTORY # 1.0 ORIGINAL VERSION # 1.1 21 March 2016 - Added definition of $Prereqs3Folder # # Based on a script by Craig Lussier (http://craiglussier.com) on TechNet # http://gallery.technet.microsoft.com/office/DownloadInstall-SharePoint-e6df9eb8 # Updated for SharePoint Server 2016 # # Run PowerShell as Administrator # # ------------------- # CONFIGURATION BLOCK # Configure the folders to which updates and prerequisites are saved. # These folders must already exist - the script does not create them. # The top-level folder in the installation folder tree $RootFolder = "C:\SharePointInstall" # The folder for prerequisites installed before the Prerequisite Installer # There are a number of updates to Windows Server 2012 R2 that must be installed # before SharePoint Server 2016's Prerequisite Installer can be run $Prereqs1Folder = "$RootFolder\SharePoint_Prerequisites\Windows_Server_2012_R2_Updates" # The folder for prerequisites used by the Prerequisite Installer $Prereqs2Folder = "$RootFolder\SharePoint_Prerequisites\PrerequisiteInstaller" # The folder for updates that are required only in certain scenarios $Prereqs3Folder = "$RootFolder\SharePoint_Prerequisites\Additional_Updates" # END CONFIGURATION BLOCK # ----------------------- # ---------------------------------------------------------------- # Download details # Do not change unless Microsoft changes the downloads themselves # ---------------------------------------------------------------- # Specify download url's for SharePoint 2016 prerequisites $Downloads = @{ # Microsoft SQL Server 2012 Native Client 64-bit edition – ENU\x64\sqlncli.MSI - http://go.microsoft.com/fwlink/p/?LinkId=239568 "https://download.microsoft.com/download/F/E/D/FEDB200F-DE2A-46D8-B661-D019DFE9D470/ENU/x64/sqlncli.msi" = "$Prereqs2Folder\sqlncli-2012.msi"; # Microsoft ODBC Driver 11 for SQL Server http://go.microsoft.com/fwlink/?LinkId=618410 "https://download.microsoft.com/download/5/7/2/57249A3A-19D6-4901-ACCE-80924ABEB267/1033/amd64/msodbcsql.msi" = "$Prereqs2Folder\msodbcsql.msi"; # Microsoft Sync Framework Runtime v1.0 SP1 (x64) http://go.microsoft.com/fwlink/?LinkId=618411 "https://download.microsoft.com/download/E/0/0/E0060D8F-2354-4871-9596-DC78538799CC/Synchronization.msi" = "$Prereqs2Folder\Synchronization.msi"; # Windows Server App Fabric http://go.microsoft.com/fwlink/?LinkId=618412 "https://download.microsoft.com/download/A/6/7/A678AB47-496B-4907-B3D4-0A2D280A13C0/WindowsServerAppFabricSetup_x64.exe" = "$Prereqs2Folder\WindowsServerAppFabricSetup_x64.exe"; # Windows Identity Foundation (KB974405) "http://download.microsoft.com/download/D/7/2/D72FD747-69B6-40B7-875B-C2B40A6B2BDD/Windows6.1-KB974405-x64.msu" = "$Prereqs2Folder\Windows6.1-KB974405-x64.msu"; # Microsoft Identity Extensions # http://go.microsoft.com/fwlink/?LinkID=252368 "http://download.microsoft.com/download/0/1/D/01D06854-CA0C-46F1-ADBA-EBF86010DCC6/rtm/MicrosoftIdentityExtensions-64.msi" = "$Prereqs2Folder\MicrosoftIdentityExtensions-64.msi"; # Microsoft Information Protection and Control Client http://go.microsoft.com/fwlink/?LinkID=544913 # MSI version (does not satisfy Prerequisite Installer): # http://go.microsoft.com/fwlink/?LinkId=320724 # https://download.microsoft.com/download/9/1/D/91DA8796-BE1D-46AF-8489-663AB7811517/setup_msipc_x64.msi "http://download.microsoft.com/download/3/C/F/3CF781F5-7D29-4035-9265-C34FF2369FA2/setup_msipc_x64.exe" = "$Prereqs2Folder\setup_msipc_x64.exe"; # Microsoft WCF Data Services 5.6 required for SharePoint 2013 SP1 http://go.microsoft.com/fwlink/?LinkId=320724 "https://download.microsoft.com/download/1/C/A/1CAA41C7-88B9-42D6-9E11-3C655656DAB1/WcfDataServices.exe" = "$Prereqs2Folder\WcfDataServices56.exe"; # .NET Framework 4.6 Offline Installer http://go.microsoft.com/fwlink/?LinkId=618401 "https://download.microsoft.com/download/C/3/A/C3A5200B-D33C-47E9-9D70-2F7C65DAAD94/NDP46-KB3045557-x86-x64-AllOS-ENU.exe" = "$Prereqs2Folder\NDP46-KB3045557-x86-x64-AllOS-ENU.exe"; # Cumulative Update Package 7 for AppFabric 1.1 for Windows Server https://support.microsoft.com/en-us/kb/3092423 "https://download.microsoft.com/download/F/1/0/F1093AF6-E797-4CA8-A9F6-FC50024B385C/AppFabric-KB3092423-x64-ENU.exe" = "$Prereqs2Folder\AppFabric-KB3092423-x64-ENU.exe"; # Visual C++ Redistributable for Visual Studio 2012 Update 4 http://go.microsoft.com/fwlink/?LinkId=327788 "https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe" = "$Prereqs2Folder\vcredist_x64.exe"; # Visual C++ Redistributable for Visual Studio 2015 http://go.microsoft.com/fwlink/?LinkId=623013 "http://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe" = "$Prereqs2Folder\vc_redist.x64.exe" # Silverlight http://go.microsoft.com/fwlink/p/?LinkId=166506 "http://silverlight.dlservice.microsoft.com/download/F/8/C/F8C0EACB-92D0-4722-9B18-965DD2A681E9/30514.00/Silverlight_x64.exe" = "$Prereqs3Folder\Silverlight_x64.exe"; # Exchange Web Services Managed API, version 1.2 http://go.microsoft.com/fwlink/p/?linkid=238668 "https://download.microsoft.com/download/7/6/1/7614E07E-BDB8-45DD-B598-952979E4DA29/EwsManagedApi.msi" = "$Prereqs3Folder\EwsManagedApi.msi"; # Update for Windows 8.1 for x64-based Systems (KB2919442) https://www.microsoft.com/en-us/download/details.aspx?id=42162 # a prerequisite for the Windows Server 2012 R2 Update "https://download.microsoft.com/download/C/F/8/CF821C31-38C7-4C5C-89BB-B283059269AF/Windows8.1-KB2919442-x64.msu" = "$Prereqs1Folder\Windows8.1-KB2919442-x64.msu"; # Windows Server 2012 R2 Update (KB2919355) https://support.microsoft.com/en-us/kb/2919355 # Windows Server 2012 R2 clearcompressionflag.exe "https://download.microsoft.com/download/2/5/6/256CCCFB-5341-4A8D-A277-8A81B21A1E35/clearcompressionflag.exe" = "$Prereqs1Folder\clearcompressionflag.exe"; # Windows Server 2012 R2 Windows8.1-KB2919355-x64.msu "https://download.microsoft.com/download/2/5/6/256CCCFB-5341-4A8D-A277-8A81B21A1E35/Windows8.1-KB2919355-x64.msu" = "$Prereqs1Folder\Windows8.1-KB2919355-x64.msu"; # Windows Server 2012 R2 Windows8.1-KB2932046-x64.msu "https://download.microsoft.com/download/2/5/6/256CCCFB-5341-4A8D-A277-8A81B21A1E35/Windows8.1-KB2932046-x64.msu" = "$Prereqs1Folder\Windows8.1-KB2932046-x64.msu"; # Windows Server 2012 R2 Windows8.1-KB2934018-x64.msu "https://download.microsoft.com/download/2/5/6/256CCCFB-5341-4A8D-A277-8A81B21A1E35/Windows8.1-KB2934018-x64.msu" = "$Prereqs1Folder\Windows8.1-KB2934018-x64.msu"; # Windows Server 2012 R2 Windows8.1-KB2937592-x64.msu "https://download.microsoft.com/download/2/5/6/256CCCFB-5341-4A8D-A277-8A81B21A1E35/Windows8.1-KB2937592-x64.msu" = "$Prereqs1Folder\Windows8.1-KB2937592-x64.msu"; # Windows Server 2012 R2 Windows8.1-KB2938439-x64.msu "https://download.microsoft.com/download/2/5/6/256CCCFB-5341-4A8D-A277-8A81B21A1E35/Windows8.1-KB2938439-x64.msu" = "$Prereqs1Folder\Windows8.1-KB2938439-x64.msu"; # Windows Server 2012 R2 Windows8.1-KB2959977-x64.msu "https://download.microsoft.com/download/2/5/6/256CCCFB-5341-4A8D-A277-8A81B21A1E35/Windows8.1-KB2959977-x64.msu" = "$Prereqs1Folder\Windows8.1-KB2959977-x64.msu"; } # Import Required Modules: BITS is used for file transfer Import-Module BitsTransfer function DownloadFiles() { Write-Host "" Write-Host "=====================================================================" Write-Host " Downloading SharePoint 2016 Prerequisites" Write-Host "=====================================================================" $ReturnCode = 0 $Downloads.GetEnumerator() | ForEach { $DownloadURL = $_.get_key() $Filespec = $_.get_value() # Get the file name based on the portion of the file path after the last slash $FilePath = Split-Path $Filespec $FileName = Split-Path $Filespec -Leaf Write-Host "DOWNLOADING: $FileName" Write-Host " FROM: $DownloadURL" Write-Host " TO: $FilePath" Try { # Check if file already exists If (!(Test-Path "$Filespec")) { # Begin download Start-BitsTransfer -Source $DownloadURL -Destination "$Filespec" -DisplayName "Downloading `'$FileName`' to $FilePath" -Priority High -Description "From $DownloadURL..." -ErrorVariable err If ($err) {Throw ""} Write-Host " STATUS: Downloaded" Write-Host } Else { Write-Host " STATUS: Already exists. Skipping." Write-Host } } Catch { $ReturnCode = -1 Write-Warning " AN ERROR OCCURRED DOWNLOADING `'$FileName`'" Write-Error $_ Break } } return $ReturnCode } $rc = DownloadFiles if($rc -ne -1) { Write-Host "" Write-Host "DOWNLOADS ARE COMPLETE." }