Das folgende PowerShell Skript zeigt beispielhaft wie Sie eine Citrix XenApp 6.0 oder 6.5 Farm automatisch konfigurieren können, und wie Sie Farmobjekte wie Published Applications, Load Evaluatoren, Policies, Worker Groups, etc. automatisiert erstellen können.
Weiterführende Informationen finden Sie unter: http://community.citrix.com/display/xa/XenApp+6+PowerShell+SDK
# Load Snap-in's
Add-PSSnapin Citrix.XenApp.Commands
Add-PSSnapin Citrix.Common.Commands
Add-PSSnapin Citrix.Common.GroupPolicy
# Create server folders
New-XAFolder "Servers/Controllers" -ErrorAction SilentlyContinue New-XAFolder "Servers/Workers" -ErrorAction SilentlyContinue
# Move server to server folders (based on computername)
if ($env:computername -like "XENAPP001" -or $env:computername -like "XENAPP002") {Move-XAServer $env:computername -ToFolderPath Servers/Controllers -ErrorAction SilentlyContinue}
else {Move-XAServer $env:computername -ToFolderPath Servers/Workers -ErrorAction SilentlyContinue}
# Set zone preference for primary controller
if ($env:computername -like "XENAPP001") {Set-XAServerZone -Servername $env:computername -ElectionPreference MostPreferred}
# Set Zone Preference for backup controller
if ($env:computername -like "XENAPP002") {Set-XAServerZone -ServerName $env:computername -ElectionPreference Preferred}
# Create new offline (full load) load evaluator
New-XALoadEvaluator "Offline" -Description "Offline" -MondaySchedule 00:00-00:00 -TuesdaySchedule 00:00-00:00 -WednesdaySchedule 00:00-00:00 -ThursdaySchedule 00:00-00:00 -FridaySchedule 00:00-00:00 -SaturdaySchedule 00:00-00:00 -SundaySchedule 00:00-00:00
# Create new custom load evaluator
New-XALoadEvaluator "CustomLE1" -Description "CustomLE1" -CpuUtilization 10, 75 -MemoryUsage 10, 75 -ServerUserLoad 20
# Assign load evaluators to servers (NOTE! Only for XenApp 6.0, in newer version this setting is moved to the policy!)
if ($env:computername -like "XENAPP001" -or $env:computername -like "XENAPP002") {Set-XAServerLoadEvaluator -LoadEvaluatorName "Offline" $env:computername} else {Set-XAServerLoadEvaluator -LoadEvaluatorName "CustomLE1" $env:computername}
# Add XenApp administrators
New-XAAdministrator "YourDomain\Domain Admins" -AdministratorType Full New-XAAdministrator "YourDomain\Citrix Admins" -AdministratorType Full New-XAAdministrator "YourDomain\Citrix Support" -AdministratorType ReadOnly
# Configure edition
Set-XAServerEdition -Name $env:computername -Edition Enterprise
# Create Application folders
New-XAFolder "Applications/Utilities" New-XAFolder "Applications/Desktops"
# Create Desktop Publ. App.
New-XAApplication -SkipLogOnCheck -SkipPassThru -Force -ApplicationType ServerDesktop -DisplayName "Desktop" -Description "Desktop" -FolderPath "Applications/Desktops" -ServerNames $env:computername –Accounts "YourDomain\Domain Admins" -ClientFolder "Desktops" -AddToClientStartMenu $true -WindowType 75%
# Create Internet Explorer Publ.App incl. Custom Icon
New-XAApplication -Force -SkipLogOnCheck -SkipPassThru -ApplicationType ServerInstalled -DisplayName "Internet Explorer" -CommandLineExecutable """C:\Program Files\Internet Explorer\IEXPLORE.EXE"" https://www.mariotti.de/" -WorkingDirectory "C:\Program Files\Internet Explorer" -ServerNames $computername -Description "Internet Explorer" -FolderPath "Applications/Utilities" -ClientFolder "Pilot" -AddToClientStartMenu $true -AddToClientDesktop $true -Accounts "YourDomain\Domain Users " -EncodedIconData (Get-CtxIcon "C:\Program Files\Internet Explorer\IEXPLORE.EXE" -index 2)
# Create a policy drive object (to access the policy settings)
New-PSDrive -Name LocalFarmGPO -PSProvider CitrixGroupPolicy -FarmGPO $env:Computername -Root \
# Change some policy settings in the "Unfiltered" policy
Set-ItemProperty LocalFarmGPO:\Computer\Unfiltered\Settings\Licensing\LicenseServerPort Value "27000"
Set-ItemProperty LocalFarmGPO:\Computer\Unfiltered\Settings\Licensing\LicenseServerHostName Value "YourLicenseServer"
Set-ItemProperty LocalFarmGPO:\User\Printermapping\Settings\ICA\Printing\ClientPrinters\ClientPrinterAutoCreation Value "AllPrinters"
Set-ItemProperty LocalFarmGPO:\User\Printermapping\Settings\ICA\Printing\Drivers\InboxDriverAutoInstallation State "Disabled"
Set-ItemProperty LocalFarmGPO:\User\Printermapping\Settings\ICA\Printing\ClientPrinterRedirection State "Enabled"
Set-ItemProperty LocalFarmGPO:\User\Printermapping\Settings\ICA\Printing\UniversalPrinting\UniversalPrinting Value "Updonly"
Set-ItemProperty LocalFarmGPO:\User\Printermapping\Settings\ICA\Printing\WaitForPrintersToBeCreated State "Disabled"
Set-ItemProperty LocalFarmGPO:\User\Drivemapping\Settings\ICA\FileRedirection\AutoConnectDrives State "Enabled"
Set-ItemProperty LocalFarmGPO:\User\Drivemapping\Settings\ICA\FileRedirection\ClientDriveRedirection State "Enabled"
Set-ItemProperty LocalFarmGPO:\User\Drivemapping\Settings\ICA\FileRedirection\ClientFloppyDrives State "Disabled"
Set-ItemProperty LocalFarmGPO:\User\Drivemapping\Settings\ICA\FileRedirection\ClientFixedDrives State "Enabled"
Set-ItemProperty LocalFarmGPO:\User\Drivemapping\Settings\ICA\FileRedirection\ClientNetworkDrives State "Enabled"
Set-ItemProperty LocalFarmGPO:\User\Drivemapping\Settings\ICA\FileRedirection\ClientOpticalDrives State "Disabled"
Set-ItemProperty LocalFarmGPO:\User\Drivemapping\Settings\ICA\FileRedirection\ClientRemoveableDrives State "Disabled"
Set-ItemProperty LocalFarmGPO:\User\Drivemapping\Settings\ICA\FileRedirection\ClientDriveLetterPreservation State "Enabled"
Set-ItemProperty LocalFarmGPO:\User\Drivemapping\Settings\ICA\USBDevices\UsbDeviceRedirection State "Disabled"
Set-ItemProperty LocalFarmGPO:\User\Drivemapping\Settings\ICA\USBDevices\UsbPlugAndPlayRedirection State "Disabled"
# List all available policy settings (to get an idea what other policy settings can be configured)
Get-ChildItem LocalFarmGPO:\Computer\Unfiltered –Recurse Get-ChildItem LocalFarmGPO:\User\Unfiltered -Recurse
# Create a worker group and assign a server
New-XAWorkerGroup -WorkerGroupName "WorkerGroupWithServer" -Description "WorkerGroupWithServer" -ErrorAction SilentlyContinue
Add-XAWorkerGroupServer "WorkerGroupWithServer" -ServerNames $env:computername
# Create a worker group with AD OU assignment
New-XAWorkerGroup -WorkerGroupName "WorkerGroupWithOU" -Description "WorkerGroupWithOU" -OUs 'OU=XenApp Server,DC=YourSubDomain,DC=YourTopLevelDomain' -ErrorAction SilentlyContinue
# Assign a worker group to all publ. apps
Get-XAApplication -FolderPath "Applications" | set-XAApplication -WorkerGroupNames "WorkerGroupWithServer"
# Create a new custom policy including a filter
New-Item "LocalFarmGPO:\Computer\CustomPolicy1" -ErrorAction SilentlyContinue
New-Item -Path "LocalFarmGPO:\Computer\CustomPolicy1\Filters\Workergroup" -value "WorkerGroupWithServer" -Type "Workergroup" -ErrorAction SilentlyContinue
Set-ItemProperty "LocalFarmGPO:\Computer\CustomPolicy1\Settings\ICA\Shadowing\Shadowing" State "Enabled"
Das folgende Skript zeigt beispielhaft wie man eine Citrix XenApp 6.0 oder 6.5 Farm automatisch mittels PowerShell konfiguriert