DSCResources/MSFT_SPInstallPrereqs/MSFT_SPInstallPrereqs.schema.mof

/*
**Description**
 
This resource is responsible for ensuring the installation of all SharePoint prerequisites.
It makes use of the PrerequisiteInstaller.exe file that is part of the SharePoint binaries, and will install the required Windows features as well as additional software.
The OnlineMode boolean will tell the prerequisite installer which mode to run in, if it is online you do not need to list any other parameters for this resource.
If you do not use online mode, you must include all other parameters to specify where the installation files are located.
These additional parameters map directly to the options passed to prerequisiteinstaller.exe.
For installations with no connectivity to Windows Update, use the SXSpath parameter to specify the path to the SXS store of your Windows Server install media.
 
Additionally, the process of installing the prerequisites on a Windows Server usually results in 2-3 restarts of the system being required. To ensure the DSC configuration is able to restart the server when needed, ensure the below settings for the local configuration manager are included in your DSC file.
 
    LocalConfigurationManager
    {
        RebootNodeIfNeeded = $true
    }
 
**Examples**
 
Online example:
 
    SPInstallPrereqs InstallPrerequisites
    {
        InstallerPath = "C:\SPInstall\Prerequisiteinstaller.exe"
        OnlineMode = $true
    }
 
Offline example:
 
    SPInstallPrereqs InstallPrerequisites
    {
        InstallerPath = "C:\SPInstall\Prerequisiteinstaller.exe"
        OnlineMode = $false
        SXSpath = "c:\SPInstall\Windows2012r2-SXS"
        SQLNCli = "C:\SPInstall\prerequisiteinstallerfiles\sqlncli.msi"
        PowerShell = "C:\SPInstall\prerequisiteinstallerfiles\Windows6.1-KB2506143-x64.msu"
        NETFX = "C:\SPInstall\prerequisiteinstallerfiles\dotNetFx45_Full_setup.exe"
        IDFX = "C:\SPInstall\prerequisiteinstallerfiles\Windows6.1-KB974405-x64.msu"
        Sync = "C:\SPInstall\prerequisiteinstallerfiles\Synchronization.msi"
        AppFabric = "C:\SPInstall\prerequisiteinstallerfiles\WindowsServerAppFabricSetup_x64.exe"
        IDFX11 = "C:\SPInstall\prerequisiteinstallerfiles\MicrosoftIdentityExtensions-64.msi"
        MSIPCClient = "C:\SPInstall\prerequisiteinstallerfiles\setup_msipc_x64.msi"
        WCFDataServices = "C:\SPInstall\prerequisiteinstallerfiles\WcfDataServices.exe"
        KB2671763 = "C:\SPInstall\prerequisiteinstallerfiles\AppFabric1.1-RTM-KB2671763-x64-ENU.exe"
        WCFDataServices56 = "C:\SPInstall\prerequisiteinstallerfiles\WcfDataServices56.exe"
    }
*/
[ClassVersion("1.0.0.0"), FriendlyName("SPInstallPrereqs")]
class MSFT_SPInstallPrereqs : OMI_BaseResource
{
    [Key, Description("The full path to prerequisiteinstaller.exe")] String InstallerPath;
    [Required, Description("Should the installer download prerequisites from the internet or not")] Boolean OnlineMode;
    [Write, Description("The path to the Windows Server Operating System SXS source files, for use in closed environments without access to Windows Update")] String SXSpath;
    [Write, Description("The path to the installer for this prerequisite")] String SQLNCli;
    [Write, Description("The path to the installer for this prerequisite")] String PowerShell;
    [Write, Description("The path to the installer for this prerequisite")] String NETFX;
    [Write, Description("The path to the installer for this prerequisite")] String IDFX;
    [Write, Description("The path to the installer for this prerequisite")] String Sync;
    [Write, Description("The path to the installer for this prerequisite")] String AppFabric;
    [Write, Description("The path to the installer for this prerequisite")] String IDFX11;
    [Write, Description("The path to the installer for this prerequisite")] String MSIPCClient;
    [Write, Description("The path to the installer for this prerequisite")] String WCFDataServices;
    [Write, Description("The path to the installer for this prerequisite")] String KB2671763;
    [Write, Description("The path to the installer for this prerequisite")] String WCFDataServices56;
    [Write, Description("The path to the installer for this prerequisite")] String MSVCRT11;
    [Write, Description("The path to the installer for this prerequisite")] String MSVCRT14;
    [Write, Description("The path to the installer for this prerequisite")] String KB3092423;
    [Write, Description("The path to the installer for this prerequisite")] String ODBC;
    [Write, Description("The path to the installer for this prerequisite")] String DotNetFx;
    [Write, Description("Present to install the prerequisites. Absent is currently not supported"), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure;
};