Citrix Daas SDK

Get-ProvDBSchema

Gets SQL scripts to create or maintain the database schema for the Citrix Machine Creation Service.

Syntax

Get-ProvDBSchema
   [-DatabaseName <String>]
   [-ServiceGroupName <String>]
   [-ScriptType <ScriptTypes>]
   [-LocalDatabase]
   [-Sid <String>]
   [-DatabaseRights <String>]
   [-AzureDatabase]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
<!--NeedCopy-->

Description

Gets SQL scripts that can be used to create a new Machine Creation Service database schema, add a new Machine Creation Service to an existing site, remove a Machine Creation Service from a site, or create a database server logon for a Machine Creation Service.

If no Sid parameter is provided, the scripts obtained relate to the currently selected Machine Creation Service instance, otherwise the scripts relate to Machine Creation Service instance running on the machine identified by the Sid provided. When obtaining the Evict script (See ScriptType), a Sid parameter must be supplied.

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.

The service instance used to obtain the scripts need not be a member of a site or have its database connection configured.

The database scripts only support Microsoft SQL Server or SQL Server Express, and require Windows integrated authentication to be used. They can be run using SQL Server’s SQLCMD utility, or by copying the script into an SQL Server Management Studio (SSMS) query window and executing the query. If using SSMS, the query must be executed in ‘SMDCMD mode’.

The ScriptType parameter determines which script is obtained. If ScriptType is not specified, is FullDatabase, or Database, the script contains:

  • Creation of service schema
  • Creation of database server logon
  • Creation of database user
  • Addition of database user to Machine Creation Service roles

If ScriptType is Instance, the returned script contains:

  • Creation of database server logon
  • Creation of database user
  • Addition of database user to Machine Creation Service roles

If ScriptType is Evict, the returned script contains:

  • Removal of Machine Creation Service instance from database
  • Removal of database user

If ScriptType is Login, the returned script contains:

  • Creation of database server logon only

If the LocalDatabase parameter is included, the NetworkService account will be added to the list of accounts permitted to access the database. This is required only if the database is run on a controller.

If the service uses two data stores they can exist in the same database.

Examples

EXAMPLE 1

Gets a script to create the full database schema for the Citrix Machine Creation Service and saves it to a file called “C:\MachineCreationSchema.sql”.

This script can be used to create the service schema in a database with name “MySiteDB”, which must already exist, and must not already contain a Machine Creation Service schema.

Get-ProvDBSchema -DatabaseName MySiteDB -ServiceGroupName  MyServiceGroup > C:\MachineCreationSchema.sql
<!--NeedCopy-->

EXAMPLE 2

Gets a script to create the appropriate database server logon for the Machine Creation Service. This can be used when configuring a mirror server for use.

Get-ProvDBSchema -DatabaseName MySiteDB -ScriptType Login > C:\MachineCreationLogins.sql
<!--NeedCopy-->

Parameters

-DatabaseName

Specifies the name of the database into which the new Machine Creation Service schema is to be placed, or in which it already exists. The database itself is not created by any of the script types; it must already exist before the scripts are run.

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

-ServiceGroupName

The name of the service group to be used when creating the Citrix Machine Creation Service database schema. The service group is the collection of all Machine Creation Services that share the same database and are considered equal (i.e. any service in the same service group can be used interchangeably).

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

-ScriptType

Specifies the type of database script returned. Available script types are:

FullDatabase:

Creates a database schema for the Citrix Machine Creation Service in a database

instance that does not already contain one. This is used when creating

a new site. DatabaseName and ServiceGroupName are required parameters

for this script type.

Database:

Performs the same function as “FullDatabase”.

Instance:

Adds a Machine Creation Service instance to a database and so to the associated

site. Appropriate database server logons and users are created to

allow the service instance access to the required service schemas.

Evict:

Removes a Machine Creation Service instance from the database and so from the

site. All reference to the service instance is removed from the

database. DatabaseName and Sid are required parameters for this

script type.

Login:

Adds a logon for the Machine Creation Service instance to a database server.

This is specifically for use when configuring SQL Server mirroring

where the mirror server must have appropriate logons created for all

service instances in the site.

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

-LocalDatabase

Specifies whether the database script is to be used in a database

instance run on the same controller as other services in the service group.

Including this parameter ensures the script creates only the required permissions

for local services to access the database schema for Machine Creation Services.

If this parameter is specified inappropriately, the service instance will not be

able to connect to the database.

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

-Sid

Specifies the SID of the controller on which the Machine Creation Service instance to remove from the database is running (only valid for a script type of Evict).

Type: String
Position: Named
Default value: None
Required: False
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-DatabaseRights

Specifies the rights to run the database script under. Available rights are:

Mixed:

Creates a database schema which uses all rights.

SysAdmin:

Creates a database schema which does the minimum with the SysAdmin (sa) rights.

DbOwner:

Creates a database schema which only needs Database Owner (dbo) rights.

This script expects to be used after the SysAdmin script has been run.

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

-AzureDatabase

Specifies that the generated schema must be compatible with Azure SQL limits, including not generating code for logins.

Type: SwitchParameter
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

String

A string containing the required SQL script for application to a database.

Notes

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

Error Codes


GetSchemasFailed

The database schema could not be found.

ActiveDirectoryAccountResolutionFailed

The specified Active Directory account or Group could not be found.

DatabaseError

An error occurred in the service while attempting a database operation.

DatabaseNotConfigured

The operation could not be completed because the database for the service is not configured.

DataStoreException

An error occurred in the service while attempting a database operation - communication with the database failed for various reasons.

PermissionDenied

You do not have permission to execute this command.

AuthorizationError

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

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.

Get-ProvDBSchema