DSCResources/cAppxProvisionedPackageSet/cAppxProvisionedPackageSet.schema.psm1

Configuration cAppxProvisionedPackageSet
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateSet('Present', 'Absent')]
        [string]
        $Ensure,

        [parameter(Mandatory = $true)]
        [string[]]
        $PackageName,

        [Parameter()]
        [bool]
        $AllUsers = $false
    )

    if ($Ensure -ne 'Absent') {
        Write-Error 'This resource supports only removing apps. Please specify the Ensure parameter as "Absent".'
        return
    }

    $TemplateString = @"
    cAppxProvisionedPackage Resource{0}
    {{
        Ensure = '{1}'
        PackageName = '{2}'
        AllUsers = {3}
    }}
"@


    $ResourceCount = 0
    $ResourceString = ($PackageName | foreach {
            if ($AllUsers) {
                $AllUsersString = '$true'
            }
            else {
                $AllUsersString = '$false'
            }
            ($TemplateString -f $ResourceCount, $Ensure, $_, $AllUsersString)
            $ResourceCount++
        }) -join "`r`n"

    . ([ScriptBlock]::Create($ResourceString))
}