Install SharePoint 2019 Prerequisites Offline

SharePoint 2019 introduces several new prerequisites, and dropped some compared to its predecessor. For example, it now requires .NET 4.7.2 to be installed on the servers. This article will provide you several ways of installing the SharePoint 2019 prerequisites in an offline environment.

List of prerequisites:

The following table shows the complete list of all prerequisites that are required for SharePoint 2019, along with their parameter name and download links.

Parameter Prerequisite Name
KB3092423 Cummulative Update Package 7 for Microsoft AppFabric 1.1 forWindows Server (KB3092423)
IDFX11 Microsoft Identity Extension
MSIPCClient Microsoft Information Protection and Control client
SQLNCli Microsoft SQL Server 2012 SP4 Native Client
WCFDataServices56 Microsoft WCF Data Services 5.6
AppFabric Windows Server AppFabric
DotNet472 Microsoft .NET Framework 4.7.2
Sync Microsoft Sync Framework Runtime v1.0 SP1 (x64)
MSVCRT11 Visual Studio C++ Redistributable Package for Visual Studio 2012
MSVCRT141 Visual Studio C++ Redistributable Package for Visual Studio 2017

Automated Install

This section describes two ways to download and install the SharePoint 2019 prerequisites using the Offline mode.

Command Prompt Style

In order to initiate the offline install, you first need to download all the prerequisites listed in the previous section from a machine that does have internet connection. Once they are all downloaded, copy them over to the machine that doesn’t have connectivity to the internet. We will then need to call into the prerequisiteinstaller.exe executable and pass the path to each of the parameters listed above. I recommend you put all the prerequisite files in a folder on the C: drive, at C:\temp, and delete them once the installation finishes. Once all the files are copied in the appropriate location, simple execute the following lines of PowerShell to initiate the Offline install:

