DSCResources/MSFT_xGroupSet/MSFT_xGroupSet.schema.psm1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Import-Module "$PSScriptRoot\..\ResourceSetHelper.psm1"

Configuration xGroupSet
{
    [CmdletBinding(SupportsShouldProcess = $true)]
    param (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String[]]
        $GroupName,

        [ValidateSet('Present', 'Absent')]
        [System.String]
        $Ensure,

        [System.String[]]
        $MembersToInclude,

        [System.String[]]
        $MembersToExclude,

        [ValidateNotNullOrEmpty()]
        [System.Management.Automation.PSCredential]
        $Credential
    )

    $commonParameterNames = @("Ensure", "MembersToInclude", "MembersToExclude", "Credential")
    $keyParameterName = "GroupName"
    $resourceName = "xGroup"

    # Build common parameters for all xGroup resource nodes
    [string] $commonParameters = New-ResourceCommonParameterString -KeyParameterName $keyParameterName -CommonParameterNames $commonParameterNames -Parameters $PSBoundParameters

    # Build xGroup resource string
    [string] $resourceString = New-ResourceString -KeyParameterValues $PSBoundParameters[$keyParameterName] -KeyParameterName $keyParameterName -CommonParameters $commonParameters -ResourceName $resourceName

    $configScript = [ScriptBlock]::Create($resourceString)
    . $configScript
}