{"id":17841,"date":"2021-11-30T04:30:11","date_gmt":"2021-11-30T09:30:11","guid":{"rendered":"https:\/\/www.eginnovations.com\/blog\/?p=17841"},"modified":"2023-02-06T06:21:55","modified_gmt":"2023-02-06T11:21:55","slug":"microsoft-teams-configuration-citrix","status":"publish","type":"post","link":"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/","title":{"rendered":"Microsoft Teams on Citrix: Best Practices"},"content":{"rendered":"<div class=\"inner_content\">\n<h2><span class=\"ez-toc-section\" id=\"Key_Considerations_and_Best_Practices_for_Microsoft_Teams_on_Citrix\"><\/span>Key Considerations and Best Practices for Microsoft Teams on Citrix<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Since early 2020, there has been a massive growth in the number of active Microsoft Teams users and organizations deploying Teams; now, there are more than 200 million monthly active users across the globe.<\/p>\n<p>With an increase in market share, it&#8217;s one of those applications that you either expect an organization to be already using or planning to deploy out to their environment sooner rather than later. This means that a lot of existing and also new Citrix Virtual Apps and Desktops deployments are under scope for Teams deployment and consumption. Multimedia processing, however, can quickly send the end-user experience south. Play a simple video on any device and you will notice that first and foremost the CPU takes a hit, but x times that by multiple users at once across shared hypervisors and you can start to imagine the impact it may have on your Citrix deployments and the end user experience.<\/p>\n<p>Given that many people are working from home, and therefore, using Teams to host one-to-one or multi-party calls, we need to make sure that the video and audio quality delivered via Teams is great and VDI or session-based users do not take a performance hit whenever audio and\/or video calls are taking place.<\/p>\n<p>To help achieve that, we can use HDX Optimization for Teams, jointly developed by both Citrix and Microsoft, to offload media processing to the endpoint itself.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Overview_of_How_HDX_Optimization_for_Microsoft_Teams_Works\"><\/span>Overview of How HDX Optimization for Microsoft Teams Works<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Generic_Delivery_of_Teams\"><\/span>Generic Delivery of Teams<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>If you are familiar with delivering Skype for Business using the HDX RealTime Optimization pack, you&#8217;ll be aware of the term <strong>Generic delivery<\/strong>. With generic delivery of Teams, the video and audio traffic &#8220;hairpins&#8221; from the user endpoint to the Citrix VDA and back to the endpoint, which degrades video and audio quality whilst placing high resource consumption load on the VDAs themselves.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Optimized_Delivery_of_Teams\"><\/span>Optimized Delivery of Teams<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>HDX Optimization for Teams allows you to deliver 720p high-definition video calls at 30fps through your Virtual Apps and Desktops solution. This is made possible using the WebRTC media stack.<\/p>\n<p>The optimized solution can be thought of as splitting the Teams client into two, with the user interface living inside of the VDA and the media rendering\/engine running on the endpoint. This shifts resource consumption to the endpoint, reducing impact on your VDAs, and shapes the Teams audio and video traffic in a much more optimized fashion because now media traffic flows point-to-point between clients or the Teams conferencing service in Microsoft 365.<\/p>\n<p style=\"margin-bottom: 15px;\">Other advantages of optimized Teams delivery:<\/p>\n<ul>\n<li>Local peripherals, such as your webcam and microphone will be automatically redirected into Teams.<\/li>\n<li>Less HDX traffic will be consumed due to the way traffic is shaped with the optimized approach.<\/li>\n<li>The solution is supported by both Microsoft and Citrix.<\/li>\n<li>There is no modification needed to the Teams back-end, or any additional software pieces required to be installed on the VDA or endpoint, which is an improvement over the Skype for Business RealTime Optimization Pack.<\/li>\n<li>Screen sharing is also possible and mentioned further in detail under the section titled <a href=\"#screensharing\" rel=\"screensharing\">Screen Sharing<\/a>.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"HDX_Optimization_for_Teams_diagram_and_call_flow\"><\/span><strong>HDX Optimization for Teams diagram and call flow<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17848\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/11\/hdx-optimization-teams.jpg\" alt=\"HDX Optimization for Teams \u2013 diagram and call flow\" width=\"800\" height=\"860\" border=\"0\" \/><\/p>\n<ol>\n<li>User launches Microsoft Teams.<\/li>\n<li>Teams authenticates with Microsoft 365 and tenant policies get pushed down to the Teams client.<\/li>\n<li>Relevant TURN and signalling channel information is relayed to the Teams app.<\/li>\n<li>Teams detects that it is running on a VDA and makes API calls to the Citrix JavaScript API.<\/li>\n<li>The Citrix JavaScript in Teams opens a secure WebSocket connection to WebSocketService.exe running on the VDA. WebSocketService.exe runs as a Local System account and listens on 127.0.0.1:9002.\n<ul>\n<li>WebSocketService.exe performs TLS termination, user session mapping, and spawns WebSocketAgent.exe, which now runs inside the user session.<\/li>\n<\/ul>\n<\/li>\n<li>WebSocketAgent.exe initiates a generic virtual channel by calling into the Citrix HDX Browser Redirection Service (CtxSvcHost.exe).<\/li>\n<li>Citrix Workspace app&#8217;s HDX Engine, wfica32.exe, spawns a new process called HdxRtcEngine.exe (or HDXTeams.exe before Workspace app 2009.6) which is the new WebRTC engine used for Teams optimization.<\/li>\n<li>HdxRtcEngine.exe and Teams.exe have a two-way virtual channel path and can start processing multimedia requests.<\/li>\n<li>User A clicks to call User B. Teams.exe communicates with the Teams services in Azure to establish an end-to-end signalling path with User B.<\/li>\n<li>Teams on the VDA asks HdxTeams (HdxRtcEngine) for a series of supporting call parameters, such as codecs and resolutions, which is known as the Session Description Protocol (SDP) offer. These call parameters are than sent, using the established signalling path, to the Teams services in Azure and from there on to User B.<\/li>\n<li>The SDP offer\/answer and the Interactive Connectivity Establishment (ICE) connectivity checks are completed.\n<ul>\n<li>ICE connectivity checks (NAT and firewall traversal) complete using Session Traversal Utilities for NAT (STUN).<\/li>\n<\/ul>\n<\/li>\n<li>Secure Real-time Transport Protocol (SRTP) media flows between HdxRtcEngine.exe and User B.\n<ul>\n<li>If it is a meeting, SRTP media flows between HdxRtcEngine.exe and the Microsoft 365 conference servers.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Considerations_Known_Issues_and_Limitations\"><\/span>Considerations, Known Issues, and Limitations<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The advantages of being able to offload media to the endpoint and run Teams on VDI or Session-Based VMs comes with some things you need to be aware of. Namely, there may be features and functionality available in Teams that are limited in a virtualized environment, which isn&#8217;t specific to Citrix deployments as such, but simply to desktop and server virtualization as a whole.<\/p>\n<p style=\"margin-bottom: 15px;\">There are also some known issues and limitations affecting Teams when deployed to VDI environments. Some examples are below, as of August 2021:<\/p>\n<ul>\n<li>With Teams running on a Citrix session, if the user disconnects and then reconnects, Teams may be in a non-optimized state. It is recommended that users quit out of Teams before they disconnect from Citrix to avoid this from happening.\n<ul>\n<li>You could also help prevent this by logging off disconnected sessions after a period of time.<\/li>\n<\/ul>\n<\/li>\n<li>Incoming and outgoing video stream resolution is limited to 720p.<\/li>\n<li>Application screen sharing is not supported.<\/li>\n<li>Only one video stream for incoming camera or screen share stream is supported. As such, when there is an incoming screen share, that screen share is shown instead of the video of the dominant speaker.<\/li>\n<li>High DPI scaling is not supported.<\/li>\n<\/ul>\n<p><strong>Note<\/strong>: Multi-monitor screen sharing was previously limited, as in only the main monitor could be shared. This meant that if you wanted to share the contents of an application screen, you would have had to drag the app to your primary monitor. Now with Workspace app 2106 or newer for Windows, Mac, and Linux, you can select the monitor you want to share if the Workspace app Desktop Viewer is in full-screen mode and spanned across all your monitors.<\/p>\n<p>If Desktop Viewer is disabled or you are using Desktop Lock, you cannot select which monitor to share.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Endpoint_software_requirements\"><\/span>Endpoint software requirements<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Citrix Workspace app 1907 for Windows or newer\n<ul>\n<li>Citrix Workspace app 1912 LTSR CU5 for Windows contains Teams enhancements<\/li>\n<\/ul>\n<\/li>\n<li>Citrix Workspace app 2012 for Mac or newer<\/li>\n<li>Citrix Workspace app 2006 for Linux or newer<\/li>\n<li>Citrix Workspace app 2105.5 for ChromeOS\n<ul>\n<li>Screen sharing optimization (incoming and outgoing) is disabled by default but can be enabled by referring to Citrix documentation.<\/li>\n<\/ul>\n<\/li>\n<li>Windows 7, 8, 10 32-bit or 64-bit, including Windows Embedded editions<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Endpoint_hardware_requirements\"><\/span>Endpoint hardware requirements<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>1GB RAM and 600MB disk space to run Workspace app<\/li>\n<li>Quad core CPU running at 1.8-2.0 GHz for 720p HD resolution<\/li>\n<li>Quad core CPU with 1.5 GHz or lower speeds that is equipped with Intel Turbo Boost or AMD Turbo Core that can boost GHz up to 2.4 are also supported.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Thin_Clients\"><\/span>Thin Clients<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"margin-bottom: 15px;\">According to Citrix, the following thin clients have been verified:<\/p>\n<ul>\n<li>HP: t630\/t640, t730\/t740, mt44\/mt45<\/li>\n<li>Dell: 5070, 5470 Mobile TC<\/li>\n<li>10ZiG: 4510 and 5810q<\/li>\n<\/ul>\n<p>See the Citrix Ready Marketplace for a full list of verified endpoints.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Citrix_VDA_software_requirements\"><\/span>Citrix VDA software requirements<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Microsoft Teams 1.3.00.4461 or newer<\/li>\n<li>VDA 1906.2 or newer<\/li>\n<li>Windows 10 1607 64-bit and higher<\/li>\n<li>Server 2012 R2, 2016, or 2019, 2022 Standard and Datacenter editions<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Citrix_VDA_hardware_requirements\"><\/span>Citrix VDA hardware requirements<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>2 vCPU for Desktop OS (VDI)<\/li>\n<li>4, 6, or 8 vCPU for Server OS (SBC) keeping in-line with the underlying NUMA configuration of your Hypervisor host<\/li>\n<li>4GB RAM for Desktop OS (VDI)<\/li>\n<li>512 to 1024MB RAM per user for Server OS (SBC)<\/li>\n<li>8GB HDD space for Desktop OS (VDI)<\/li>\n<li>40 to 60GB HDD space for Server OS (SBC)<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Network_requirements\"><\/span>Network requirements<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"margin-bottom: 15px;\">A few recommendations\/requirements are listed below:<\/p>\n<ul>\n<li>Ensure endpoints can resolve DNS queries to discover the TURN\/STUN services provided by Microsoft 365 and that firewalls do not prevent access.<\/li>\n<li>Bypass proxy servers.<\/li>\n<li>Avoid VPN hairpins.<\/li>\n<li>Bypass network SSL intercept and deep packet inspection services.<\/li>\n<li>From the branch office, route to the Microsoft 365 network as direct as possible.<\/li>\n<\/ul>\n<p>See <a href=\"https:\/\/docs.microsoft.com\/en-us\/microsoftteams\/prepare-network\" target=\"blank\" rel=\"noopener noreferrer\">here<\/a> for a full list of things you should do to ensure that your network is ready for Microsoft Teams.<\/p>\n<p>Additionally, run the <a href=\"https:\/\/www.microsoft.com\/download\/details.aspx?id=53885\" target=\"blank\" rel=\"noopener noreferrer\">Skype for Business Network Assessment Tool<\/a> to determine whether your network is ready for Teams.<\/p>\n<p>Also see <a href=\"https:\/\/docs.microsoft.com\/en-us\/microsoftteams\/qos-in-teams\" target=\"blank\" rel=\"noopener noreferrer\">Implement QOS in Microsoft Teams<\/a>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Network_latency_recommendations\"><\/span>Network latency recommendations<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"margin-bottom: 15px;\">The following network performance characteristics are recommended by Citrix to ensure a great user experience with Teams. Use a <a href=\"https:\/\/www.eginnovations.com\/supported-technologies\/citrix-monitoring\">Citrix monitoring tool<\/a> to track these metrics and get alerted if they fall outside the recommended range.<\/p>\n<ul>\n<li>One way latency &#8211; &lt; 50ms<\/li>\n<li>RTT latency &#8211; &lt; 100ms<\/li>\n<li>&lt; 1% packet loss during any 15 second interval<\/li>\n<li>&lt; 30ms packet interarrival jitter during any 15 second interval<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Split_tunneling\"><\/span>Split tunneling<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Routing traffic outside of the VPN tunnel for key Microsoft 365 services, such as Exchange Online, SharePoint Online, and Microsoft Teams is recommended. This will reduce the amount of traffic the VPN has to handle and provide users with the best performance possible against the Microsoft 365 services they use.<\/p>\n<p>You should configure IPv4 and IPv6 ranges to be routed outside of the tunnel. You can read more <a href=\"https:\/\/docs.citrix.com\/en-us\/citrix-gateway\/current-release\/optimizing-citrix-gateway-vpn-split-tunnel-for-office365.html\" target=\"blank\" rel=\"noopener noreferrer\">here<\/a>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Firewall_requirements\"><\/span>Firewall requirements<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Teams will use UDP 1024-65535 high ports for optimized traffic for peer-to-peer connections if there is nothing blocking them.<\/li>\n<li>Otherwise, Teams uses Transport Relay on UDP 3478-3481 or TCP 443 as fallback.<\/li>\n<\/ul>\n<p style=\"margin-bottom: 15px;\">Allow access to the following address ranges:<\/p>\n<ul>\n<li>13.107.64.0\/18<\/li>\n<li>52.112.0.0\/14<\/li>\n<li>52.120.0.0\/14<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"HeadsetHandset_device_requirements_and_Recommendations\"><\/span>Headset\/Handset device requirements and Recommendations<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Skype for Business supported devices: <a href=\"https:\/\/docs.microsoft.com\/en-us\/skypeforbusiness\/certification\/devices-usb-devices\" target=\"blank\" rel=\"noopener noreferrer\">https:\/\/docs.microsoft.com\/en-us\/skypeforbusiness\/certification\/devices-usb-devices<\/a><\/li>\n<li>Microsoft Teams supported devices: <a href=\"https:\/\/products.office.com\/en-us\/microsoft-teams\/across-devices\/devices\" target=\"blank\" rel=\"noopener noreferrer\">https:\/\/products.office.com\/en-us\/microsoft-teams\/across-devices\/devices<\/a><\/li>\n<li>iPhone headsets are not supported by Teams.<\/li>\n<li>It is recommended to use Microsoft Teams\u2019 certified headsets that include built-in echo cancellation and certified cameras.<\/li>\n<li>If you are using external speakers, place them as far as possible from your microphone to avoid any echo.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Antivirus_requirements\"><\/span>Antivirus requirements<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"margin-bottom: 15px;\">Exclude the following processes from on-access type scanning from your antivirus provider:<\/p>\n<ul>\n<li>%LocalAppData%\\Microsoft\\Teams\\current\\teams.exe<\/li>\n<li>%LocalAppData%\\Microsoft\\Teams\\update.exe<\/li>\n<li>%LocalAppData%\\Microsoft\\Teams\\stage\\squirrel.exe<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Profile_management_requirements\"><\/span>Profile management requirements<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For non-persistent deployments, you will need to use a solution like FSLogix to ensure that the appropriate Teams data stored in the user profile is persisted. Profile inclusion and exclusion recommendations are listed below.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Profile_management_inclusion\"><\/span>Profile management inclusion<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>%LocalAppData%\\Microsoft\\IdentityCache<\/li>\n<li>%AppData%\\Microsoft\\Teams<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Profile_management_exclusion\"><\/span>Profile management exclusion<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>.txt files from location %AppData%\\Microsoft\\Teams<\/li>\n<li>%AppData%\\Microsoft\\Teams\\media-stack<\/li>\n<li>%AppData%\\Microsoft\\Teams\\Cache<\/li>\n<li>%AppData%\\Microsoft\\Teams\\GPUCache<\/li>\n<li>%AppData%\\Microsoft\\Teams\\meeting-addin\\Cache<\/li>\n<li>%AppData%\\Microsoft\\Teams\\Service Worker\\CacheStorage<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Installation_of_Teams_on_VDA\"><\/span>Installation of Teams on VDA<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>It is preferred to install Teams <strong>after<\/strong> installing the VDA software. You should also install Teams using the machine-wide installer (per-machine installation) and appropriate switches, rather than using the per-user installation, which won&#8217;t work well on a non-persistent setup. Per-machine installation is suitable for most VDI deployments.<\/p>\n<p style=\"margin-bottom: 15px;\"><a href=\"https:\/\/teams.microsoft.com\/downloads\/desktopurl?env=production&amp;plat=windows&amp;arch=x64&amp;managedInstaller=true&amp;download=true\" target=\"blank\" rel=\"noopener noreferrer\">64-bit installer<\/a><\/p>\n<ul>\n<li>For persistent VDI: You can use the <strong>ALLUSERS=1<\/strong> switch.<\/li>\n<li>For non-persistent desktops: It is recommended to disable auto-update by additionally using the <strong>ALLUSER=1<\/strong> switch.<\/li>\n<\/ul>\n<p>Full command example for non-persistent desktops: msiexec \/i &lt;path-to-msi&gt; ALLUSER=1 ALLUSERS=1<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17862 aligncenter\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/full-command-persistent-desktops.jpg\" alt=\"Illustration of code line for full command of persistent desktops\" width=\"600\" height=\"76\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/full-command-persistent-desktops.jpg 600w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/full-command-persistent-desktops-300x38.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/full-command-persistent-desktops-310x39.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/full-command-persistent-desktops-140x18.jpg 140w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>Full (optional) command example for persistent desktops: msiexec \/i &lt;path-to-msi&gt; ALLUSERS=1<\/p>\n<p>With the machine-wide installer, Teams will be installed under <strong>C:\\Program Files (x86)<\/strong> instead of in the %AppData% directory of the user profile.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"App_Layering\"><\/span>App Layering<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p style=\"margin-bottom: 15px;\">As with App Layering, you will be installing Teams without the VDA present, you can create the following registry key on the Teams layer:<\/p>\n<ul>\n<li>HKLM\\SOFTWARE\\WOW6432Node\\Citrix\\PortICA<\/li>\n<\/ul>\n<p>You should technically also be able to use a Platform layer for packaging.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"If_Teams_was_already_installed\"><\/span>If Teams was already installed<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ol>\n<li>If the user has already installed Teams using the EXE, have the user uninstall it by using Add\/Remove Programs.<\/li>\n<li>If an administrator installed Teams using the MSI, uninstall it by using Add\/Remove programs and get each user to log in to complete the uninstall from their profile.<\/li>\n<li>If an administrator installed Teams using Office Pro Plus media, uninstall it by using Add\/Remove programs and get each user to log in to complete the uninstall from their profile.<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Update_of_Teams_on_VDA\"><\/span>Update of Teams on VDA<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To update the per-machine based version of Teams, you simply uninstall the currently installed version in your master image and then install the new version using the command line and switches mentioned above.<\/p>\n<p>You can use the following command to uninstall: msiexec \/passive \/x &lt;path-to-msi&gt;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17864 aligncenter\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/update-teams-vda.jpg\" alt=\"Code illustration for update of Teams on VDA\" width=\"600\" height=\"76\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/update-teams-vda.jpg 600w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/update-teams-vda-300x38.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/update-teams-vda-310x39.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/update-teams-vda-140x18.jpg 140w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>As there are frequent updates to Teams (up to a couple per month), you will want to be on top of this process right and regularly. Visit the <a href=\"https:\/\/support.microsoft.com\/en-gb\/office\/what-s-new-in-microsoft-teams-d7092a6d-c896-424c-b362-a472d5f105de?ui=en-us&amp;rs=en-gb&amp;ad=gb\" target=\"blank\" rel=\"noopener noreferrer\">What&#8217;s new in Microsoft Teams<\/a> page for a list of new features and functionalities.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Uninstalling_Teams\"><\/span>Uninstalling Teams<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"margin-bottom: 15px;\">If you uninstall Teams:<\/p>\n<ul>\n<li>Teams\u2019 shortcut is removed from C:\\Users\\Public\\Desktop.<\/li>\n<li>Teams\u2019 shortcut is removed from %ProgramData%\\Microsoft\\Windows\\Start Menu\\Programs.<\/li>\n<li>Teams\u2019 string is removed from HKLM\\SOTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run.<\/li>\n<li>Teams\u2019 data (per-machine) is removed from C:\\Program Files (x86).<\/li>\n<li>Teams\u2019 data is <strong>not<\/strong> removed from any user profile under %AppData%\\Microsoft\\Teams, as that data prevents the first-time setup from running again if a user logs on to other machines that has the machine-wide installer.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Post_install_OS_and_Profile_pieces\"><\/span>Post install OS and Profile pieces<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"margin-bottom: 15px;\">Once the per-machine based version of Teams has been installed, the following files, folders, and registry entries are present:<\/p>\n<ul>\n<li><strong>Directory<\/strong>: C:\\Program Files (x86)\\Teams.\n<ul>\n<li>This directory contains the <strong>setup.json<\/strong> and <strong>Teams.exe<\/strong> files.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Registry<\/strong>: A <em>TeamsMachineInstaller<\/em> string with value <em>%ProgramFiles%\\Teams Installer\\Teams.exe &#8211;checkinstall &#8211;source=default<\/em> under HKLM\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run.<\/li>\n<li><strong>File<\/strong>: A desktop shortcut to C:\\Program Files\\Microsoft\\Teams\\current\\Teams.exe is created under C:\\Users\\Public\\Desktop.<\/li>\n<li><strong>File<\/strong>: A Start menu shortcut to C:\\Program Files\\Microsoft\\Teams\\current\\Teams.exe is created under C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs.<\/li>\n<\/ul>\n<p>For anyone who then logs on to the machine, Teams starts automatically, and after the user authenticates to Teams, installs into the user profile for the first time under %AppData%\\Microsoft\\Teams. From my observation this will consume 500~ MB.<\/p>\n<p>During this initial installation period, RAM and CPU spike. On my test machine RAM reached 800 MB and CPU reached 100% for 20-30 seconds roughly. As such, you may want to control a mass rollout of Teams by removing the Run string created under HKLM, and instead create one under HKCU for each user in a more controlled manner, or have users manually launch Teams, for example. Solid communication out to end users in advance can help.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Citrix_Policy\"><\/span>Citrix Policy<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>There is a required Citrix Policy named <strong>Microsoft Teams redirection,<\/strong> which is set to <strong>Allowed<\/strong> by default.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17865\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/microsoft-teams-redirection.jpg\" alt=\"Microsoft Teams redirection settings\" width=\"600\" height=\"500\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/microsoft-teams-redirection.jpg 600w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/microsoft-teams-redirection-300x250.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/microsoft-teams-redirection-310x258.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/microsoft-teams-redirection-140x117.jpg 140w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Confirming_Teams_optimization\"><\/span>Confirming Teams optimization<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>You can check the Teams UI, by clicking <strong>About &gt; Version<\/strong> and confirming that the <strong>Citrix HDX Optimised<\/strong> legend displays.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17867 aligncenter\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-version.jpg\" alt=\"Microsoft Teams version\" width=\"600\" height=\"40\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-version.jpg 600w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-version-300x20.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-version-310x21.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-version-140x9.jpg 140w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>Also, once HDX confirms that the <strong>Microsoft Teams redirection<\/strong> policy is allowed and Workspace app is version 1907 or above, it sets a DWORD on the VDA to 1. The <strong>MSTeamsRedirSupport<\/strong> DWORD will be set to <strong>1<\/strong> under <strong>HKCU\\SOFTWARE\\Citrix\\HDXMediaStream<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17909 aligncenter\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/6-min.jpg\" alt=\"\" width=\"600\" height=\"40\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/6-min.jpg 600w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/6-min-300x20.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/6-min-310x21.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/6-min-140x9.jpg 140w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>On the endpoint runs <strong>HdxRtcEngine.exe<\/strong>, which confirms Teams is running in optimized mode.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17868 aligncenter\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdxrtc-engine.jpg\" alt=\"Hdxrtcengine running\" width=\"600\" height=\"60\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdxrtc-engine.jpg 600w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdxrtc-engine-300x30.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdxrtc-engine-310x31.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdxrtc-engine-140x14.jpg 140w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>On the VDA runs <strong>WebSocketAgent.exe<\/strong>, which confirms Teams is running in optimized mode. WebSocketAgent.exe is spawned by <strong>WebSocketService.exe<\/strong>, which performs TLS termination and user session mapping.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17869 aligncenter\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/websocketagent-exe.jpg\" alt=\"WebSocketAgent.exe illustration\" width=\"600\" height=\"90\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/websocketagent-exe.jpg 600w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/websocketagent-exe-300x45.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/websocketagent-exe-310x47.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/websocketagent-exe-140x21.jpg 140w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>Additionally, peripherals such as your headset and camera will be obtained by the WebRTC media engine of Workspace app and passed through to Teams (Teams does not access peripherals directly). Peripherals will show like below with Teams being optimized within a Citrix environment.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17870\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-settings.jpg\" alt=\"Microsoft Teams settings\" width=\"750\" height=\"359\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-settings.jpg 750w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-settings-300x144.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-settings-310x148.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-settings-140x67.jpg 140w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/p>\n<p>If Microsoft Teams is not optimized, you will likely see references to Citrix HDX like below, and higher resource consumption will be placed on your VDAs.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17871\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-settings-hdx.jpg\" alt=\"Microsoft Teams settings in HDX\" width=\"750\" height=\"723\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-settings-hdx.jpg 750w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-settings-hdx-300x289.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-settings-hdx-310x299.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-settings-hdx-140x135.jpg 140w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"HDX_Optimization_for_Teams_in_Action\"><\/span>HDX Optimization for Teams in Action<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The picture below is the resource consumption on a VDA during a Teams audio and video call that is unoptimized. CPU was averaging about 30% and the Send\/Receive throughput was over 1 Mbps.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17872\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdx-optimization-teams1.jpg\" alt=\"HDX Optimization for Teams in action\" width=\"620\" height=\"427\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdx-optimization-teams1.jpg 620w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdx-optimization-teams1-300x207.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdx-optimization-teams1-310x214.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdx-optimization-teams1-140x96.jpg 140w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/p>\n<p>To demonstrate the difference in resource consumption, the below picture is after the Teams call was ended. CPU and network throughput drops as expected to low levels.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17873\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-cpu-throughput.jpg\" alt=\"Teams CPU Throughput illustration\" width=\"620\" height=\"427\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-cpu-throughput.jpg 620w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-cpu-throughput-300x207.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-cpu-throughput-310x214.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-cpu-throughput-140x96.jpg 140w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/p>\n<p>The final picture below is the same VDA participating in an audio and video call that is optimized this time. Comparing this to the unoptimized scenario, network throughput is much lower, and CPU was averaging no more than 10% due to the audio and video processing being offloaded to the endpoint.<\/p>\n<p>It is also worth noting that the audio quality was much better and a lot of the quieter sounds, such as mouse clicks were being picked up on the call as a result of the audio being clearer.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17874\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/vda-audio-video.jpg\" alt=\"VDA audio and video optimized call deployment\" width=\"620\" height=\"427\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/vda-audio-video.jpg 620w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/vda-audio-video-300x207.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/vda-audio-video-310x214.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/vda-audio-video-140x96.jpg 140w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Proxy_servers_and_DNS\"><\/span>Proxy servers and DNS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h4><span class=\"ez-toc-section\" id=\"Proxy\"><\/span>Proxy<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Whilst proxy servers will typically be configured on VDAs, you must make sure that they do not impact the operations of Teams and HDX Optimization for Teams.<\/p>\n<p>To do this, make sure that the <strong>Bypass proxy servers for local address<\/strong> setting in <strong>Internet options &gt; Connections &gt; LAN settings &gt; Proxy server <\/strong>and make sure that <strong>127.0.0.1:9002<\/strong> is bypassed.<\/p>\n<p>If you use a PAC file, the PAC file must return DIRECT for <strong>wss:\/\/127.0.0.1:9002<\/strong> otherwise optimization will fail.<\/p>\n<p style=\"margin-bottom: 15px;\">For corporate devices that also need to route through a proxy when accessing internet resources, the following versions of Workspace app support proxy servers:<\/p>\n<ul>\n<li>Workspace app 2012 for Windows\n<ul>\n<li>Negotiate\/Kerberos, NTLM, Basic, and Digest<\/li>\n<li>PAC files supported<\/li>\n<\/ul>\n<\/li>\n<li>Workspace app 1912 LTSR CU5 for Windows\n<ul>\n<li>Negotiate\/Kerberos, NTLM, Basic, and Digest<\/li>\n<li>PAC files supported<\/li>\n<\/ul>\n<\/li>\n<li>Workspace app 2101 for Linux\n<ul>\n<li>Anonymous authentication\/<\/li>\n<\/ul>\n<\/li>\n<li>Workspace app 2104 for Mac\n<ul>\n<li>Anonymous authentication<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"DNS\"><\/span>DNS<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p style=\"margin-bottom: 15px;\">Endpoint clients must be able to resolve the following Microsoft Teams TURN FQDNs:<\/p>\n<ul>\n<li>worldaz.turn.teams.microsoft.com<\/li>\n<li>usaz.turn.teams.microsoft.com<\/li>\n<li>Euaz.turn.teams.microsoft.com<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Disabling_GPU_hardware_acceleration\"><\/span>Disabling GPU hardware acceleration<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Do your underlying hosts have dedicated GPUs? If not, then you should disable GPU hardware acceleration within Teams so that the Teams UI and animations do not attempt to be rendered using GPU emulation, which impacts the CPU.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17875\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/disabling-gpu-hardware-acceleration.jpg\" alt=\"Disabling GPU hardware acceleration\" width=\"703\" height=\"334\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/disabling-gpu-hardware-acceleration.jpg 703w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/disabling-gpu-hardware-acceleration-300x143.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/disabling-gpu-hardware-acceleration-310x147.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/disabling-gpu-hardware-acceleration-140x67.jpg 140w\" sizes=\"auto, (max-width: 703px) 100vw, 703px\" \/><\/p>\n<p>The problem with doing this for multiple users is that due to how Teams has been developed, there are currently no Group Policy settings or simple registry tweaks we can make to turn this off for all or some users. Instead, we need to manipulate a file called <strong>desktop-config.json<\/strong>, which is stored in the user profile under %AppData%\\Microsoft\\Teams. The disablement would then take effect the next time Teams is launched.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17876 alignright\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/apppreferencesettings.jpg\" alt=\"\" width=\"274\" height=\"79\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/apppreferencesettings.jpg 274w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/apppreferencesettings-140x40.jpg 140w\" sizes=\"auto, (max-width: 274px) 100vw, 274px\" \/>If I were to manually browse to <strong>Settings<\/strong> within the Teams UI and check <strong>Disable GPU hardware acceleration<\/strong>, the <strong>disableGpu<\/strong> setting under the <strong>appPreferenceSettings<\/strong> section changes from false to true.<\/p>\n<p>To automate disabling GPU hardware acceleration, first there are different ways you could do this but to show one example I will use Group Policy to run a PowerShell script on user logon. The script itself was garnered from <a href=\"https:\/\/discussions.citrix.com\/topic\/410823-powershell-command-that-can-be-used-to-disable-gpu-in-teams-settings\/\" target=\"blank\" rel=\"noopener noreferrer\">Citrix Discussions &#8211; Powershell command that can be used to disable GPU in Teams Settings<\/a> and modified slightly.<\/p>\n<div class=\"link_list_style\" style=\"margin: 0px auto 20px; padding: 20px 20px 10px;\">\n<p>if (!(Test-Path $env:AppData\\Microsoft\\Teams\\desktop-config.json)) {Exit}<\/p>\n<p>$JSONFile = $env:AppData+&#8221;\\Microsoft\\Teams\\desktop-config.json&#8221;<br \/>\n$User = $env:USERDOMAIN+&#8217;\\&#8217;+$env:USERNAME<\/p>\n<p>$JSON = Get-Content $JSONFile | ConvertFrom-Json<\/p>\n<p>if<br \/>\n($JSON.appPreferenceSettings.disableGpu -eq $False) {<br \/>\nGet-Process -Name &#8216;Teams&#8217; -IncludeUserName -ErrorAction SilentlyContinue | Where-Object UserName -eq $User | Stop-Process -Force<br \/>\n$JSON.appPreferenceSettings.disableGpu = $True<br \/>\n$JSON | ConvertTo-Json | Out-File $JSONFile -Encoding ASCII<br \/>\n&amp; &#8220;C:\\Program Files (x86)\\Microsoft\\Teams\\current\\Teams.exe&#8221; }<\/p>\n<p>You can then attach the script to a Group Policy Object so that it runs at user login.<\/p>\n<\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17877\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/user-configuration.jpg\" alt=\"User configuration of Microsoft Teams\" width=\"600\" height=\"300\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/user-configuration.jpg 600w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/user-configuration-300x150.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/user-configuration-310x155.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/user-configuration-140x70.jpg 140w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>The below screenshot confirms that GPU hardware acceleration has been disabled without manual intervention.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17910\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/12-min-1.jpg\" alt=\"\" width=\"600\" height=\"172\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/12-min-1.jpg 600w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/12-min-1-300x86.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/12-min-1-310x89.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/12-min-1-140x40.jpg 140w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Controlling_Teams_first_run\"><\/span>Controlling Teams\u2019 first run<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Whenever Teams runs for the first time and user sign in occurs, CPU spikes to high levels and RAM in my testing spikes to around 800 MB before dropping down to just below 500 MB.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17879\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/controlling-teams-fitst-run.jpg\" alt=\"Controlling Teams first run\" width=\"600\" height=\"123\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/controlling-teams-fitst-run.jpg 600w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/controlling-teams-fitst-run-300x62.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/controlling-teams-fitst-run-310x64.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/controlling-teams-fitst-run-140x29.jpg 140w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>Obviously, for physical desktop deployments, this is fine, but a mass rollout of Teams to VDI or SBC workloads should have some consideration as to how and when this rolls out, otherwise you will quickly hit performance issues.<\/p>\n<p style=\"margin-bottom: 15px;\">Again, like controlling the GPU hardware acceleration setting, there are different ways to do this. One of the simplest ways is by performing at least two actions initially:<\/p>\n<ol>\n<li>Delete the Teams run string on each VDA from <strong>HKLM\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run<\/strong><\/li>\n<li>Create an HKCU based run key that has the following data set: <strong>C:\\Program Files (x86)\\Microsoft\\Teams\\current\\Teams.exe &#8211;process-start-args &#8220;&#8211;system-initiated<\/strong>&#8220;<\/li>\n<\/ol>\n<p>With the creation of the HKCU run string, you can be tactical in how you want to deploy it to end users using Group Policy Preferences or Workspace Environment Management for example.<\/p>\n<p>Once you are comfortable that Teams has been delivered and configured to most or all of your users, and you want Teams to auto launch when users log in, don&#8217;t forget to recreate the HKLM run string to use going forward, and remove the HKCU-based string for good measure.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Note_on_Citrix_Workspace_app\"><\/span>Note on Citrix Workspace app<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>As there are minimum Workspace app versions required for Teams optimization, it is important to make sure that all your clients are updated to the minimum levels before end-users can use Teams via Citrix Virtual Apps and Desktops. If not, media processing will fall back to the VDA and impact your compute resources.<\/p>\n<p style=\"margin-bottom: 15px;\">This can be challenging for almost all environments, as they allow access to resources from personal devices, which often run older versions of Workspace app. To account for the challenges, there are a couple of things you could think of doing, such as:<\/p>\n<ul>\n<li>Using Citrix Gateway expressions to block certain Workspace app versions<\/li>\n<li>Having a set of external desktops for users, who cannot meet the requirements, and those desktops do not have Microsoft Teams installed, or users use the Teams web app with BCR instead<\/li>\n<li>Disable fallback, by implementing one of the following registry DWORD values on the VDA:\n<ul>\n<li>HKLM\\SOFTWARE\\Microsoft\\Teams\\DisableFallback\n<ul>\n<li>Set to 0x1 to disable audio and video<\/li>\n<li>Set to 0x2 to enable audio only<\/li>\n<\/ul>\n<\/li>\n<li>HKCU\\SOFTWARE\\Microsoft\\Office\\Teams\\DisableFallback\n<ul>\n<li>Set to 0x1 to disable audio and video<\/li>\n<li>Set to 0x2 to enable audio only<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Controlling_automatic_run_of_Teams\"><\/span>Controlling automatic run of Teams<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Like controlling the first run of Teams, you may also want to keep Teams from automatically launching at each user logon. This would help combat high compute usage during logon storms to your Citrix Virtual Apps and Desktops environment.<\/p>\n<p>If this is desirable, simply delete the HKLM run string for Teams under <strong>HKLM\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run<\/strong> and any HKCU equivalent if you created those.<\/p>\n<p>Then, you could leave the Teams shortcut that is created as part of the per-machine based install under C:\\Users\\Public\\Desktop for users to launch when they want to use Teams. Alternatively, you could employ a script that launches Teams for the user after they have logged on for a period of time, if the user has not launched it themselves.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Windows_Firewall\"><\/span>Windows Firewall<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>When users begin to use Teams optimized for the first time, they may notice a Windows Defender Firewall security alert asking if they want to allow HDX Overlay Teams (HdxTeams.exe or HdxRtcEngine.exe) to communicate on the network. It is important to allow access.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17880\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-windows-firewall.jpg\" alt=\"Windows Firewall and MS Teams\" width=\"600\" height=\"381\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-windows-firewall.jpg 600w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-windows-firewall-300x191.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-windows-firewall-310x197.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/teams-windows-firewall-140x89.jpg 140w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Current_Release_versus_LTSR\"><\/span>Current Release versus LTSR<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>If Teams is a critical app for the business and the latest features are a must, or an organization wants to align Citrix closely with the features available on their physical desktops, organizations may look to adopt Current Release versions of Virtual Apps and Desktops so that any new feature that requires a VDA upgrade is covered.<\/p>\n<p>Not all new features require a VDA upgrade however, so this doesn&#8217;t mean that a new Teams feature automatically results in a VDA upgrade for your environment.<\/p>\n<div id=\"screensharing\">\n<h3><span class=\"ez-toc-section\" id=\"Screen_Sharing\"><\/span>Screen Sharing<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Incoming screen sharing using HDX Optimization is treated like a video stream, so if the other peer shares their camera and then begins to share their screen, their camera video feed is paused in favour of the sharing video feed. The peer must resume their camera sharing manually afterwards.<\/p>\n<p>Outgoing screen sharing is optimized and offloaded to the endpoint, like video and audio. The media engine captures and transmits the Citrix Desktop Viewer, <strong>CDViewer.exe<\/strong> window. If you want to share a local application running on your client machine you can overlay it on the Citrix Desktop Viewer window, and it is also captured.<\/p>\n<p>For multi-monitor sharing, you must run at a minimum Citrix Workspace app 2106 for Windows, Linux, or Mac.<\/p>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"Troubleshooting_HDX_Optimization_for_Teams\"><\/span>Troubleshooting HDX Optimization for Teams<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>See <a href=\"https:\/\/support.citrix.com\/article\/CTX253754\" target=\"blank\" rel=\"noopener noreferrer\">here<\/a> for a list of troubleshooting tips from Citrix.<\/p>\n<ul>\n<li><strong>Check whether Teams is optimized: <\/strong>When Teams is running optimized, the HdxRtcEngine.exe process runs on the endpoint and the WebSocketAgent.exe process runs on the VDA.<\/li>\n<li><strong>Check the status of services: <\/strong>There are a couple of services required to be running on the VDA for successful Teams optimization:\n<ul>\n<li><strong>Citrix HDX Teams Redirection Service<\/strong>: Provides establishment of virtual channel used with Microsoft Teams.<\/li>\n<li>\n<p style=\"margin-bottom: 20px;\"><strong>Citrix HDX HTML5 Video Redirection Service<\/strong>: Responsible for TLS termination of secure WebSockets and spawning the WebSocketAgent.exe process into user sessions when Teams starts. This service also runs as WebSocketService.exe and needs to be listening on 127.0.0.1:9002. You can confirm this using command <strong>netstat -anob -p tcp | findstr 9002<\/strong> on the VDA.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17903\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/16-min.jpg\" alt=\"\" width=\"600\" height=\"60\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/16-min.jpg 600w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/16-min-300x30.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/16-min-310x31.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/16-min-140x14.jpg 140w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p style=\"margin-bottom: 20px;\">On successful connection, the status turns to ESTABLISHED.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17904\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/17-min.jpg\" alt=\"\" width=\"600\" height=\"45\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/17-min.jpg 600w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/17-min-300x23.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/17-min-310x23.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/17-min-140x11.jpg 140w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/li>\n<\/ul>\n<\/li>\n<li>\n<p style=\"margin-bottom: 20px;\"><strong>Using HDX Monitor: <\/strong>The latest versions of HDX Monitor allows you to see some information about active Teams calls. When viewing session information via HDX Monitor, if the <strong>Number of connections<\/strong> under Webrtc is set to 0, either Teams has not been launched within the session or has been launched but is not optimized.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17881 aligncenter\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/webtrc.jpg\" alt=\"WebTRC\" width=\"257\" height=\"96\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/webtrc.jpg 257w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/webtrc-140x52.jpg 140w\" sizes=\"auto, (max-width: 257px) 100vw, 257px\" \/><\/p>\n<p style=\"margin-bottom: 20px;\">When Teams is running optimized, the number of connections for the session will change to <strong>1<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17882 aligncenter\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/webtrc-optimized-connections.jpg\" alt=\"Optimized connections on Webtrc\" width=\"252\" height=\"101\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/webtrc-optimized-connections.jpg 252w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/webtrc-optimized-connections-140x56.jpg 140w\" sizes=\"auto, (max-width: 252px) 100vw, 252px\" \/><\/p>\n<p style=\"margin-bottom: 20px;\">When a Teams call is in progress, the <strong>Virtual channel<\/strong> state will switch from <strong>Idle<\/strong> to <strong>Active<\/strong>. HDX Monitor will also show you the maximum Kbps outgoing and incoming bandwidth used for the entire HDX session over all Teams calls.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17883 aligncenter\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdx-monitor.webtrc.jpg\" alt=\"HDX Monitor showing maximum Kbps\" width=\"600\" height=\"217\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdx-monitor.webtrc.jpg 600w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdx-monitor.webtrc-300x109.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdx-monitor.webtrc-310x112.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/10\/hdx-monitor.webtrc-140x51.jpg 140w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/li>\n<li><strong>Logs: <\/strong>There are various logs you can turn to when troubleshooting HDX Optimization for Teams.<br \/>\n<h6><span class=\"ez-toc-section\" id=\"Client_Endpoint_Windows\"><\/span><strong>Client Endpoint (Windows)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h6>\n<ul>\n<li>Folder: %LocalAppData%\\Temp\\HdxRtcEngine\n<ul>\n<li>Contains <strong>log<\/strong> and <strong>webrpc.log<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Additionally, there are log files stored on Mac and Linux endpoints, and you also have the option of enabling CDF tracing using specific trace providers.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"VDA_Trace_Providers\"><\/span>VDA Trace Providers<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>HDX_Multimedia_TeamsService<\/li>\n<li>HDX_Multimedia_WebSocketAgent<\/li>\n<li>HDX_Multimedia_WebSocketPipe<\/li>\n<li>HDX_Multimedia_WebSocketService<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"VDA_Endpoint_Providers\"><\/span>VDA Endpoint Providers<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>IcaClient_Multimedia_HdxRtcEngine_CtlGuid<\/li>\n<li>IcaClient_DriversVd_TeamsRedir_CtlGuid<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Basic_troubleshooting_steps\"><\/span>Basic troubleshooting steps<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ol>\n<li>Confirm you are running a compatible version of Workspace app. Refer to the <strong>Endpoint software requirements<\/strong> section.<\/li>\n<li>Confirm that HdxRtcEngine.exe is running on the endpoint and WebSocketAgent.exe is running on the VDA. If not, exit Teams on the VDA.<\/li>\n<li>Start Teams and check again, if the aforementioned processes are running.<\/li>\n<li>If the processes are still not running or Teams is not optimized, restart the <strong>Citrix HDX Teams Redirection Service<\/strong> (if possible) and disconnect from your ICA session, then reconnect.<\/li>\n<li>If the processes are still not running or Teams is not optimized, completely log off the VDA and back on, or reboot the VDA and\/or endpoint.<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Known_Limitations\"><\/span>Known Limitations<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The documentation for each Citrix Virtual Apps and Desktops release contains a section called K<strong>nown Limitations<\/strong> that are either Citrix limitations, Microsoft limitations, or both.<\/p>\n<p>The example URL is for Virtual Apps and Desktops 7 2190: <a href=\"https:\/\/docs.citrix.com\/en-us\/citrix-virtual-apps-desktops\/multimedia\/opt-ms-teams.html#known-limitations\" target=\"blank\" rel=\"noopener noreferrer\">https:\/\/docs.citrix.com\/en-us\/citrix-virtual-apps-desktops\/multimedia\/opt-ms-teams.html#known-limitations<\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Misc_links\"><\/span>Misc. links<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Supported headsets and handsets: <a href=\"https:\/\/products.office.com\/en-us\/microsoft-teams\/across-devices\/devices\" target=\"blank\" rel=\"noopener noreferrer\">https:\/\/products.office.com\/en-us\/microsoft-teams\/across-devices\/devices <\/a><\/li>\n<li>Skype for Business supported devices: <a href=\"https:\/\/docs.microsoft.com\/en-us\/skypeforbusiness\/certification\/devices-usb-devices\" target=\"blank\" rel=\"noopener noreferrer\">https:\/\/docs.microsoft.com\/en-us\/skypeforbusiness\/certification\/devices-usb-devices<\/a><\/li>\n<li>Roadmap for Citrix Virtual Apps and Desktops, which includes some items for Teams: <a href=\"https:\/\/www.citrix.com\/en-gb\/products\/citrix-virtual-apps-and-desktops\/resources\/citrix-virtual-apps-and-desktops-roadmap.html\" target=\"blank\" rel=\"noopener noreferrer\">https:\/\/www.citrix.com\/en-gb\/products\/citrix-virtual-apps-and-desktops\/resources\/citrix-virtual-apps-and-desktops-roadmap.html<\/a><\/li>\n<li>Read how eG Enterprise supports performance and availability monitoring for Citrix environments: <a href=\"https:\/\/www.eginnovations.com\/supported-technologies\/citrix-monitoring\">Citrix Monitoring for Citrix Performance<\/a><\/li>\n<li>FAQs for Troubleshooting Citrix from George Spiers and Barry Schiffer: <a href=\"https:\/\/www.eginnovations.com\/blog\/citrix-issues-problems-troubleshooting\/\">Citrix Issues and Problems \u2013 Troubleshooting Tips | eG Innovations<\/a><\/li>\n<li><a href=\"https:\/\/support.citrix.com\/article\/CTX253754\/troubleshooting-hdx-optimization-for-microsoft-teams\">Troubleshooting HDX Optimization for Microsoft Teams (citrix.com)<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/officeupdates\/teams-app-versioning\">Update history for Teams App Version (Desktop &amp; Mac) (listed by date) &#8211; Office release notes | Microsoft Learn<\/a><\/li>\n<li>Example Citrix Documentation (per version): <a href=\"https:\/\/docs.citrix.com\/en-us\/citrix-virtual-apps-desktops\/multimedia\/opt-ms-teams.html\">Optimization for Microsoft Teams | Citrix Virtual Apps and Desktops 7 2212<\/a><\/li>\n<li><a href=\"https:\/\/www.go-euc.com\/microsoft-teams-optimization-in-a-virtual-desktop\/\">Microsoft Teams optimization in a virtual desktop | GO-EUC<\/a><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"eG_Enterprise_support_for_Monitoring_Microsoft_Teams\"><\/span>eG Enterprise support for Monitoring Microsoft Teams<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Beyond Citrix, eG Enterprise supports enterprise application monitoring for applications such as O365, SAP, etc. including Microsoft Teams. For Teams, there are a wealth of metrics and dashboards available: <a href=\"https:\/\/www.eginnovations.com\/documentation\/Microsoft-Teams\/Monitoring-Microsoft-Teams.htm\">https:\/\/www.eginnovations.com\/documentation\/Microsoft-Teams\/Monitoring-Microsoft-Teams.htm<\/a> and <a href=\"https:\/\/www.eginnovations.com\/documentation\/Microsoft-Teams\/Microsoft-Teams-Dashboard.htm\">Microsoft Teams Dashboard (eginnovations.com)<\/a>. Teams\u2019 metrics are correlated alongside the information from Citrix and other infrastructure to identify root causes, which they incorporate into dashboards and their layer model.<\/p>\n<p>This enables insights into the common factors shared by the users, who are encountering issues, receiver version, browser version\/type, geography, common CVAD servers, etc. eG Enterprise captures the data for every real user session so that you can analyze reported issues retrospectively and across your whole user base (some products rely on script-based, manual after-the-fact debugging).<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Key Considerations and Best Practices for Microsoft Teams on Citrix Since early 2020, there has been a massive growth in the number of active Microsoft Teams users and organizations deploying Teams; now, there are more than 200 million monthly active users across the globe. With an increase in market share, it&#8217;s one of those applications [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":20542,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"_lmt_disableupdate":"no","_lmt_disable":"","footnotes":""},"categories":[8,387,366],"tags":[65,657,534,918,920,535,919],"class_list":["post-17841","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-citrix-monitoring","category-digital-workspace-monitor","category-end-to-end-monitoring-e2e","tag-citrix","tag-citrix-best-practices","tag-microsoft-teams","tag-teams-citrix","tag-teams-desktop","tag-teams-optimization","tag-teams-vdi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Microsoft Teams on Citrix: Best Practices<\/title>\n<meta name=\"description\" content=\"Deployment of Microsoft Teams on Citrix requires attention to several important considerations. Read this guide to learn best practices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Microsoft Teams Configuration on Citrix | eG Innovations\" \/>\n<meta property=\"og:description\" content=\"Microsoft Teams Configuration and Deployment on Citrix requires attention to several important considerations. Read this detailed guide to learn best practices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/\" \/>\n<meta property=\"og:site_name\" content=\"eG Innovations\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/eGInnovations\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-30T09:30:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-06T11:21:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/11\/TeamsConfig-Social-Banner.jpg\" \/>\n<meta name=\"author\" content=\"George Spiers\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Microsoft Teams Configuration on Citrix | eG Innovations\" \/>\n<meta name=\"twitter:description\" content=\"Microsoft Teams Configuration and Deployment on Citrix requires attention to several important considerations. Read this detailed guide to learn best practices.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/11\/TeamsConfig-Social-Banner.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/JGSpiers\" \/>\n<meta name=\"twitter:site\" content=\"@eginnovations\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"George Spiers\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"26 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Microsoft Teams on Citrix: Best Practices","description":"Deployment of Microsoft Teams on Citrix requires attention to several important considerations. Read this guide to learn best practices.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/","og_locale":"en_US","og_type":"article","og_title":"Microsoft Teams Configuration on Citrix | eG Innovations","og_description":"Microsoft Teams Configuration and Deployment on Citrix requires attention to several important considerations. Read this detailed guide to learn best practices.","og_url":"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/","og_site_name":"eG Innovations","article_publisher":"https:\/\/www.facebook.com\/eGInnovations","article_published_time":"2021-11-30T09:30:11+00:00","article_modified_time":"2023-02-06T11:21:55+00:00","og_image":[{"url":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/11\/TeamsConfig-Social-Banner.jpg","type":"","width":"","height":""}],"author":"George Spiers","twitter_card":"summary_large_image","twitter_title":"Microsoft Teams Configuration on Citrix | eG Innovations","twitter_description":"Microsoft Teams Configuration and Deployment on Citrix requires attention to several important considerations. Read this detailed guide to learn best practices.","twitter_image":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/11\/TeamsConfig-Social-Banner.jpg","twitter_creator":"@https:\/\/twitter.com\/JGSpiers","twitter_site":"@eginnovations","twitter_misc":{"Written by":"George Spiers","Est. reading time":"26 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/#article","isPartOf":{"@id":"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/"},"author":{"name":"George Spiers","@id":"https:\/\/www.eginnovations.com\/blog\/#\/schema\/person\/bde74bdb31b9a10418d331a11fab97d6"},"headline":"Microsoft Teams on Citrix: Best Practices","datePublished":"2021-11-30T09:30:11+00:00","dateModified":"2023-02-06T11:21:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/"},"wordCount":4866,"commentCount":0,"publisher":{"@id":"https:\/\/www.eginnovations.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/#primaryimage"},"thumbnailUrl":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/11\/TeamsConfig-Thumbnail.jpg","keywords":["Citrix","Citrix best practices","Microsoft Teams","Teams Citrix","Teams desktop","teams Optimization","Teams VDI"],"articleSection":["Citrix Monitoring","Digital Workspace Monitoring","End-to-End Monitoring (E2E)"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/","url":"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/","name":"Microsoft Teams on Citrix: Best Practices","isPartOf":{"@id":"https:\/\/www.eginnovations.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/#primaryimage"},"image":{"@id":"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/#primaryimage"},"thumbnailUrl":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/11\/TeamsConfig-Thumbnail.jpg","datePublished":"2021-11-30T09:30:11+00:00","dateModified":"2023-02-06T11:21:55+00:00","description":"Deployment of Microsoft Teams on Citrix requires attention to several important considerations. Read this guide to learn best practices.","breadcrumb":{"@id":"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/#primaryimage","url":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/11\/TeamsConfig-Thumbnail.jpg","contentUrl":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2021\/11\/TeamsConfig-Thumbnail.jpg","width":362,"height":235},{"@type":"BreadcrumbList","@id":"https:\/\/www.eginnovations.com\/blog\/microsoft-teams-configuration-citrix\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.eginnovations.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Microsoft Teams on Citrix: Best Practices"}]},{"@type":"WebSite","@id":"https:\/\/www.eginnovations.com\/blog\/#website","url":"https:\/\/www.eginnovations.com\/blog\/","name":"eG Innovations","description":"IT Performance Monitoring Insights","publisher":{"@id":"https:\/\/www.eginnovations.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.eginnovations.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.eginnovations.com\/blog\/#organization","name":"eG Innovations","alternateName":"eg innovations","url":"https:\/\/www.eginnovations.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.eginnovations.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2014\/07\/eg-logo-dark-gray1_new.jpg","contentUrl":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2014\/07\/eg-logo-dark-gray1_new.jpg","width":362,"height":235,"caption":"eG Innovations"},"image":{"@id":"https:\/\/www.eginnovations.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/eGInnovations","https:\/\/x.com\/eginnovations"]},{"@type":"Person","@id":"https:\/\/www.eginnovations.com\/blog\/#\/schema\/person\/bde74bdb31b9a10418d331a11fab97d6","name":"George Spiers","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.eginnovations.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/313e21e5bb152a4aba0c9b8468b9aa36?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/313e21e5bb152a4aba0c9b8468b9aa36?s=96&d=mm&r=g","caption":"George Spiers"},"sameAs":["https:\/\/x.com\/https:\/\/twitter.com\/JGSpiers"],"url":"https:\/\/www.eginnovations.com\/blog\/author\/george-spiers\/"}]}},"modified_by":"Review eG","_links":{"self":[{"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/posts\/17841","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/comments?post=17841"}],"version-history":[{"count":0,"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/posts\/17841\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/media\/20542"}],"wp:attachment":[{"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/media?parent=17841"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/categories?post=17841"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/tags?post=17841"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}