DSCResources/MSFT_xSPInstallPrereqs/MSFT_xSPInstallPrereqs.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.
 
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:
 
    xSPInstallPrereqs InstallPrerequisites
    {
        InstallerPath = "C:\SPInstall\Prerequisiteinstaller.exe"
        OnlineMode = $true
    }
 
Offline example:
 
    xSPInstallPrereqs InstallPrerequisites
    {
        InstallerPath = "C:\SPInstall\Prerequisiteinstaller.exe"
        OnlineMode = $false
        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("xSPInstallPrereqs")]
class MSFT_xSPInstallPrereqs : 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 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 KB2898850;
    [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 DotNet452;
    [Required, Description("Present to install the prerequisites. Absent is currently not supported"), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure;
};