Die XenDesktop 7 Controller Installation lässt sich bzgl. des Setups durch Kommandozeilenparameter automatisch installieren, und die darauf folgenden Einrichtungsschritte wie Datenbankanlage und Erstkonfiguration lassen sich mittels PowerShell automatisieren.
Details zu den Kommandozeilenparametern findet man hier: http://support.citrix.com/proddocs/topic/xendesktop-7/cds-install-command.html und Details zu den PowerShell Cmdlets findet man hier: http://support.citrix.com/proddocs/topic/xendesktop-7/cds-sdk-cmdlet-help.html
In XenDesktop 7 gibt es nun erstmalig die Möglichkeit auch die Datenbank per PowerShell automatisiert anzulegen, die Citrix Dokumentation schweigt sich hierzu aktuell leider noch etwas aus. Die PowerShell Kommandos hierzu lauten New-XDDatabase und New-XDSite und befinden sich in Citrix.XenDesktop.Admin Modul. Die diversen andern PowerShell Befehle sind wiederum in den Citrix Addins zu finden. Erfreulich hervorzuheben ist, dass man beim Verwenden der PowerShell Variante auch die Möglichkeit hat, getrennte Datenbanken für die Site, das Logging und das Monitoring anzulegen, und nicht nur eine Datenbank für alles, wenn man das Setup per GUI verwendet.
Hier beispielhaft die benötigten Kommandozeilenparameter und PowerShell Befehle:
# XenDesktop Controller Installation (w/o SQL express)
XenDesktopServerSetup.exe /noreboot /quiet /configure_firewall /components CONTROLLER,DESKTOPSTUDIO,DESKTOPDIRECTOR /nosql
# Load snapin and module
Import-Module Citrix.XenDesktop.Admin
Add-PSSnapin Citrix.*
# Create databases (only on first controller of the site)
New-XDDatabase -AdminAddress YourController -DatabaseServer YourSqlServer\YourInstance -AllDefaultDatabases -SiteName YourSite
# Create site (only on first controller of the site)
New-XDSite -AdminAddress YourController -DatabaseServer YourSqlServer\YourInstance -AllDefaultDatabases -SiteName YourSite
# Join additional controller to existing site (run this only on controller 2-n, first controller must be online)
Add-XDController -AdminAddress localhost -SiteControllerAddress YourFirstXDController
# Add domain admin Group to built-in full admin role/scopre
New-AdminAdministrator -AdminAddress localhost -Name 'YourDomain\Domain Admins'
Add-AdminRight -AdminAddress localhost -Administrator 'YourDomain\Domain Admins' -Role 'df20d111-4d0b-4502-ad12-5e8b3afc62a1' -Scope '00000000-0000-0000-0000-000000000000'
# Configure the license serve and confirm the certificate hast
Set-XDLicensing -AdminAddress YourController -LicenseServerAddress YourLicenseServer -LicenseServerPort 27000
Set-ConfigSiteMetadata -AdminAddress localhost -Name 'CertificateHash' -Value$(Get-LicCertificate -AdminAddress 'https://YourLicenseServer').CertHash