modules/deploy/dsc/ext/PsGallery/xPSDesiredStateConfiguration.3.7.0.0/DSCResources/MSFT_xPackageResource/Examples/Sample_InstallExeCredsRegistry_xPackage.ps1

<#
Simple package that installs an .exe using credentials to access the installer and specifying RunAs Credentials.
This sample also uses custom registry data to discover the package.

#>

param
(
    [String]$OutputPath = ".",

    [parameter(Mandatory = $true)]
    [ValidateNotNullOrEmpty()]
    [String] $Package,

    [parameter(Mandatory = $true)]
    [ValidateNotNullOrEmpty()]
    [String] $Source,

    [parameter(Mandatory = $true)]
    [ValidateNotNull()]
    [String] $ProductId,

    [parameter(Mandatory = $true)]
    [ValidateNotNullOrEmpty()]
    [String] $InstalledCheckRegKey,

    [parameter(Mandatory = $true)]
    [ValidateNotNullOrEmpty()]
    [String] $InstalledCheckRegValueName,

    [parameter(Mandatory = $true)]
    [ValidateNotNullOrEmpty()]
    [String] $InstalledCheckRegValueData,

    [parameter(Mandatory = $true)]
    [ValidateNotNullOrEmpty()]
    [PSCredential] $Credential,

    [parameter(Mandatory = $true)]
    [ValidateNotNullOrEmpty()]
    [PSCredential] $RunAsCredential,

    [parameter(Mandatory = $true)]
    [ValidateNotNull()]
    [PSCredential] $Arguments
)

Configuration Sample
{
    Import-DscResource -Module xPSDesiredStateConfiguration

    xPackage t1
    {
        Ensure="Present"
     Name = $Package
        Path = $Source
        Arguments = $Arguments
        RunAsCredential = $RunAsCredential
        Credential = $Credential
        ProductId = $ProductId
        InstalledCheckRegKey = $InstalledCheckRegKey
        InstalledCheckRegValueName = $InstalledCheckRegValueName
        InstalledCheckRegValueData = $InstalledCheckRegValueData
    }
}

$Global:AllNodes=
@{
    AllNodes = @(     
                    @{
                        NodeName = "localhost";
                        RecurseValue = $true;
                     };                                                                                     
                );    
}

<#
Sample use (parameter values need to be changed according to your scenario):

# Create the MOF file using the configuration data
Sample -OutputPath $OutputPath -ConfigurationData $Global:AllNodes -Package "Package Name" -Source "\\software\installer.exe" `
    -InstalledCheckRegKey "SOFTWARE\Microsoft\DevDiv\winexpress\Servicing\12.0\coremsi" `
    -InstalledCheckRegValueName "Install" -InstalledCheckRegValueData "1" `
    -Credential $Credential -RunAsCredential $RunAsCredential `
    -Arguments "/q" -ProductId ""

#>