Citrix Virtual Apps and Desktops SDK

Add-XDController

Adds a Delivery Controller to an existing Site.

Syntax

Add-XDController
   [-DoNotUpdateDatabaseServer]
   -SiteControllerAddress <String>
   [-AdminAddress <String>]
   [<CommonParameters>]
<!--NeedCopy-->
Add-XDController
   -DatabaseCredentials <PSCredential>
   -SiteControllerAddress <String>
   [-AdminAddress <String>]
   [<CommonParameters>]
<!--NeedCopy-->
Add-XDController
   -LoggingDatabaseCredentials <PSCredential>
   -MonitorDatabaseCredentials <PSCredential>
   -SiteControllerAddress <String>
   -SiteDatabaseCredentials <PSCredential>
   [-AdminAddress <String>]
   [<CommonParameters>]
<!--NeedCopy-->

Description

Adds a Controller to an existing Site.

If no credentials are provided and DoNotUpdateDatabaseServer has not been specified, then all database update operations are attempted using the credentials of the user running the cmdlet.

If DatabaseCredentials is provided, then all database operations are attempted using those credentials.

If one or more of SiteDatabaseCredentials, LoggingDatabaseCredentials or MonitorDatabaseCredentials are provided, then all three must be provided. All operations are then attempted using the credentials appropriate to each Database.

Examples

EXAMPLE 1

Adds the Controller ‘MyNewController’ to the Site to which ‘MyExistingController’ is already joined. The permissions for ‘MyNewController’ will be added automatically to the Database using the implicit credentials of the user running the cmdlet.

Add-XDController -AdminAddress MyNewController -SiteControllerAddress MyExistingController
<!--NeedCopy-->

EXAMPLE 2

Adds the Controller ‘MyNewController’ to the Site to which ‘MyExistingController’ is already joined.

The permissions for ‘MyNewController’ will not be added to the Database. Instead the Get-XDDatabaseSchema cmdlet is used to generate a SQL script that must be given to the database administrator of ‘MySQLServer’. The SQL script must be used to add the necessary permissions for ‘MyNewController’ before Add-XDController is run.

Get-XDDatabaseSchema -AdminAddress MyNewController -SiteName MySite -DatabaseServer MySQLServer -ScriptType AddController > C:\addController.sql
# Get a database administrator to run addController.sql
Add-XDController -AdminAddress MyNewController -SiteControllerAddress MyExistingController -DoNotUpdateDatabaseServer
<!--NeedCopy-->

EXAMPLE 3

Adds the Controller ‘MyNewController’ to the Site to which ‘MyExistingController’ is already joined.

The credentials contained within ‘$credential’ will be used to add the necessary permissions for ‘MyNewController’ to the Database.

$credential = Get-Credential
Add-XDController -AdminAddress MyNewController -SiteControllerAddress MyExistingController -DatabaseCredentials $credential
<!--NeedCopy-->

EXAMPLE 4

Adds the Controller ‘MyNewController’ to the Site to which ‘MyExistingController’ is already joined.

The credentials contained within ‘$credentialSite’ will be used to add the necessary permissions for ‘MyNewController’ to the Site Configuration Database. The credentials contained within ‘$credentialLogging’ will be used to add the necessary permissions for ‘MyNewController’ to the Configuration Logging Database. The credentials contained within ‘$credentialMonitor’ will be used to add the necessary permissions for ‘MyNewController’ to the Monitoring Database.

$credentialSite = Get-Credential
$credentialLogging = Get-Credential
$credentialMonitor = Get-Credential
Add-XDController -AdminAddress MyNewController -SiteControllerAddress MyExistingController -SiteDatabaseCredentials $credentialSite -LoggingDatabaseCredentials $credentialLogging -MonitorDatabaseCredentials $credentialMonitor
<!--NeedCopy-->

Parameters

-DatabaseCredentials

The security credentials, in the form of a PSCredential object, that will be used to connect to the SQL Servers associated with the Site Configuration, Configuration Logging and Monitoring Databases.

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

-LoggingDatabaseCredentials

The security credentials, in the form of a PSCredential object, that will be used to connect to the SQL Server associated with the Configuration Logging Database.

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

-MonitorDatabaseCredentials

The security credentials, in the form of a PSCredential object, that will be used to connect to the SQL Server associated with the Monitoring Database.

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

-SiteDatabaseCredentials

The security credentials, in the form of a PSCredential object, that will be used to connect to the SQL Server associated with the Site Configuration Database.

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

-SiteControllerAddress

The address of a Controller in the Site to which this Controller is to be joined.

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

-DoNotUpdateDatabaseServer

Results in the permissions associated with the Controller not being automatically added to the Database.

This switch may be useful when the person running the cmdlet does not have sufficient database privilege. The database permissions for the Controller that is to be added must have been applied manually prior to running this cmdlet, otherwise the Controller is not added and an error is returned.

Get-XDDatabaseSchema may be used to generate the SQL script which in turn may be used to add the necessary permissions to the Database.

This parameter results in all supplied credentials being ignored.

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

-AdminAddress

Specifies the address of the Delivery Controller to which the PowerShell module will connect. This can be provided as a host name or an IP address.

Type: String
Position: Named
Default value: Localhost. Once a value is provided by any cmdlet, this value will become the default.
Required: False
Accept pipeline input: False
Accept wildcard characters: False

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 to this cmdlet.

Outputs

None

By default, this cmdlet returns no output.

Notes

In general, the AdminAddress specifies the Controller to which the PowerShell module will connect. However, in this cmdlet, not only is this the address of the Controller to connect to, it is also the Controller that is to be added to this Site.

If the user running this cmdlet does not have privilege to add users to the Database, then use either the DoNotudpateDatabaseServer switch or supply alternative credentials using one or more of the Credential arguments.

The command can fail for the following reasons:

  • The Controller is already a member of a Site.
  • The DoNotUpdateDatabaseServer parameter was specified, but the permissions for the Controller are not already in the Database. Either add the permissions using Get-XDDatabaseSchema or allow this cmdlet to add the permissions automatically.
  • The person running the cmdlet, or the supplied credentials, do not have sufficient privilege to update the Database. Either run this cmdlet as a user that has administrator privilege to the Database, or supply an account with suitable privileges using the PSCredential parameter(s).
Add-XDController