Citrix Daas SDK

Set-ProvDBConnection

Configures a database connection for the Machine Creation Service.

Syntax

Set-ProvDBConnection
   [-DBConnection] <String>
   [-Force]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
<!--NeedCopy-->

Description

Specifies the database connection string for use by the currently selected Citrix Machine Creation Service instance.

The service saves the connection string and attempts to contact the specified database. If the database cannot initially be connected the service retries the connection at intervals until connection with the database is successfully established.

It is not possible to set a new database connection string for the service if one is already set. The connection string must first be set to $null. This action causes the service to reset and return to its idle state, at which point a new connection string can be set.

When a database connection string is successfully set for the service, a status of OK is returned by the cmdlet. If the database connection string is set to $null, a DBUnconfigured status is returned.

A syntactically invalid connection string is not saved.

Only Windows authentication is supported within the connection string; a connection string containing SQL authentication credentials is always rejected as invalid.

The current service instance is that on the local machine, or that explicitly specified by the last usage of the -AdminAddress parameter to a Machine Creation SDK cmdlet.

Examples

EXAMPLE 1

Configures the service instance to use a database called XDDB on an SQL Server Express database running on the machine called dbserver. Integrated Windows authentication is required.

Set-ProvDBConnection "Server=dbserver\SQLEXPRESS;Database=XDDB;Trusted_Connection=True"

ServiceStatus ExtraInfo
------------- ---------
OK            {...}
<!--NeedCopy-->

EXAMPLE 2

Resets the service instance’s database connection string. The service instance resets and returns to an idle state until a valid new database connection string is specified.

Set-ProvDBConnection -DBConnection $null

ServiceStatus  ExtraInfo
-------------- ---------
DBUnconfigured {...}
<!--NeedCopy-->

EXAMPLE 3

Configures a database connection string for the Machine Creation Service.

Set-ProvDBConnection -DBConnection "Server=serverName\SQLEXPRESS;Initial Catalog = databaseName;Integrated Security = True"

ServiceStatus ExtraInfo
------------- ---------
OK            {...}
<!--NeedCopy-->

EXAMPLE 4

Configures an invalid database connection string for the Machine Creation Service.

Set-ProvDBConnection -DBConnection "Invalid Connection String"

Invalid database connection string format.
<!--NeedCopy-->

Parameters

-DBConnection

Specifies the database connection string to be used by the Machine Creation Service. Passing in $null will clear any existing database connection configured.

Type: String
Position: 2
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-Force

If present, allows the local administrator to set the connection string to null when there are problems contacting the database or other services.

Type: SwitchParameter
Position: Named
Default value: False
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-LoggingId

Specifies the identifier of the high-level operation this cmdlet call forms a part of. Citrix Studio and Director typically create high-level operations. PowerShell scripts can also wrap a series of cmdlet calls in a high-level operation by way of the Start-LogHighLevelOperation and Stop-LogHighLevelOperation cmdlets.

Type: Guid
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

CitrixCommonParameters

This cmdlet supports the common Citrix parameters: -AdminAddress, -AdminClientIP, -BearerToken, -TraceParent, -TraceState and -VirtualSiteId. For more information, see about_CitrixCommonParameters.

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

Inputs

None

You cannot pipe input into this cmdlet.

Outputs

Citrix.Fma.Sdk.Utilities.Service.ServiceStatusInfo

The Set-ProvDBConnection cmdlet returns an object describing the status of the Machine Creation Service that resulted from using the specified connection string together with extra diagnostics information.

ServiceStatus <string> The status of the Machine Creation Service instance that adopted the connection string. Possible ServiceStatus values are:

  • OK:

The Machine Creation Service instance is configured with a valid database and

service schema. The service is operational.

  • DBUnconfigured:

No database connection string is set for the Machine Creation Service instance.

  • DBRejectedConnection:

The database rejected the logon attempt from the Machine Creation Service.

This may be because the service attempted to log on with invalid credentials

or because a database has not been installed in the specified location.

  • InvalidDBConfigured:

The specified database does not exist, is not visible to the Machine Creation Service

instance, or the service’s schema within the database is invalid.

  • DBNotFound:

The specified database could not be located with the configured connection

string.

  • DBNewerVersionThanService:

The version of the Machine Creation Service currently in use is newer than, and incompatible

with, the version of the Machine Creation Service schema on the database.

Upgrade the Machine Creation Service to a more recent version.

  • DBOlderVersionThanService:

The version of the Machine Creation Service schema on the database is newer than, and

incompatible with, the version of the Machine Creation Service currently in use.

Upgrade the database schema to a more recent version.

  • DBVersionChangeInProgress:

A database schema upgrade is in progress.

  • PendingFailure:

Connectivity between the Machine Creation Service instance and the database has been

lost. This may be a transitory network error, but may indicate a loss

of connectivity that requires administrator intervention.

  • Failed:

Connectivity between the Machine Creation Service instance and the database has been

lost for an extended period of time, or has failed due to a

configuration problem. The service instance cannot operate while its

connection to the database is unavailable.

  • Unknown:

The status of the Machine Creation Service cannot be determined.

ExtraInfo <System.Collections.Generic.Dictionary[string, string]> Dictionary providing extra diagnostics information for the database identified by the connection string. It contains at least the following keys, and their associated string values:

  • Server.Version:

Database server version number.

  • Server.IsClustered:

“True” if the database server is clustered; “False” otherwise.

  • Database.Status:

Status of the database. When operating normally, the value is “Normal”.

  • Database.RecoveryModel:

Recovery model of the database (e.g. “Simple”).

  • Database.LastBackupDate:

Date of the last backup of this database.

  • Database.IsReadCommittedSnapshotOn:

“True” if the READ_COMMITTED_SNAPSHOT database option is enabled; “False” otherwise.

  • Database.Collation:

Collation order of the database (e.g. “Latin1_General_100_CI_AS_KS”).

  • Database.IsMirroringEnabled:

“True” if the database is mirrored; “False” otherwise.

  • Database.AvailabilityGroupName:

The name of the availability group of which this database is a member.

Beware that the corresponding values are always strings. Therefore,

to test Boolean values, you must use statements like

if ($info[“Server.IsClustered”] == “True”)

instead of just

if ($info[“Server.IsClustered”])

Notes

If the command fails, the following errors can be returned.

Error Codes


InvalidDBConnectionString

The database connection string has an invalid format.

DatabaseConnectionDetailsAlreadyConfigured

There was already a database connection configured.

After a configuration is set, it can only be set to $null.

PermissionDenied

You do not have permission to execute this command.

AuthorizationError

There was a problem communicating with the Citrix Delegated Administration Service.

ConfigurationLoggingError

The operation could not be performed because of a configuration logging error.

CommunicationError

There was a problem communicating with the remote service.

ExceptionThrown

An unexpected error occurred. For more details, see the Windows event logs

on the controller or the Citrix Virtual Apps and Desktops logs.

Set-ProvDBConnection