dsccommunity / SharePointDsc

The SharePointDsc PowerShell module provides DSC resources that can be used to deploy and manage a SharePoint farm
MIT License
245 stars 107 forks source link

SPInstallPrereqs: sqlncli.msi is no longer required after November 2021 CU #1419

Open jensotto opened 1 year ago

jensotto commented 1 year ago

Problem description

According to the information in November 2021 CU for SharePoint 2016 and 2019 it is no longer recommended to have Microsoft SQL Server 2012 Native Client (sqlncli.msi) installed on the SharePoint servers as it's no longer used. Is it possible to remove this from the prerequisite installation? I've not tested if the prerequisite installer still enforces installation of sqlncli.msi

SP2019 November CU SP2016 November CU

Verbose logs

Not relevant

DSC configuration

SPInstallPrereqs PrerequisitesInstallation
{
    IsSingleInstance     = 'Yes'
    InstallerPath        = $ConfigurationData.NonNodeData.SPPrereqsInstallerPath;
    OnlineMode           = $false;
    Ensure               = "Present";
    PSDscRunAsCredential = $SPSetupCredential;
    SQLNCli              = "$($ConfigurationData.NonNodeData.SPInstallationBinaryPath)\prerequisiteinstallerfiles\sqlncli.msi"
    Sync                 = "$($ConfigurationData.NonNodeData.SPInstallationBinaryPath)\prerequisiteinstallerfiles\Synchronization.msi"
    AppFabric            = "$($ConfigurationData.NonNodeData.SPInstallationBinaryPath)\prerequisiteinstallerfiles\WindowsServerAppFabricSetup_x64.exe"
    IDFX11               = "$($ConfigurationData.NonNodeData.SPInstallationBinaryPath)\prerequisiteinstallerfiles\MicrosoftIdentityExtensions-64.msi"
    MSIPCClient          = "$($ConfigurationData.NonNodeData.SPInstallationBinaryPath)\prerequisiteinstallerfiles\setup_msipc_x64.exe"
    WCFDataServices56    = "$($ConfigurationData.NonNodeData.SPInstallationBinaryPath)\prerequisiteinstallerfiles\WcfDataServices.exe"
    MSVCRT11             = "$($ConfigurationData.NonNodeData.SPInstallationBinaryPath)\prerequisiteinstallerfiles\vcredist_x64.exe"
    MSVCRT141            = "$($ConfigurationData.NonNodeData.SPInstallationBinaryPath)\prerequisiteinstallerfiles\vc_redist.x64.exe"
    KB3092423            = "$($ConfigurationData.NonNodeData.SPInstallationBinaryPath)\prerequisiteinstallerfiles\AppFabric-KB3092423-x64-ENU.exe"
    DotNet472            = "$($ConfigurationData.NonNodeData.SPInstallationBinaryPath)\prerequisiteinstallerfiles\NDP472-KB4054530-x86-x64-AllOS-ENU.exe"
    DependsOn            = "[WindowsFeatureSet]NET-Framework"
}

Suggested solution

Remove installation of sqlncli.msi when installed CU version of SharePoint is November 2021 or newer.

SharePoint version and build

SP 2016 and SP2019 November 2021 CU and newer

Operating system the target node is running

not relevant

PowerShell version and build the target node is running

not relevant

SharePointDsc version

4.8.0
ykuijs commented 1 year ago

I have had several discussions around changes in CUs and install sources with the PG. In short: A CU does not update the install source. So the prerequisites installer is still the original code and therefore requires the SQL Native Client to be installed.

This means that once you have the November 22 CU installed, you can uninstall the SQL Native Client without issues. We can add code to a resource (e.g. ProductInstall) to uninstall the client when the November 22 CU is installed, but not sure if that really adds benefits. There is no harm in leaving it installed.

ChristophHannappel commented 4 months ago

We can add code to a resource (e.g. ProductInstall) to uninstall the client when the November 22 CU is installed, but not sure if that really adds benefits. There is no harm in leaving it installed.

Our compliance tool nagging about the "SQL Native Client" as dangerous because it is out of support and now we get more red KPIs. I don't like that tool, but the benefit would be more green checkboxes on a a report🎉.