DSCResources/XD7LabDeliveryGroup/XD7LabDeliveryGroup.schema.psm1
configuration XD7LabDeliveryGroup { param ( ## Delivery group name [Parameter(Mandatory)] [System.String] $Name, ## Delivery group computer accounts/members [Parameter(Mandatory)] [System.String[]] $ComputerName, ## Delivery group active directory user/groups [Parameter(Mandatory)] [System.String[]] $Users, ## Delivery group description [Parameter()] [AllowNull()] [System.String] $Description = '', ## Delivery group delivery type (defaults to 'DesktopsAndApps') [Parameter()] [ValidateSet('AppsOnly','DesktopsAndApps','DesktopsOnly')] [System.String] $DeliveryType = 'DesktopsAndApps', ## Delivery group desktop type (defaults to 'Shared') [Parameter()] [ValidateSet('Private','Shared')] [System.String] $DesktopType = 'Shared', ## Delivery group is RDS/Session Hosts [Parameter()] [ValidateNotNull()] [System.Boolean] $IsMultiSession = $true, ## Active Directory domain account used to install/configure the Citrix XenDesktop machine catalog [Parameter()] [ValidateNotNull()] [System.Management.Automation.PSCredential] [System.Management.Automation.CredentialAttribute()] $Credential ) Import-DscResource -ModuleName XenDesktop7; $resourceName = $Name.Replace(' ','_'); if ($PSBoundParameters.ContainsKey('Credential')) { XD7DesktopGroup "DesktopGroup_$resourceName" { Name = $Name; Description = $Description; DeliveryType = $DeliveryType; DesktopType = $DesktopType; IsMultiSession = $IsMultiSession; Credential = $Credential; } XD7DesktopGroupMember "DesktopGroup_$($resourceName)_Machines" { Name = $Name; Members = $ComputerName; Credential = $Credential; DependsOn = "[XD7DesktopGroup]DesktopGroup_$resourceName"; } if ($DeliveryType -in 'DesktopsAndApps','DesktopsOnly') { XD7EntitlementPolicy "DesktopGroup_$($resourceName)_DesktopEntitlement" { DeliveryGroup = $Name; Name = $Name; Description = $Description; EntitlementType = 'Desktop'; Credential = $Credential; DependsOn = "[XD7DesktopGroup]DesktopGroup_$resourceName"; } } if ($DeliveryType -in 'DesktopsAndApps','AppsOnly') { XD7EntitlementPolicy "DesktopGroup_$($resourceName)_ApplicationEntitlement" { DeliveryGroup = $Name; Name = $Name; EntitlementType = 'Application'; Credential = $Credential; DependsOn = "[XD7DesktopGroup]DesktopGroup_$resourceName"; } } XD7AccessPolicy "DesktopGroup_$($resourceName)_Direct" { DeliveryGroup = $Name; AccessType = 'Direct'; Credential = $Credential; DependsOn = "[XD7DesktopGroup]DesktopGroup_$resourceName"; IncludeUsers = $Users; } XD7AccessPolicy "DesktopGroup_$($resourceName)_AG" { DeliveryGroup = $Name; AccessType = 'AccessGateway'; Credential = $Credential; DependsOn = "[XD7DesktopGroup]DesktopGroup_$resourceName"; IncludeUsers = $Users; } } else { XD7DesktopGroup "DesktopGroup_$resourceName" { Name = $Name; Description = $Description; DeliveryType = $DeliveryType; DesktopType = $DesktopType; IsMultiSession = $IsMultiSession; } XD7DesktopGroupMember "DesktopGroup_$($resourceName)_Machines" { Name = $Name; Members = $ComputerName; DependsOn = "[XD7DesktopGroup]DesktopGroup_$resourceName"; } if ($DeliveryType -in 'DesktopsAndApps','DesktopsOnly') { XD7EntitlementPolicy "DesktopGroup_$($resourceName)_DesktopEntitlement" { DeliveryGroup = $Name; Name = $Name; EntitlementType = 'Desktop'; DependsOn = "[XD7DesktopGroup]DesktopGroup_$resourceName"; } } if ($DeliveryType -in 'DesktopsAndApps','AppsOnly') { XD7EntitlementPolicy "DesktopGroup_$($resourceName)_ApplicationEntitlement" { DeliveryGroup = $Name; Name = $Name; EntitlementType = 'Application'; Credential = $Credential; DependsOn = "[XD7DesktopGroup]DesktopGroup_$resourceName"; } } XD7AccessPolicy "DesktopGroup_$($resourceName)_Direct" { DeliveryGroup = $Name; AccessType = 'Direct'; DependsOn = "[XD7DesktopGroup]DesktopGroup_$resourceName"; IncludeUsers = $Users; } XD7AccessPolicy "DesktopGroup_$($resourceName)_AG" { DeliveryGroup = $Name; AccessType = 'AccessGateway'; DependsOn = "[XD7DesktopGroup]DesktopGroup_$resourceName"; IncludeUsers = $Users; } } } #end configuration XD7LabDeliveryGroup |