.\prerequisiteinstaller.exe `
    /SQLNCli:c:\temp\sqlncli.msi `
    /Sync:c:\temp\Synchronization.msi `
    /AppFabric:c:\temp\WindowsServerAppFabricSetup_x64.exe `
    /IDFX11:c:\temp\MicrosoftIdentityExtensions-64.msi `
    /MSIPCClient:c:\temp\setup_msipc_x64.msi `
    /WCFDataServices56:c:\temp\WcfDataServices56.exe `
    /MSVCRT11:c:\temp\vcredist_x64.exe
    /MSVCRT141:c:\temp\vc_redist.x64.exe `
    /KB3092423:c:\temp\AppFabric-KB3092423-x64-ENU.exe `
    /DotNet472:c:\temp\NDP472-KB4054530-x86-x64-AllOS-ENU.exe

PowerShell Desired State Configuration (DSC) Style

Now, this approach is not truly an Offline approach wince it requires the machine that executes the DSC Script to have internet connectivity. However, it is an approach that will let you dynamically specify the prerequisites parameters instead of letting the installer acquire them automatically from the web. It is the approach the SharePoint DSC team has adopted to automated the deployment of their test environments when reviewing changes for new versions of the SharePoint DSC module.

In order to be able to leverage this approach, you will require both the SharePointDSC 3.0.0.0 and the xDownloadFile modules. Those can be automatically obtained using PowerShell Get, by running the following two lines of PowerShell:

Install-Module SharePointDSC
Install-Module xDownloadFile

Once you have successfully installed the modules on the machines where you will be installing SharePoint 2019 on, simply use the following PowerShell DSC configuration to automate the download and installation of all the SharePoint 2019 prerequisites:

configuration SharePoint2019Prereqs
{
    $credsDomainAdmin = Get-Credential

    Import-DscResource -ModuleName "SharePointDSC" -Moduleversion "3.0.0.0"
    Import-DscResource -ModuleName "xDownloadFile" -ModuleVersion "1.0"
    
    Node localhost
    {
        xDownloadFile AppFabricKBDL
        {
            SourcePath = "https://download.microsoft.com/download/F/1/0/F1093AF6-E797-4CA8-A9F6-FC50024B385C/AppFabric-KB3092423-x64-ENU.exe"
            FileName = "AppFabric-KB3092423-x64-ENU.exe"
            DestinationDirectoryPath = "c:\temp\"
            PsDscRunAsCredential = $credsLocalAdmin
        }

        xDownloadFile MicrosoftIdentityExtensionsDL
        {
            SourcePath = "http://download.microsoft.com/download/0/1/D/01D06854-CA0C-46F1-ADBA-EBF86010DCC6/rtm/MicrosoftIdentityExtensions-64.msi"
            FileName = "MicrosoftIdentityExtensions-64.msi"
            DestinationDirectoryPath = "c:\temp\"
            DependsOn = "[xDownloadFile]AppFabricKBDL"
            PsDscRunAsCredential = $credsLocalAdmin
        }

        xDownloadFile MSIPCDL
        {
            SourcePath = "https://download.microsoft.com/download/3/C/F/3CF781F5-7D29-4035-9265-C34FF2369FA2/setup_msipc_x64.exe"
            FileName = "setup_msipc_x64.msi"
            DestinationDirectoryPath = "c:\temp\"
            DependsOn = "[xDownloadFile]MicrosoftIdentityExtensionsDL"
            PsDscRunAsCredential = $credsLocalAdmin
        }

        xDownloadFile SQLNCLIDL
        {
            SourcePath = "https://download.microsoft.com/download/B/E/D/BED73AAC-3C8A-43F5-AF4F-EB4FEA6C8F3A/ENU/x64/sqlncli.msi"
            FileName = "sqlncli.msi"
            DestinationDirectoryPath = "c:\temp\"
            DependsOn = "[xDownloadFile]MSIPCDL"
            PsDscRunAsCredential = $credsLocalAdmin
        }

        xDownloadFile WcfDataServices56DL
        {
            SourcePath = "http://download.microsoft.com/download/1/C/A/1CAA41C7-88B9-42D6-9E11-3C655656DAB1/WcfDataServices.exe"
            FileName = "WcfDataServices56.exe"
            DestinationDirectoryPath = "c:\temp\"
            DependsOn = "[xDownloadFile]SQLNCLIDL"
            PsDscRunAsCredential = $credsLocalAdmin
        }

        xDownloadFile AppFabricDL
        {
            SourcePath = "http://download.microsoft.com/download/A/6/7/A678AB47-496B-4907-B3D4-0A2D280A13C0/WindowsServerAppFabricSetup_x64.exe"
            FileName = "WindowsServerAppFabricSetup_x64.exe"
            DestinationDirectoryPath = "c:\temp\"
            DependsOn = "[xDownloadFile]WcfDataServices56DL"
            PsDscRunAsCredential = $credsLocalAdmin
        }

        xDownloadFile DotNet472
        {
            SourcePath = "http://go.microsoft.com/fwlink/?linkid=863265"
            FileName = "NDP472-KB4054530-x86-x64-AllOS-ENU.exe"
            DestinationDirectoryPath = "c:\temp\"
            DependsOn = "[xDownloadFile]AppFabricDL"
            PsDscRunAsCredential = $credsLocalAdmin
        }

        xDownloadFile SynchronizationDL
        {
            SourcePath = "http://download.microsoft.com/download/E/0/0/E0060D8F-2354-4871-9596-DC78538799CC/Synchronization.msi"
            FileName = "Synchronization.msi"
            DestinationDirectoryPath = "c:\temp\"
            DependsOn = "[xDownloadFile]DotNet472"
            PsDscRunAsCredential = $credsLocalAdmin
        }

        xDownloadFile MSVCRT141
        {
            SourcePath = "https://aka.ms/vs/15/release/vc_redist.x64.exe"
            FileName = "vc_redist.x64.exe"
            DestinationDirectoryPath = "c:\temp\"
            DependsOn = "[xDownloadFile]SynchronizationDL"
            PsDscRunAsCredential = $credsLocalAdmin
        }
        xDownloadFile MSVCRT11
        {
            SourcePath               = "https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe"
            FileName                 = "vcredist_x64.exe"
            DestinationDirectoryPath = "c:\temp\"
            DependsOn                = "[xDownloadFile]MSVCRT141"
            PsDscRunAsCredential     = $credsLocalAdmin
        }

        SPInstallPrereqs SharePointPrereqInstall
        {
            InstallerPath = "C:\SP2019\prerequisiteinstaller.exe"
            OnlineMode = $false
            SQLNCli  = "c:\temp\sqlncli.msi"
            Sync = "c:\temp\Synchronization.msi"
            AppFabric = "c:\temp\WindowsServerAppFabricSetup_x64.exe"
            IDFX11 = "c:\temp\MicrosoftIdentityExtensions-64.msi"
            MSIPCClient = "c:\temp\setup_msipc_x64.msi"
            WCFDataServices56 = "c:\temp\WcfDataServices56.exe"
            MSVCRT11 = "c:\temp\vcredist_x64.exe"
            MSVCRT141 = "c:\temp\vc_redist.x64.exe"
            KB3092423 = "c:\temp\AppFabric-KB3092423-x64-ENU.exe"
            DotNet472 = "c:\temp\NDP472-KB4054530-x86-x64-AllOS-ENU.exe"
            Ensure = "Present"
            DependsOn = "[xDownloadFile]MSVCRT141"
            # For On-prem - SXSPath = "D:\sources\sxs"
            PsDscRunAsCredential = $credsDomainAdmin
        }
    }
}

3 thoughts on “Install SharePoint 2019 Prerequisites Offline

  1. Hi Nik trying to run the first example on my offline server, I get the
    Error: Startup Task doesn’t exist. This is not a continuation after a restart.Running SP2019 on server 2019.
    Had no problem with this when I installed on a computer connected to the internet.

    What am I doing wrong?

Leave a Reply

Your email address will not be published. Required fields are marked *