Citrix WEM DSC module

The CitrixWemDsc module contains Powershell DSC resources for deployment and configuration of Citrix Workspace Environment Management 4.5 (ex Norskcale VUEM) database and infrastructure services .

Resources :

  • WemDatabase resource ensures that Citix WEM database is present and configured with the right permissions.
  • WemBrokerConfig links the Citrix WEM Broker to the WEM Database.

WemDatabase

This Powershell DSC resource is used to create, manage, and update the Citrix Workspace Management database. It will also manage the Citrix WEM default Administrators group and the vuemUser SQL account password required by WEM broker to access the database.

Requirements :

  • Target machine must be running Windows Server 2008 R2 or later.
  • SqlServer PowerShell module (has to be installed on the server running this module.
    To install the SqlServer module: Install-Module -Name SqlServer

Parameters :

  • [String] DatabaseName (Key): Citrix WEM database name.
  • [String] DatabaseServer (Required): MS SQL Server hostname hosting the WEM database.
  • [String] DatabaseFilesFolder (Required): Path to the data and log files location on the SQL Server. You must provide a valid filepath, otherwise the cmdlet will fail.
  • [String] VuemUserSqlPassword (Required): Specific password for the Citrix WEM vuemUser SQL user account.
  • [String] WemInfrastructureServiceAccount (Required): Windows service account of WEM infrastructure service.
  • [String] DefaultAdministratorsGroup (Required): Citrix WEM default administrators group.
  • [String] Ensure (Optional): Whether the database should be added or removed. Valid values are Present or Absent. Default value : Present

Warning : Database MDF and LDF files have to be moved manually to the new location and the database restarted after a DSC pass if the DatabaseFilesFolder is modified

Configuration example

WemDatabase [string] #ResourceName
{
  DatabaseName = [string]
  DatabaseServer = [string]
  DatabaseFilesFolder = [string]
  VuemUserSqlPassword = [string]
  WemInfrastructureServiceAccount = [String]
  DefaultAdministratorsGroup = [string]
  [ Ensure = [string] { Absent | Present } ]
}

WemBrokerConfig

This Powershell DSC resource is used to configure a Citrix Workspace Management broker and to link it to a database previously created with the WemDatabase resource.

Parameters :

  • [String] DatabaseName (Key): Citrix WEM database name.
  • [String] DatabaseServer (Required): MS SQL Server hostname hosting the WEM database.
  • [String] SetSqlUserSpecificPassword (Required ValueMap{“Enable”, “Disable”}): Use vuemUser SQL user account password.
  • [String] SqlUserSpecificPassword (Optional): vuemUser SQL user account password
  • [String] EnableInfrastructureServiceAccountCredential (Optional ValueMap{“Enable”, “Disable”}): Description(“Use Windows authentication for infrastructure service database connection.
  • [MSFT_Credential] InfrastructureServiceAccountCredential (Optional): PSCredential for running the infrastructure service.
  • [String] UseCacheEvenIfOnline (Optional ValueMap{“Enable”, “Disable”}): Enable infrastructure service to always reading site settings from its cache. Default value : Disable
  • [String] DebugMode (Optional ValueMap{“Enable”, “Disable”}): Enable Citrix WEM debug mode. Default value : Disable
  • [String] SendGoogleAnalytics (Optional ValueMap{“Enable”, “Disable”}): Enable collection of statistics. Default value : Disable
  • [Uint32] AdminServicePort (Optional): Administration port for administration console to connect to the infrastructure service.
  • [Uint32] AgentServicePort (Optional): Agent service port for agent to connect to the infrastructure server.
  • [Uint32] AgentSyncPort (Optional): Cache synchronization port for agent cache synchronization process to connect to the infrastructure service.
  • [Uint32] MonitoringPort (Optional): Citrix WEM monitoring port.
  • [Uint32] CacheRefreshDelay (Optional): Time (in minutes) before the infrastructure service refreshes its cache.
  • [Uint32] SQLCheckDelay (Optional): Time (in seconds) between each infrastructure service attempt to poll the SQL server.
  • [Uint32] InfrastructureServiceSQLConnectionTimeout (Optional): Time (in seconds) which the infrastructure service waits when trying to establish a connection with the SQL server.
  • [String] EnableScheduledMaintenance (Optional ValueMap{“Enable”, “Disable”}): Enable deletion of old statistics records from the database at periodic intervals. Default value : Disable.
  • [Uint32] StatisticsRetentionPeriod (Optional): Retention period for user and agent statistics (in days).
  • [Uint32] SystemMonitoringRetentionPeriod (Optional): Retention period for system optimization statistics (in days).
  • [Uint32] AgentRegistrationsRetentionPeriod (Optional): Retention period for agent registration logs (in days).
  • [Uint32] DatabaseMaintenanceExecutionTime (Optional): The time at which the database maintenance action is performed (HH:MM).
  • [String] GlobalLicenseServerOverride (Optional ValueMap{“Enable”, “Disable”}): Override any Citrix License Server information already in the WEM database. Default value : Disable.
  • [String] LicenseServerName (Optional): Citrix License Server name.
  • [Uint32] LicenseServerPort (Optional): Citrix License Server port.

Configuration example

WemBrokerConfig [string] #ResourceName
{
  DatabaseName = [string]
  DatabaseServer = [string]
  SetSqlUserSpecificPassword = [string] { Enable | Disable }
  [ SqlUserSpecificPassword = [string] ]
  [ EnableInfrastructureServiceAccountCredential = [string] { Enable | Disable } ]
  [ [InfrastructureServiceAccountCredential = [MSFT_Credential] ]
  [ UseCacheEvenIfOnline = [string] { Enable | Disable } ]
  [ DebugMode = [string] { Enable | Disable } ]
  [ SendGoogleAnalytics = [string] { Enable | Disable } ]
  [ AdminServicePort = [uint32] ]
  [ AgentServicePort = [uint32] ]
  [ AgentSyncPort = [uint32] ]
  [ MonitoringPort = [uint32] ]
  [ CacheRefreshDelay = [uint32] ]
  [ SQLCheckDelay = [uint32] ]
  [ InfrastructureServiceSQLConnectionTimeout = [uint32] ]
  [ EnableScheduledMaintenance = [string] { Enable | Disable } ]
  [ StatisticsRetentionPeriod = [uint32] ]
  [ SystemMonitoringRetentionPeriod = [uint32] ]
  [ AgentRegistrationsRetentionPeriod = [uint32] ]
  [ DatabaseMaintenanceExecutionTime = [string] ]
  [ GlobalLicenseServerOverride = [string] { Enable | Disable } ]
  [ LicenseServerName = [string] ]
  [ LicenseServerPort = [uint32] ]
}