When publishing an application using the “manuall method” you’ll find yourself limited to chose between a poor set of icons and you do not have the ability to upload your own icons through the XenApp and XenDesktop Service portal (Cloud Studio portal)
To solve this issue you need to use the Remote PowerShell SDK
Download and install the SDK from here: http://download.apps.cloud.com/CitrixPoshSdk.exe
Attention: Do not install or run this SDK’s cmdlets on your Cloud Connectors
When done, do the following:
Start PowerShell as administrator and add the Citrix Snapins by running the following command:
asnp citrix*
Now we need to authenticate to Citrix Cloud by using the Get-XdAuthentication cmdlet, simply enter:
Get-XDAuthentication
(or in case you did configure a profile, you may want to authenticate using that by typing:
Get-XDAuthentication -ProfileName “Your ProfileName”
An authentication windows pops up… Enter your credentials…
Once authenticated you are good to go…
So let’s suppose we would like to change all our Microsoft Office icons using the MAC based ones… You can download them from here
Now simply run the following command to change the Icons for a specific application, in this case (Outlook 2016)
$icon=Get-BrokerIcon -FileName "C:\Downloads\ms_outlook.ico" |New-BrokerIcon | Select-Object Uid Get-BrokerApplication -name "Outlook 2016" | Set-BrokerApplication -IconUid $icon.Uid
Now logon on to your “XenApp and Xendesktop Service” and you’ll see your new icons assigned…
Logon to Storefront and take a look there as well…
If you would like to export Icons from a XenApp 6.x farm while migrating to a cloud based environment, you can simply run the following script on a data collector:
Start by creatign a new folder under for example “C: drive” and call it “Icons”
Add-PSSnapin *Citrix*
Get-XAApplication | % {
$BrowserName = $_.BrowserName;
$icon = Get-XAApplicationIcon -BrowserName $BrowserName
$bytes = [Convert]::FromBase64String($icon.EncodedIconData)
Add-Content -Encoding Byte -Value $bytes -Path “c:\Icons\$($BrowserName).ico”
}