Improve your StoreFront 3 configuration with a list of small tweaks.
Disable NetBIOS over TCP/IP
Disable generatePublisherEvidence
1 2 3 4 5 6 |
<?xml version=”1.0″ encoding=”utf-8″ ?> <configuration> <runtime> <generatePublisherEvidence enabled=”false” /> </runtime> </configuration> |
Disable certificate revocation check
Uncheck Check for server certificate revocation and Check for publisher’s certifcate revocation.
Enable Socket Pooling
1 |
pooledSockets="on" |
WorkSpace Control - Disable Logoff Disconnect
1 |
<workspaceControl enabled="true" autoReconnectAtLogon="false" logoffAction="none" showReconnectButton="false" showDisconnectButton="false" /> |
Change the logoffAction to none.
WorkSpace Control - Disable Autoconnect
1 |
<workspaceControl enabled="true" autoReconnectAtLogon="false" logoffAction="none" showReconnectButton="false" showDisconnectButton="false" /> |
Change the autoReconnectAtLogon to false.
Disable WorkSpace Control
1 |
<workspaceControl enabled="false" autoReconnectAtLogon="false" logoffAction="none" showReconnectButton="false" showDisconnectButton="false" /> |
Change the enabled to false.
Enable XML Authentication
- Import StoreFront PowerShell snapins
1& "$Env:PROGRAMFILES\Citrix\Receiver StoreFront\Scripts\ImportModules.ps1" - Enable the feature in the Authentication Service
1Set-DSXmlServiceAuthentication -SiteId 1 -VirtualPath /Citrix/Authentication - Create farmset to configure the data collectors/brokers where authentication will occur.
1234567891011121314151617181920212223242526272829303132333435$Farm = @{FarmName = "Farm"Port = "443"SSLRelayPort = 443TransportType = "HTTPS"LoadBalance = $falseAllFailedBypassDuration = 5Servers = @("server1", “server2”)Platform = @{FarmType = "XenApp"Caption = "Caption"DisplayName = "Authentication Farm"}}$FarmSet = @{Name = "Default"Farms = @( $Farm )} - Configure XML service-based authentication to use the farmset.
1Update-DSFarmSet -IISSiteId 1 -VirtualPath "/Citrix/Authentication" -Farmset $FarmSet
Increase Timeout
Force Fullscreen for Desktops
- Open C:\inetpub\wwwroot\Citrix\<STORE>\App_Data\default.ica file in notepad.
- Under the [Application] section of the file, add the following line:
1DesktopViewer-ForceFullScreenStartup=true - Save the default.ica file.
- Open the command prompt (cmd) and run iisreset.
Disable Activate screen
Go to C:\inetpub\wwwroot\Citrix\<Store>Web and open the web.config file.
1 |
<receiverConfiguration enabled=”false” downloadURL=”ServiceRecord/GetDocument/receiverconfig.cr” /> |
Change the value of enabled to false.
Redirect the StoreFront default website URL
Change the URL to match your configuration.
Display Domains List on the StoreFront logon page
Configure your default domain to ease the logon for your users.
Enable Active Directory password reset
My favorite configuration is “When Expired“.
Disable the plugin assistant
1 |
<pluginAssistant enabled="false" upgradeAtLogin="false"> |
Change the default view
1 |
<uiViews showDesktopsView="true" showAppsView="true" defaultView="auto" /> |
You can change the value to :
- Auto: Favorites tab is displayed by default
- Desktops: Desktops tab is displayed by default
- Apps: Applications Tab is displayed by default
You can also disable the tabs.
1 |
<uiViews showDesktopsView="true" showAppsView="true" defaultView="auto" /> |
Change the values of ShowDesktopsView and ShowAppsView to false.
Enable Tracing
1 2 3 4 5 6 7 8 |
Add-PSSnapin Citrix.DeliveryServices.Framework.Commands Set-DSTraceLevel –All –TraceLevel Verbose Restart-Service CitrixConfig* Restart-Service CitrixCreden* Restart-Service "Citrix Peer*" -Force Restart-Service Citrixsub* |
Trace are located on C:\Program Files\Citrix\Receiver StoreFront\admin\trace.
Download DebugView.
Unzip DebugView and Launch it. Change the Capture to Capture Global Win32.
Then you will start to see the trace.
When you are done with troubleshooting, remember to disable the trace.
1 2 3 4 5 6 7 8 |
Add-PSSnapin Citrix.DeliveryServices.Framework.Commands Set-DSTraceLevel –All –TraceLevel Off Restart-Service CitrixConfig* Restart-Service CitrixCreden* Restart-Service "Citrix Peer*" -Force Restart-Service Citrixsub* |
Navigate to a folder
Add the following lines:
1 2 3 |
CTXS.Extensions.afterDisplayHomeScreen = function (callback) { CTXS.ExtensionAPI.navigateToFolder('folder/path'); }; |
Replace folder/path by your folder name or the path of your folder.
To redirect to the root of the categories, add the following lines:
1 2 3 |
CTXS.Extensions.afterDisplayHomeScreen = function (callback) { CTXS.ExtensionAPI.navigateToFolder('/'); }; |
Remove favorites
Rename StoreFront webpage
1 2 3 4 5 6 |
(function ($) { $.localization.customStringBundle("en", { AppStore: "Citrix Applications", Example2: "This is another example" }); })(jQuery); |
Change/Remove background
- ctxs.large-ui.min_A97EEF90ADE71C48
- ctxs.medium-ui.min_2397A9404AD6F3CB
- ctxs.no-js-ui.min_F673C4CFF9E86D60
- ctxs.small-ui.min_A915C6B4D6DEB4E5
Remove or change the following to modify the background:
1 |
background-image:url(../images/common/ReceiverFullScreenBackground_46E559C0E6B5A27B.jpg); |
Add footer
1 |
$('#customBottom').html("Your Text"); |
Now open style.css
In my example, I am aligning my text on the right of the page and displaying my company logo centered.
1 2 3 4 5 6 7 8 9 10 11 |
#customBottom { text-align: right; background-image: url('<YOURIMAGE>'); background-size: <WIDTH> <HEIGHT>; background-repeat: no-repeat; background-color:<BACKGROUNDCOLOR>; background-position: center; height:<HEIGHT>; color: black; font-size: 12px; } |
Note: you need to change <HEIGHT>, <YOURIMAGE>, <WIDTH> and <BACKGROUNDCOLOR> with your own values.
The footer will be displayed always on top.
Add disclaimer
- Before Logon:
1 2 3 4 5 6 7 8 9 |
CTXS.Extensions.beforeLogon = function (callback) { doneClickThrough = true; CTXS.ExtensionAPI.showMessage({ messageTitle: "Welcome to the new StoreFront!", okButtonText: "Continue", okAction: callback }); }; |
- Before Main Screen:
1 2 3 4 5 6 7 8 9 10 11 12 |
CTXS.Extensions.beforeDisplayHomeScreen = function (callback) { if (!doneClickThrough) { CTXS.ExtensionAPI.showMessage({ messageTitle: "Welcome to the new StoreFront!", okButtonText: "Continue", okAction: callback }); } else { callback(); } }; |
Add Header
Go to C:\inetpub\wwwroot\Citrix\MainStoreWeb\custom and open script.js
1 |
$('#customTop').html("<a href='http://receiver.citrix.com/' target='_blank'><img src='media/rec-win-icon_1.png'> Download Citrix Receiver</a>"); |
open style.css
1 2 3 4 5 6 7 8 9 10 11 12 |
#customTop { text-align: center; background-color:#f9f9f9; color: #574f5b; font-size: 12px; padding-top:5px; margin-bottom:-20px; } #customTop a { color: #574f5b; } |
Here is the receiver icon in case you want to use it.
Add a random text in the footer
Here is how to do that.
First you need to go to C:\inetpub\wwwroot\Citrix\MainStoreWeb\custom and open script.js and add the following javascript code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
var lines; var randomNumber; var lastRandomNumber; $( document ).ready(function() { // load the trivia from the server $.ajax({ url: 'trivia.txt' }).done(function(content) { // normalize the line breaks, then split into lines lines = content.replace(/\r\n| \r/g, '\n').trim().split('\n'); // only set up the click handler if there were lines found if (lines && lines.length) { // loop to prevent repeating the last random number while (randomNumber === lastRandomNumber) { randomNumber = parseInt(Math.random() * lines.length); // check to prevent infinite loop if (lines.length === 1) { break; } } // keep track of the last random number lastRandomNumber = randomNumber; // show the corresponding line $('#trivia').text(lines [randomNumber]); } }); }); |
By default, the script will try to find trivia.txt located in C:\inetpub\wwwroot\Citrix\MainStoreWeb.
You also need to add the following to display the footer and the random message (please review the “Add a footer” section in this post) :
1 |
$('#customBottom').html("<p id='trivia'></p>"); |
Then, open style.css (in the same directory) and add the following:
1 2 3 |
#trivia { font: italic 14pt Arial; } |
You can modify the CSS to fit your needs.
The last step is to create trivia.txt in C:\inetpub\wwwroot\Citrix\MainStoreWeb.
1 2 3 4 5 6 |
Message 1 Message 2 Message 3 Message 4 Message 5 Message 6 |
StoreFront will display a different message every time you refresh the page.
Note: I’ve adapted the script from this website.
Display server name with Citrix StoreFront 3
Hi,
Tx for this great article ! Any ideas on how I could use the “defaultView” option of the web.config file to not only redirect to the “Apps” section by also in the “Categories” sub-tab ?
thanks
Francis
Hello Francis, I’ve updated the article and added the configuration to redirect to a folder.
Thank you for the usefull tweaks!
I want that users can choose for the html5client after they are logged in.
Do you know how i can change the header because i want to place a hyperlink withe the html5-url in the header.
Grz.
Richard
Richard, I’ve updated the article with the procedure to add a hyperlink in the header.
Hi I love you Citrix StoreFront 3 optimizations. I would like to print or copy them all. Can you implement a Print Button?
Can implement a Print Button?
Best Regards
Hello Punktis,
I’ve added a print button. Unfortunately, some elements are not compatible (ex: code blocs).
Hi I love you Citrix StoreFront 3 optimizations. I would like to print or copy them all. Can you implement a Print Button?
Can you implement a Print Button?
Best Regards
Or can you tell me how i can put the hyperlink in the footer?
Thank You in Advance.
Richard
Hello Richard,
Follow the procedure to add a footer and then replace
$(‘#customBottom’).html(“html link”);
You can use the following website for the link html code:
http://www.w3schools.com/html/html_links.asp
That should do it.
Hi Guru,
Thanks for your answer.
Unfortunately a html hyperlink doesnt work.
I tried to replace it with:
Visit our HTML tutorial
Do you have another suggestion?
$(‘#customBottom’).html(“<a href =’http://www.w3schools.com’>Visit W3Schools </a>”);
I’ve tested that on my Storefront and it works. I am able to see the link on the bottom.
Thanks guru, i changed some quotes and now its working, thank you for your help!
Hello Guru,
Along the same lines as Richard with the footer question…is there a way to substitute HTML content for something else? Say, dynamic content from a text file? I have a “message of the day” that would work perfectly in the footer…but, of course, the message changes each day. It’s source is a generic text file that gets generated each night.
Thoughts?
Thank you,
Craig
Hey Craig,
I’ve updated the post. Please follow the procedure.
Hello Craig
Thanks for the great info. One comment regarding the suggestion to use socket pooling. This line does not exist anymore in Storefront 3. Any ideas?
BR Mathias
pooledSockets=”off” should be configured in the web.config of your main store (not the web store).
Ex : C:\inetpub\wwwroot\Citrix\MainStore
Rgds,
Hi Craig
A great article that has helped me enormously getting our storefront 3.0.1 proof of concept up and working quickly.
Is there somewhere that lists all the extensions etc that can be used in the script file to tweak the site? I am trying to dynamically strip off a prefix which is applied to the name of all our XenApp applications but I am struggling to find the correct way to do it… (we have the prefix to avoid confusion when apps are presented in the start menu)
thanks
I have found a solution to my issue… 🙂
FYI, the code I have implemented is:
CTXS.Extensions.preProcessAppData = function (store, json) {
for ( i = 0; i < json.resources.length; i++) {
if (json.resources[i].name.substring(0,9) == "Citrix – ") {
json.resources[i].name = json.resources[i].name.substring(9);
}
}
};
regards
We are looking to do the same thing, where is this code applied ??
Update… upgraded to v3.6 and the site stopped working properly…. no applications visible and no applications/desktops/favourites icons at top of page.
After a bit of experimentation it turns out the code above breaks it all 🙁 commented it out in the scripts file and all working again.
So back to the drawing board on that issue 🙁 will post if I find a fix to get this working again…..
OOps! correction – the code above does still work! It is the code to prevent continual scrolling of app bundles that breaks 3.6 …….
turns out this is a function in 3.6 so the old script isn’t needed… so to disable continual scrolling of the App Bundles in 3.6 jus add the following single line to the scripts.js file
CTXS.UI.repeatAppGroupTiles = false;
🙂
Thanks Dave.
Just sharing a discovery……..
If you use code in the style.css file to update the pictures used in the bundles, and you don’t create the featured app groups first… then the system gets very confused and starts addressing the bundles incorrectly. At one point I ahd all 3 bundles maked as appBundle1 ……
I had to comment out the code in style.css then recreate the app groups from scratch before re-enabling.
On a related note, the app bundle numbering seems a trifle odd. I created 3 app groups and the bundles are numbered 7,9,8 in that order!… took some time inspecting elements in the browser to spot this….
Thank you for sharing!
Just had to refer back to my own post on here when setting up a new 3.8 server!
One additional point to note: When creating the new bundle groups in the storefront console, assign each group a different background from the default selection. this will ensure that bundle groups are numbered individually in the code. you can then edit the style.css file with the custom backgrounds you wish to add 🙂
Hi Nico,
Very nice post … as usual !!
Keep going 🙂
Regards
Stéphane
Heyyy, Thanks Stephane :).
Hi, once again, a great article! Another idea: adding a footer, telling you the SF-server name (or a part of it). So the admin can see easily which path LB e.g. on CNS took.
BR Andreas
Hi Nico
Have you seen any code to make the Featured Apps tiles smaller in StoreFront? On small screens they tend to take up a lot of space…
Hi Nicolas,
Thanks for your great article. I have used the “add header” section to post a link to download the receiver however since wee also have Mac users , I want to have a second line in the header with a link to the Mac client , how can I do this?
Thanks again for your great blog!
Add the br tag in the html code and then put your second link.
more info here: http://www.w3schools.com/tags/tag_br.asp
Thanks a lot for the reply , and sorry that it took me some time to reply back , when I add the tag then the first link will also disappear because I think it messes up the alignment. Here is the code I used
$(‘#customTop’).html(“ Download Citrix Receiver for Windows” (“ Download Citrix Receiver for Mac” );
I would really appreciate if you would help!
Hi Amir, it was an issue witth the double quotes. I sent you the proper code by email.
I am having trouble putting together the proper code to display the storefront server name on the web page depending on the server hit in a load balanced VIP. I want to show the name or preferably a portion of the name in the footer. I was trying to use %computername% or a custom variable that I created.
Hi Tony,
Please take a look at the following article :
https://www.citrixguru.com/2016/02/27/display-server-name-with-citrix-storefront-3/
Thank you for following my blog.
Hi Tony…
Could it be possible to add a link to a password reset site on the front page of the Storefront 3.0. I know you can add footers and headers, but that is AFTER you are logged in… I want the Link to be pressent BEFORE login in the Storefront…
The password Reset site, we want to point to gives best sense BEFORE actual login 😉
Jesper
Take a look at this article : https://www.citrixguru.com/2016/03/08/lab-ultimate-storefront-customization-guide/
Hi Nicolas, great post!, i have one question: why Modify the ASP.NET.CONFIG file located in C:\Windows\Microsoft.NET\Framework64\v2.0.50727 and C:\Windows\Microsoft.NET\Framework\v2.0.50727
In my IIS i have NET Framework v4.0 in the Applications Pools, so i need modify the ASPNET.CONF in C:\Windows\Microsoft.NET\Framework\v4.0.30319
OR
Change de NET Framework version in the IIS to v2.0? a later modify the ASPNET.CONF file?
I use StoreFront 3.0 with XenDesktop/XenApp 7.6
Regards.
hi ,
i want to add a link to logon page that opens a pdf file or a word document to explain things to users.. is that possible?
thank you and have a nice day
Regards
yeah, check out this article : Lab: Part 22 – Ultimate StoreFront 3 customization guide
I am trying to resize the icons in the storefront UI using the custom style.css.
I saw that there are css files for large, medium and small UIs in the file system (ctxs.large-ui.min_A97EEF90ADE71C48, ctxs.medium-ui.min_2397A9404AD6F3CB, ctxs.no-js-ui.min_F673C4CFF9E86D60, ctxs.small-ui.min_A915C6B4D6DEB4E5).
Is it possible to just switch to a predefined small UI instead of resizing all the icons and links manually in the style.css?
Thanks and best regards,
Stefan
RB7188 Wayfarer Black outlet
I think the article is very helpful for people,it has solved our problem,thanks!