由于先决条件需要的软件过多,我们同一用脚本的方式去下载和安装。
脚本1. 提供先决条件中的软件下载 (DownReqSoft.ps1)
脚本2. 安装先决条件中的服务功能 (InstallFeatures.ps1)
脚本3. 安装先决条件中的应用软件 (InstallReqSoft.ps1)
# ===================================================
# Create by : Yekangming
# Create time: 2018/07/20
# Description: SharePoint Server 2016 recondition
# ===================================================
# ----------------------------------------------------------------
# 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."
}
# ===================================================
# Create by : Yekangming
# Create time: 2018/07/20
# Description: SharePoint Server 2016 recondition
# ===================================================
#Install Server role and features 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
}
#Install Server role and features 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 {
# system version check
$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...")
}
#if install .net3.5 need set source –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
Get-WindowsFeature $windowsFeatures
}
if ($restart.Success -eq "False") {
Write-Host("Added feature $OS is Error...") -ForegroundColor Red
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
# ===================================================
# Create by : Yekangming
# Create time: 2018/07/20
# Description: SharePoint Server 2016 recondition
# ===================================================
Import-Module Servermanager
#SharePoint2016 Install Packet
$sp2016Location = "C:\Users\administrator.SJ\Desktop\cn_powershare_x64_2016"
#SharePoint2016 Offline requiste software folder
$sp2016preReqPath = "C:\SharePointInstall\SharePoint_Prerequisites\PrerequisiteInstaller"
$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 Client
"/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
"/IDFX11:`"$path\microsoftidentityextensions-64.msi`"",#Windows Identity Foundation v1.1
"/KB3092423:`"$path\AppFabric-KB3092423-x64-CHS.exe`"",#Microsoft AppFabric 1.1 for (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
checkPath -path $sp2016preReqPath
checkPath -path $preLoc
installSP2016Files -prepath $sp2016Location -path $sp2016preReqPath
#endregion
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。