千家信息网

Microsoft SharePoint Server 2016 部署文档(1)

发表于:2025-01-30 作者:千家信息网编辑
千家信息网最后更新 2025年01月30日,由于先决条件需要的软件过多,我们同一用脚本的方式去下载和安装。脚本1. 提供先决条件中的软件下载 (DownReqSoft.ps1)脚本2. 安装先决条件中的服务功能 (InstallFeatures
千家信息网最后更新 2025年01月30日Microsoft SharePoint Server 2016 部署文档(1)

由于先决条件需要的软件过多,我们同一用脚本的方式去下载和安装。
脚本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 transferImport-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 2012function 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 2016function 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   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 ServerManagersetEnvironment

# ===================================================# 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" #endregionfunction 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
0