Sunday, February 18, 2024
Get A List of Unused Citrix Applications
Sunday, January 14, 2024
Custom Desktop Icons for StoreFront
A forum user asked if it was possible to use their own custom icon for desktops in StoreFront. While the icons are displayed within StoreFront, the actual icon management is done on a Delivery Controller.
Get-BrokerIcon | Select Uid | ft –auto
Load the icon with the following command:
Get-CtxIcon -FileName c:\icons\custom.ico | New-BrokerIcon
If you re-issue the Get-BrokerIcon command above, you should see the new ID (#13).
We now need to assign the icon to one or more delivery groups. Let's see what icons are currently assigned to the delivery groups:
Get-BrokerDesktopGroup | Select name, IconUid
Unless you've already made changes, most delivery groups will probably be using icon #1. To change the icon for a specific delivery group, issue the following command:
Set-BrokerDesktopGroup -name “Remote PCs” -IconUid 13 (the new icon added above)
Sam Jacobs is the Director of Technology at Newtek Technology Solutions (formerly IPM, the longest standing Citrix Platinum Partner on the East Coast). With more than 40 years of IT consulting, Sam is a Citrix NetScaler, StoreFront, and Web Interface customization and integration expert. He holds Microsoft Azure Developer and Citrix CCP-N certifications, and was a frequent contributor to the CUGC CTP blog. He has presented advanced breakout sessions at Citrix Synergy for 6 years on ADC (NetScaler) and StoreFront customizations and integration. He is one of the top Citrix Support Forum contributors, and has earned industry praise for the tools he has developed to make NetScaler, StoreFront, and Web Interface easier to manage for administrators and more intuitive for end users. Sam became a Citrix Technology Professional (CTP) in 2015, and can be reached at sjacobsCTP@gmail.com.
Tuesday, October 10, 2023
Citrix Releases StoreFront 2308
On September 14, 2023, Citrix released StoreFront 2308. The following features were added to this version:
App Protection through a web browser
App Protection provides an additional level of security by blocking keyloggers and screen capture. Previously, this functionality was only available when accessing a store through Citrix Workspace apps for Windows, Mac and Linux. When viewing a store through a web browser, protected apps were not displayed. With this release it is now possible to configure a store website to display apps requiring App Protection when viewed through a browser, as long as StoreFront has detected that the user has a sufficiently new version of Citrix Workspace app for Windows, Mac or Linux installed that will be used to launch the app.
Advanced Health Check is now enabled by default
StoreFront runs periodic health checks on each Citrix Virtual Apps and Desktops server and Cloud Connector to reduce the impact of intermittent server availability. With Advanced heath check StoreFront performs a more in-depth check that is more likely to detect any issues.
From this release onward, the advance health check feature is enabled by default. Previously it had to be enabled manually.
The following StoreFront features have been deprecated in this release:
XenApp Services
From this release onward, support for XenApp Services (also known as PNAgent) is deprecated. It will be removed in a future release.
XenApp 6.5
It is no longer possible to add new XenApp 6.5 resource feeds using the StoreFront admin console. It is still possible to add them using PowerShell Add-STFStoreFarm specifying the FarmType as XenApp.
There were also a number of fixed issues in the release.
Sunday, September 10, 2023
Custom Timeouts for Citrix StoreFront - Revisited
Sunday, July 16, 2023
Custom Timeouts for Citrix StoreFront
One of the features that I have found missing in StoreFront is the ability to set different timeouts for different categories of users. For example, you may wish to have a shorter timeout for users in a sensitive department (e.g. Finance). If you feel the same way, read on ...
Let's assume that you would like the Finance department to have a shorter timeout period (e.g. 5 minutes) rather than the default value of 20 minutes. First, you would need a way to determine if the user logging on to StoreFront is in the Finance department. You would then need to set the appropriate timeout based on the user's membership.
The first requirement may be accomplished by adding the following .Net .aspx file (inGroup.aspx) to the custom directory. You pass it the user's ID and the department (OU) you wish to check for membership. and it will return true if the user is a member of that OU or false if the user is not. It is beyond the scope of this post to explain each of the routines in the file, but two points need to be mentioned.
1) You must edit the file at line #11 to reflect the user root OU and your company's domain:
string rootOU = "OU=Accounts,DC=domain,DC=com";
2) You need to add an assembly to the file web.config in your store's web directory (e.g. /Citrix/StoreWeb). To do this:
- make a backup of the web.config file.
- open the file and search for <assemblies>
<assemblies>
<add assembly="System.Web.Mvc, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
- insert the following line right before the closing </assemblies> tag
<add assembly="System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
- which should then look like
<add assembly="System.Web.Mvc, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</assemblies>
- save the file
You also need to copy the contents of this script file (script.js) into the script file currently in the custom directory (after backing it up, of course). At the very top of the file you will see:
var specialGroup = "Finance";
var specialTimeoutMins = 5;
Sunday, May 28, 2023
QoS Indicator for Citrix StoreFront
After the successful release of Setting user Expectations, which showed you how to add a QoS (Quality of Service) indicator to the NetScaler logon screen, I've had requests for a similar indicator for StoreFront.
As a bonus, we will have the display auto-refresh at a custom-defined interval. We will set it to every 15 seconds, but you can very easily modify that.
Note: The code in this post has been written for StoreFront version 2203. The code may need to be tweaked for other versions of StoreFront.
All of the modifications may be done via updates within the custom directory of the site, which means that they will be replicated to all servers in the StoreFront group when you propagate.
The following code should be added to script.js (in the custom directory):
var refreshIntervalSecs = 15;
Sunday, April 16, 2023
Setting User Expectations - Part 3
In Part 1 of this series, we discussed how to create a QoS indicator to inform the user of their expected experience before they even logon by making a few simple changes to the NetScaler. In Part 2 of the series, we added a graphical representation of the results. In this final installment, we will add a reference page that will display the various ranges of the QoS indicator to the user.
All of the graphics needed have already been created and uploaded in Part 2. We simply need to create a page that references the various ranges, and change the display into a hyperlink that when clicked, opens up the reference page.
You can download the above page here:
https://samjacobs.sharefile.com/d-s4eaf8e876fe449afada749110b5ae48c
Let's modify the original display by adding a hyperlink to the above page.
Make a backup of our original file: /var/netscaler/logon/LogonPoint/tmindex.html
Open up the file and search for:
QoStext.innerHTML = 'Connection Strength:<br>'+QoSrange;
Add a hyperlink to our reference page by changing the above to:
QoStext.innerHTML = '<a href="QoS.html">Connection Strength:<br>'+QoSrange+'</a>';
Then save the file. Now when you click on the text of the QoS indicator, the reference page will be displayed.





