DSC/Configuration/xRemoteDesktopSessionHost/DSCResources/MSFT_xRDLicenseConfiguration/MSFT_xRDLicenseConfiguration.psm1 (99 lines of code) (raw):

if ([System.Environment]::OSVersion.Version -lt "6.2.9200.0") { Throw "The minimum OS requirement was not met."} Import-Module RemoteDesktop ####################################################################### # The Get-TargetResource cmdlet. ####################################################################### function Get-TargetResource { [CmdletBinding()] [OutputType([System.Collections.Hashtable])] param ( [parameter(Mandatory)] [ValidateNotNullOrEmpty()] [string] $ConnectionBroker, [string[]] $LicenseServers, [string] $LicenseMode ) $result = $null write-verbose "Getting RD License server configuration from broker '$ConnectionBroker'..." $config = Get-RDLicenseConfiguration -ConnectionBroker $ConnectionBroker -ea SilentlyContinue if ($config) # Microsoft.RemoteDesktopServices.Management.LicensingSetting { write-verbose "configuration retrieved successfully:" $result = @{ "ConnectionBroker" = $ConnectionBroker "LicenseServers" = $config.LicenseServer "LicenseMode" = $config.Mode.ToString() # Microsoft.RemoteDesktopServices.Management.LicensingMode .ToString() } write-verbose ">> RD License mode: $($result.LicenseMode)" write-verbose ">> RD License servers: $($result.LicenseServers -join '; ')" } else { write-verbose "Failed to retrieve RD License configuration from broker '$ConnectionBroker'." } $result } ######################################################################## # The Set-TargetResource cmdlet. ######################################################################## function Set-TargetResource { [CmdletBinding()] param ( [parameter(Mandatory)] [ValidateNotNullOrEmpty()] [string] $ConnectionBroker, [string[]] $LicenseServers, [ValidateSet("PerUser", "PerDevice", "NotConfigured")] [string] $LicenseMode ) write-verbose "Starting RD License server configuration..." write-verbose ">> RD Connection Broker: $($ConnectionBroker.ToLower())" if ($LicenseServers) { write-verbose ">> RD License servers: $($LicenseServers -join '; ')" "calling Set-RDLicenseConfiguration cmdlet..." Set-RDLicenseConfiguration -ConnectionBroker $ConnectionBroker -LicenseServer $LicenseServers -Mode $LicenseMode -Force } else { "calling Set-RDLicenseConfiguration cmdlet..." Set-RDLicenseConfiguration -ConnectionBroker $ConnectionBroker -Mode $LicenseMode -Force } write-verbose "Set-RDLicenseConfiguration done." } ####################################################################### # The Test-TargetResource cmdlet. ####################################################################### function Test-TargetResource { [CmdletBinding()] [OutputType([System.Boolean])] param ( [parameter(Mandatory)] [ValidateNotNullOrEmpty()] [string] $ConnectionBroker, [string[]] $LicenseServers, [ValidateSet("PerUser", "PerDevice", "NotConfigured")] [string] $LicenseMode ) $config = Get-TargetResource @PSBoundParameters if ($config) { write-verbose "verifying RD Licensing mode..." $result = ($config.LicenseMode -eq $LicenseMode) } else { write-verbose "Failed to retrieve RD License server configuration from broker '$ConnectionBroker'." $result = $false } write-verbose "Test-TargetResource returning: $result" return $result } Export-ModuleMember -Function *-TargetResource