Procedure to reset on an Mac: Open the Workspace App. In the upper left corner of your screen, next to the Apple symbol, click on Citrix Workspace and select Preferences: In the Preferences window, click on the Accounts tab then select the VDI account shown in the middle of the window. Next, click the Minus button and OK to confirm removing the. In Citrix Receiver 4.6 or earlier (except 4.4.4000), the CleanUp.exe will terminate all Citrix Receiver processes that are running on a server VDA / XenApp 6.x server and not just the current session running the cleanup. Run the following command from the command line interface to reset Receiver. Jan 25, 2017 You can also use the command line interface to reset Receiver or try and create a script for the same: 'C: Program Files (x86) Citrix ICA Client SelfServicePlugin CleanUp.exe' -cleanUser' GUI Method. Right click the Receiver icon in the notification area and select Advanced Preferences. In the dialog, select Reset Receiver and click OK. Mar 12, 2014 In Citrix Receiver 4.6 or earlier (except 4.4.4000), the CleanUp.exe will terminate all Citrix Receiver processes that are running on a server VDA / XenApp 6.x server and not just the current session running the cleanup. Run the following command from the command line interface to reset Receiver.
To keep the IUanyWare environment up to date, applications are frequently added, modified, or moved to a new location within the environment.
If one or more applications are missing from your menu of previously selected applications, or you cannot launch an application, refresh Citrix Workspace app/Receiver:
Method 1
- In the FAVORITES tab, click Details next to the application that will not open. Click Remove.
- Go to the APPS or DESKTOPS tab, and find the desired application. Click Details, and then click Add to Favorites.
Method 2
- Click the drop-down next to your name in the upper-right corner of the menu.
- Click Refresh Apps.
Method 3
- Click the drop-down next to your name in the upper-right corner of the menu, and then log off.
- In the Windows system tray, right-click the Workspace/Receiver icon and click Exit.
- Run a Windows search for
Workspace
orReceiver
to reopen Citrix Workspace app/Receiver, entering your login credentials if prompted.
Method 4
- Right-click the Workspace/Receiver icon in the system tray.
- Click Advanced Preferences.
- Click Reset Citrix Workspace or Reset Citrix Receiver. Be aware that you may lose all favorites configured on this device, and you will lose all settings configured on the app.
- Click Yes, Reset Citrix Workspace or Yes, Reset Citrix Receiver, and then click OK.
- If the 'Add Account' prompt appears, type
https://storefront.iuanyware.iu.edu
. Click Add. - On the login screen, enter your IU username and passphrase, and complete a Two-step Login (Duo). You may be prompted to log in twice; you won't need to use Duo for the second login if your first Duo login was successful.
- Select either the DESKTOPS or APPS tab, and launch the app of your choice.
Method 5
- Right-click the Workspace/Receiver icon in the system tray.
- Click Advanced Preferences. In the 'About' section, take note of the version.
- In a browser, go to receiver.citrix.com, and then click Download for Windows. The latest available version of Citrix Workspace app will be specified. Compare your version; if the online version is a later one, download and install the new version. To test a different version of Citrix Workspace app, see Citrix Workspace app. To test an application with a different version of the Receiver, see Citrix Receiver.
***New release v1.6 now supports logging of all actions to a log file for auditing, review and user training, as well as even more features and enhancements.
***New release v1.5 now supports Citrix Cloud and has some great new features and enhancements.
This tool has been labelled as a game changer for any Citrix customer. It’s proven time and time again that it has a huge impact on reducing the burden on the Service Desk and Operations Teams by empowering users to get themselves back up and running in the shortest possible time.
No matter how stable your Citrix platform is, one of the biggest challenges for any Citrix customer is being able to reduce Service Desk calls and user downtime by empowering users with the ability to clear their own sessions, or recover them by terminating rogue processes. Several free scripts and a paid for tool are available, but none of them really achieve the best outcome. Some of them still require users to run a “Citrix session”, which they often can not do because the broker may be trying to reconnect them back to a stuck, hung, broken session or unhealthy host. When this happens they get into an endless loop of failure and get very frustrated. This can impact brand reputation and user satisfaction. Some have even implemented a separate Citrix Environment to run these scripts from. In my opinion this is as waste of resources and an overhead for management. It still doesn’t always work due to Citrix Workspace (Receiver) reconnection issues and is often over complicating it for users.
My goals were to:
- Create a tool that is easy to use, even for users that struggle with technology.
- Create a tool that enables users to not only get themselves back up and running in the shortest possible time, but also reduces the reliance on Service Desk and even second level support teams.
- Create a tool that does not rely on any ICA/HDX connectivity to a Citrix platform. This was extremely important!
- Create a tool that would allow support for multiple Citrix Virtual Apps and Desktops (aka XenApp and XenDesktop) Sites.
- Create a tool that works across trusted Domains.
- Create a tool that works across the IT and OT landscape.
- Create a tool that can easily be extended/expanded for other use cases.
- Create a tool that’s modular so that other brokers such as VMware Horizon and Leostream can easily be added.
- Create API’s with a Web front-end.
- Create a tool that can be used to develop a microapp.
- Create a tool that can easily be called by any scripting language such as PowerShell and Python.
- Create a tool that can be enhanced, debugged and supported by others.
- Create a tool for the community, because I love doing that!
There are no tools readily available like this. I’ve put it to Citrix many times that they really need a “self” role in Director. I submitted an enhancement request under RFE ID-006471. All the code is already there, so pretty easy for them to implement, but they didn’t seem to feel it was important enough to give it priority. Their focus is Citrix Cloud with ServiceNow integration as an example. Not really practical for most. Whilst initially disappointed, in hindsight I’m happy they didn’t action my enhancement request, as it’s given me the opportunity to build something very cool, which I really enjoyed doing, and learning heaps along the way.
After a lot of research and hundreds of hours of coding I created RESTful-like APIs that follow the CRUD principles using an ASP .NET Web API 2.2 project following the Model View Controller (MVC) architecture to achieve the outcome of delivering this as a web service coded exclusively in C#. This does all the heavy lifting. In fact, it became so addictive to continue to enhance the code and add features, I achieved the end result well beyond what I’d planned as a first release.
The client interface uses HTML, CSS and JavaScript for the layout and workings, but jQuery and AJAX behind the scenes to do all the main work calling the APIs to get and action the data, and then manipulating the data so that it is presented in a readable and friendly format for the users.
Citrix Receiver Reset Permit All Access
This is simply the web front-end, but you can create and use your own scripts and applications by simply calling the APIs I’ve created.
This web form uses windows authentication in IIS, so only enumerates sessions and processes for the logged on user.
There is also the ability to include and/or exclude Delivery Groups. You may have specific business critical applications and data that is sensitive where you would still prefer that the Service Desk or other support teams are able to triage the issues as per normal. These sessions will still appear when enumerated, but are greyed out and unable to be selected for self-service by the user.
Depending on what features/actions you would like enabled, users can:
- Logoff Sessions
- Disconnect Sessions
- Get Processes
- Terminate Processes
- Restart Machines
- Forcefully Restart Machines
- Hide Stuck Sessions
- Unhide Sessions
The instructions will change dynamically depending on the features you have enabled via the Web.config file.
So here is what the latest version of the tool looks like with all default features enabled:
The only configuration required in the tool itself is to setup the Sites in the CtxSites.xml file.
- FriendlyName: The name in the drop down list that Users will associate with
- Name: Can be the real Site name, or just a short name used to identify the site. It’s passed internally between functions so that the corresponding values are retrieved and used from the XML file for that Site.
- DeliverControllers: A comma separated list of Delivery Controllers or Cloud Connectors for that site
- Port: The port number the Delivery Controllers or Cloud Connectors listen on. An XDPing is run against them to ensure they are healthy.
- Default: The default value is False. Set this to True if you have multiple Sites but want 1 Site to be the default selected when users access the tool. If only 1 Site is added to the XML file, it will automatically default to this Site, so there is no need to set a value for Default.
- IncludeDeliveryGroups: A list of comma separated Delivery Groups to include. Will include all if left empty.
- ExcludeDeliveryGroups: A list of comma separated Delivery Groups to exclude. Will override inclusions if there are conflicts.
- ProfileType: Must be either OnPrem for on-prem Sites or CloudAPI for Citrix Cloud Sites.
- CustomerID: Citrix Cloud Customer ID.
- ClientID: Citrix Cloud Client ID also known as the API Key.
- ClientSecret: Citrix Cloud Client Secret also known as the Secret Key.
The requirements and prerequisites are very straight forward:
- IIS with Windows Authentication enabled and Anonymous Authentication disabled.
- The application runs under its own Application Pool, configured to run as a Service Account.
- Minimum of .NET Framework 4.5.2.
- CVAD (XenApp and XenDesktop) Remote PowerShell SDK , the PowerShell SDK with Citrix Cloud Connector, or Citrix Studio.
- You can use Citrix Studio if setting this tool up for on-prem only. However, it’s now recommended to install the CVAD (XenApp and XenDesktop) Remote PowerShell SDK. Whilst it also works with the Citrix Cloud Connector, you would need to change the Default Web Site to run on a different port, such as 81.
- The C# code uses the underlying PowerShell Citrix.Broker.Admin.V2 snapin. It uses the Get-BrokerSession, Get-BrokerMachine, Stop-BrokerSession, Disconnect-BrokerSession, Set-BrokerSession and New-BrokerHostingPowerAction cmdlets for the actions.
- When using the CVAD (XenApp and XenDesktop) Remote PowerShell SDK or the PowerShell SDK with Citrix Cloud Connector, it also uses the Set-XDCredentials, Get-XDAuthentication and Get-XDCredentials cmdlets.
- The Service Account needs to be a local Admin on the web server. I am still working on trying to minimise the permissions required here without over complicating the installation and configuration.
- The Service Account needs to be a Help Desk Administrator in the Citrix Site(s). That is it!
- The Service Account needs to be a local Admin on the Session Hosts to be able to remotely enumerate and terminate user processes.
When hosted on-perm, it actually makes sense to co-host this tool on the StoreFront servers. StoreFront servers are typically load balanced, already have all required IIS components installed, have a certificate, and have a URL that is typically known to the Users. So all you need to do is install CVAD (XenApp and XenDesktop) Remote PowerShell SDK and configure IIS. Too easy! You could also customise StoreFront to add a hyperlink to the page.
Basic Installation Instructions:
- Install IIS using the following PowerShell code:
- Extract the tool to a folder local to the IIS server such as C:SelfServiceSessionReset
- Open IIS Manager
- Right Click on Application Pools
- Select Add Application Pool…
- Name: SSSR
- Select OK
- Select Application Pools
- Right click on SSSR
- Select Advanced Settings…
- Select Identity
- Select …
- Select Custom account
- Select Set
- User name: Enter the service account in the form of DOMAINUSERNAME
- Password: enter the password
- Confirm password: enter the password again
- Select OK
- Select OK
- Verify that Enable 32-Bit Applications is set to False
- Select OK
- Right Click on Default Web Site
- Select Add Application…
- Alias: SSSR
- Select Select…
- Application Pool: SSSR
- Select OK
- Physical path: Enter the path where you extracted the tool to, such as C:SelfServiceSessionReset
- Select OK
- Select the SSSR application
- Right Click on Authentication
- Select Open Feature
- Right Click on Anonymous Authentication
- Select Disable
- Right Click on Windows Authentication
- Select Enable
- Close IIS Manager
- Modify the Site data in the CtxSites.xml file, which may be located at C:SelfServiceSessionResetApp_DataCtxSites.xml
- Install Citrix Studio
- Add the Service Account as a local admin on the Web Server
- Add the Service Account as a Help Desk Administrator in the Citrix Site(s)
- Add the Service Account as a local Admin on the Session Hosts
Ensure you secure the C:SelfServiceSessionReset folder if the CtxSites.xml file will contain the Citrix Cloud authentication information (CustomerID, ClientID and ClientSecret).
Test the tool by opening a modern web browser other than IE and going to http://webserver/SSSR/
You can turn features on or off via the Web.config:
- EnableGetTerminateProcesses: Setting it to True enables the Get Processes and Terminate Processes functions in the UI.
- EnableDisconnectSessions: Setting it to True enables the Disconnect Sessions function in the UI.
- EnableGracefulMachineRestart: Setting it to True enables the Restart Machines function in the UI.
- EnableForcedMachineRestart: Setting it to True enables the Forcefully Restart Machines function in the UI.
- EnableHideStuckSessions: Setting it to True enables the Hide Sessions function in the UI.
- EnableInstructions: Setting it to True enables the instructions in the UI.
- BypassCriteriaChecksForHideSessions: Setting to True bypasses the criteria checks for the Hide Sessions function. Not recommended and disabled by default.
- EnableUnhideSessions: Setting it to True enables the Unhide Sessions function in the UI. This feature will only work if the BypassCriteriaChecksForHideSessions is also set to True. Not recommended and disabled by default.
Citrix Receiver Password Reset
You can also see from the Web.config that logging has now been implemented. By default we keep 12 log files that are rolled over monthly. So you will build up to 1 years worth of logs that allows you to audit, review and even engage and train users to improve their experience. Of course you can change the rollingInterval to Day and retainedFileCountLimit to the number of daily logs you want to keep. All actions are logged in an easy to read format as per the following screen shot so you will always know how the tool is being used.
Known Issues and Limitations:
- The version of jQuery used no longer supports IE 11. The UI does not function. When debugging in IE11 you will receive the following error: Error: Object doesn’t support property or method ‘addEventListener’. So you must use a modern browser such as Chrome, Edge, etc.
- Depending on the location of this tool to your Session Hosts, getting the processes and their data may take some time as it is making a Remote Procedure Call (RPC) from the web server to the Session Hosts to get the processes and their extended perfmon data. Ideally you would want to locate this tool in the same location as the Session Hosts to limit delays (latency) and improve the user experience.
- The tool in its current form will only work in English. I would need assistance and volunteers to help get it working in other languages.
Future Improvements and Feature Requests:
- Perhaps use an iframe instead of a dialog modal for status messages. Unsure of the value here.
- Client side WPF (Windows Presentation Foundation) App, which would be very light, as it’s simply just calling APIs.
Version 1.6 Updates 28th July 2021:
- Logging of all actions to a log file for auditing, review and user training.
- Added the ability to Hide Stuck Sessions by bypassing the criteria checks.
- Added an Unhide Sessions feature.
Version 1.5 Updates 5th July 2021:
- Citrix Cloud Ready: Now works with Citrix Cloud.
- Works with the CVAD (XenApp and XenDesktop) Remote PowerShell SDK.
- Works with the PowerShell SDK with Citrix Cloud Connector.
- Added a Disconnect Sessions feature.
- Added a Forcefully Restart Machines feature.
- Added the ability to Hide Stuck Sessions for machines stuck in the TurningOff phase of the restart.
- The ability to disable all features/actions accept for Logoff Sessions.
- Enhanced and modularized the instructions.
- Improved security checks for the Terminate Processes function
Version 1.4 Updates 15th October 2020:
- Corrected some variables and typos. These issues were not related to the operation of the tool itself.
Version 1.3 Updates 15th September 2020:
- A syntax error in the JavaScript code of the RestartMachines variable prevented machines from excluded Delivery Groups from being displayed.
Version 1.2 Updates 12th September 2020:
- Made the the RestartMachines a DELETE action instead of a PUT action. It works either way, but for the API purist it should be a DELETE action.
- Cleaned up the API documentation for the GetSiteList action.
Version 1.1 Updates 9th September 2020:
- You can now set a Default Site for the Site Selection in the XML file. Or if there is only 1 Site configured, it will automatically Get Sessions for that Site. Both options reduce the need for the user to select a Site.
- Added the Restart Machine function using the New-BrokerHostingPowerAction cmdlet. This is applicable for Windows Desktop Operating Systems that support Single Session only. A new column was added named “Restart Supported” to help users understand when this function is supported. This action initiates a graceful restart and not a forced restart, and is covered under the Help Desk Administrator role. So no further permissions are required.
- All non-API methods and functions have been set to Private instead of Public in the Controllers.
- The username is no longer passed in the API calls. This is managed in the internal code of the Controllers only. This enhances security and reduces the risk of someone injecting someone else’s username. This also ensures the tool obtains a good CIA (Confidentiality, Integrity and Availability) triad/rating and/or a Technical Security Assessment (TSA) and/or a Security Risk Assessment (SRA).
The tool is located in my GitHub repositories where you can download the latest compiled Release as a zip posted to the right hand side of the repository. Total number of downloads to date: 121.
I have released some documentation on how the APIs work, and will soon add more information on how to make some minor UI changes, such as the colours.
Once you get the tool up and running there is a help page that documents the APIs, which was created using the standard Microsoft.AspNet.WebApi.HelpPage package. You can access this by the http://webserver/SSSR/help URL.
Let me know if you see anything that is not working, or if there are any features I haven’t covered off on that you feel should be user facing.
I’ve spent hundreds of hours working on this tool, which is freely available for commercial use. If you feel it provides you and your business value, and reduces user frustration, I would appreciate a donation as a way to say thanks, which will go towards my hair transplant 🙂
Enjoy!
Jeremy Saunders
- How to extend the Adobe Flash Player EOL to prevent it from blocking flash beyond 12 January 2021 - December 31, 2020
- Citrix Self-Service Session Reset Tool Process Flows - October 31, 2020
- Citrix Self-Service Session Reset Tool - August 28, 2020