Tag Archives: vdi

Optimize VDI: Windows 10 Default Apps (Original, Anniversary and Creator Updates)


With the release of Windows 10 Build 1703 (Creator Update), Microsoft added new capabilities into the base operating system that will have an impact on the user experience in a VDI implementation.

Default Apps

Microsoft expanded the list of default applications that come pre-installed within the base OS.

With each release, the number of default apps increased.

  • Build 1511: 24 Apps
  • Build 1607: 26 Apps
  • Build 1703: 31 Apps

As shown in previous tests, leaving these apps part of the base operating system directly impact user logon time and overall system density. It is generally recommended to review the list of apps and uninstall those that are not necessary for the users.

To see a list of default Windows apps, run the following PowerShell command:
Get-ProvisionedAppXPackage -Online|Select DisplayName

Color Code:

  • Green: Remove
  • Orange: Consider removing
  • Red: Keep
  • Black: App does not exist on build
Application Name Build 1511 (Original) Build 1607 (Anniversary) Build 1703 (Creator)
Microsoft.3DBuilder Remove Remove Remove
Microsoft.Appconnector Keep
Microsoft.BingFinance Consider
Microsoft.BingNews Consider
Microsoft.BingSports Consider
Microsoft.BingWeather Consider Consider Consider
Microsoft.DesktopAppInstaller Keep Keep
Microsoft.Getstarted Remove Remove Remove
Microsoft.Messaging Consider Consider
Microsoft.Microsoft3DViewer Remove
Microsoft.MicrosoftOfficeHub Remove Remove Consider
Microsoft.MicrosoftSolitaireCollection Remove Remove Remove
Microsoft.MicrosoftStickyNotes Consider Consider
Microsoft.MSPaint Remove
Microsoft.Office.OneNote Consider Consider Consider
Microsoft.OneConnect Remove Remove
Microsoft.People Remove Remove Remove
Microsoft.SkypeApp Remove Remove Remove
Microsoft.StorePurchaseApp Keep Keep
Microsoft.Wallet Remove
Microsoft.Windows.Photos Consider Consider Consider
Microsoft.WindowsAlarms Keep Keep Keep
Microsoft.WindowsCalculator Keep Keep Keep
Microsoft.WindowsCamera Consider Consider Consider
microsoft.windowscommunicationsapps Remove Remove Remove
Microsoft.WindowsFeedbackHub Remove Remove
Microsoft.WindowsMaps Consider Consider Consider
Microsoft.WindowsPhone Consider
Microsoft.WindowsSoundRecorder Consider Consider Consider
Microsoft.WindowsStore Consider Consider Consider
Microsoft.XboxApp Remove Remove Remove
Microsoft.XboxGameOverlay Remove
Microsoft.XboxIdentityProvider Remove Remove
Microsoft.XboxSpeechToTextOverlay Remove
Microsoft.ZuneMusic Remove Remove Remove
Microsoft.ZuneVideo Remove Remove Remove

Note: Office Hub is an app that changed functionality across different builds.  In early builds, Office Hub was essentially an ad for Office 365.  In the Creator build, Office Hub adds management capabilities for Office users.

Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.6 VDI Handbook
XenApp Best Practices
XenApp Video

Advertisements

Windows Server 2016 Optimizations for Citrix XenApp


When it comes to operating system optimization, I have two sides battling with each other. Although optimizing does improve single server scalability, I believe the more you mess with the OS the greater your chances are that you will break something.

Default Apps

Unlike Windows 10, which had numerous default apps that increased user logon time, Windows Server 2016 is free from such additions.

Services

Many of the services we disabled in Windows 10 are already configured as manual startup in Windows 2016.  Looking deeper, it would appear that many of these services are either started based on a request by an application or based on a scheduled task.If a manual startup service is disabled, then any application or system component that tries to interact with the service will fail.  This will result in application/system issues, support calls and long troubleshooting times.Based on that , the only service that you think about disabling is:

Service Name

Default State

Default Status

Hosted Apps Workloads

Hosted Desktop Workloads

Themes

Automatic

Running

Disable

Enable – better user experience

Disable – better server density

Scheduled Tasks

Scheduled tasks will sporadically impact density as they only run when a trigger is tripped. When determining what to disable, we need to look at the value the task has in a non-persistent environment.  This assumption is based on the XenApp Best Practice of server consistency.

Scheduled Tasks – Applications

Tasks

Description

Application Experience \ Microsoft Compatibility Appraiser

Helps resolve application compatibility challenges.

Application Experience \ StartupTask

Determines if there are too many startup entries and then notifies
the user

 

Scheduled Tasks – Microsoft Customer Experience Program

Tasks

Description

AutoCHK \ Proxy

This task collects and uploads autochk SQM data if opted-in to the
Microsoft Customer Experience Improvement Program.

Customer Experience Improvement Program \Consolidator

If the user has consented to participate in the Windows Customer
Experience Improvement Program, this job collects and sends usage data to
Microsoft.

Customer Experience Improvement Program \KernelCeipTask

The Kernel CEIP (Customer Experience Improvement Program) task
collects additional information about the system and sends this data to
Microsoft. If the user has not consented to participate in Windows CEIP, this
task does nothing.

Customer Experience Improvement Program \UsbCeip

The USB CEIP (Customer Experience Improvement Program) task collects
Universal Serial Bus related statistics and information about your machine
and sends to the Windows Device Connectivity engineering group at Microsoft.
The information received is used to help improve the reliability, stability,
and overall functionality of USB in Windows. If the user has not consented to
participate in Windows CEIP, this task does not do anything.

 

Scheduled Tasks – Safety

Tasks

Description

Windows Defender \ Windows Defender Cache Maintenance

Can be disabled in case an alternative virus and malware protection
has been implemented.

Windows Defender \ Windows Defender Cleanup

Can be disabled in case an alternative virus and malware protection
has been implemented.

Windows Defender \ Windows Defender Scheduled Scan

Can be disabled in case an alternative virus and malware protection
has been implemented.

Windows Defender \ Windows Defender Verification

Can be disabled in case an alternative virus and malware protection
has been implemented.

Windows Filtering Platform \BfeOnServiceStartTypeChange

This task adjusts the start type for firewall-triggered services when
the start type of the Base Filtering Engine (BFE) is disabled.

 

Scheduled Tasks – Maintenance

Tasks

Description

CHKDSK \ Proactive Scan

NTFS Volume Health Scan

Diagnosis \ Scheduled

The Windows Scheduled Maintenance Task performs periodic maintenance
of the computer system by fixing problems automatically or reporting them
through the Action Center.

DiskDiagnostic \ Microsoft-Windows-DiskDiagnosticDataCollector

The Windows Disk Diagnostic reports general disk and system
information to Microsoft for users participating in the Customer Experience
Program.

Maintenance \ WinSAT

Measures a system’s performance and capabilities

Power Efficiency Diagnostics \ AnalyzeSystem

This task analyzes the system looking for conditions that may cause
high energy use.

RecoveryEnvironment \ VerifyWinRE

Validates the Windows Recovery Environment.

Registry \ RegIdleBackup

Registry Idle Backup Task

Scheduled Tasks – General

Tasks

Description

Mobile Broadband Accounts / MNO Metadata Parser

Parses information related to mobile broadband users

Power Efficiency Diagnostics \ AnalyzeSystem

This task analyzes the system looking for conditions that may cause
high energy use.

RAS / MobilityManager

Provides support for the switching of mobility enabled VPN connections
if their underlying interface goes down.

Shell / IndexerAutomaticMaintenance

Maintains the search index

WDI \ ResolutionHost

The Windows Diagnostic Infrastructure Resolution host enables
interactive resolutions for system problems detected by the Diagnostic Policy
Service. It is triggered when necessary by the Diagnostic Policy Service in
the appropriate user session. If the Diagnostic Policy Service is not
running, the task will not run

User Interface

Many of the user interface optimizations have been used on Windows Server 2000 and beyond, consisting of good practices in order to hide administrative items from the user and to have more efficient overall usage by disabling a few user interface capabilities.

Optimization

Configuration

Disable default system Screensaver

HKEY_USERS\.DEFAULT\ControlPanel\Desktop

“ScreenSaveActive”=dword: 00000000

Hide Hard Error Messages

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows]

“ErrorMode”=dword:00000002

Settings “Visual Effects to Custom”

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects]

“VisualFXSetting”=dword:00000003

Disable “Show translucent selection rectangle”

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]

“ListviewAlphaSelect”=dword:00000000

Disable “Show shadows under windows”

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]

“ListviewShadow”=dword:00000000

Disable “Animate windows when minimizing and maximizing”

[HKEY_CURRENT_USER \ControlPanel\Desktop\WindowMetrics]

“MinAnimate”=”0”

Disable “Animations in the taskbar”

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]

“TaskbarAnimations”=dword:00000000

Disable “Enable Peek”

[HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM]

“EnableAeroPeek”=dword:00000000

Disable “Save Taskbar Thumbnail Previews”

[HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM]

“AlwaysHibernateThumbnails”=dword:00000000

Disable “Smooth edges of screen fonts”

[HKEY_CURRENT_USER \Control Panel\Desktop]

“FontSmoothing”=”0”

Disable the rest of the visual effects

[HKEY_CURRENT_USER \Control Panel\Desktop\]

“UserPreferencesMask”=RegBin: “90,12,03,80,10,00,00,00”

Disable cursor blink rate

[HKEY_CURRENT_USER \Control Panel\Desktop]

“CursorBlinkRate”=”-1″

Disable Internet Explorer First Run

Wizard

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\InternetExplorer\Main]

“DisableFirstRunCustomize”=dword:00000001

Reduce menu show delay

[HKEY_CURRENT_USER\ControlPanel\Desktop]

MenuShowDelay”, “0”

System

The final optimizations are focused on system-level settings, allowing organizations to get the most value of their systems.

System – BIOS

Optimization

Configuration

Max Performance

Verify BIOS is set for maximum performance and not low power.

System – Commands

Optimization

Configuration

Disable hibernate

Powercfg -h off

 

System – Registry updates

Optimization

Configuration

Disable NTFS Last Access Timestamps

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]

“NtfsDisableLastAccessUpdate”=dword:00000001

Disable Memory Dump Creation

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl]

“CrashDumpEnabled”=dword:00000000

“LogEvent”=dword:00000000

“SendAlert”=dword:00000000

Increase Disk I/O Timeout to 200

Seconds

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk]

“TimeOutValue”=dword:000000C8

 

Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.6 VDI Handbook
XenApp Best Practices
XenApp Video

Citrix VDI Handbook 7.6


The Citrix VDI Handbook is now available!

Let me answer a few questions about the VDI Handbook

  1. Version: The VDI Handbook is based on the XenApp and XenDesktop 7.6 Long-Term Service Release.
  2. Updates: The plan is to release a VDI Handbook for each Long-Term Service Release. The VDI Handbook is based on real-world implementation experiences. Basing updates on LTSR releases (18-24+ months) allows us to include better recommendations than if we updated for the current release (every quarter).
  3. Format: PDF and HTML. The PDF version is ready now, the HTML version will be ready shortly.
  4. Content: The handbook includes information on Assess, Design and Monitor.

Grab version 1 of the Citrix VDI Best Practices Handbook for XenApp and XenDesktop 7.6

Daniel (Follow on Twitter @djfeller)
XenApp Advanced Concept Guide
XenApp Best Practices
XenApp Videos

 

 

Skype for Business – Three-way calling


Based on the questions I’ve received, it seems like Skype for Business is a pretty big deal.  So, let’s take a look at another question I recently received with regard to the Citrix RealTime Optimization Pack for Skype for Business:

How does this work with 3-way calling?

With Skype for Business, in order to do a 3-way (or more) conference call, you need to have the Skype for Business Audio-Video Conferencing Server implemented within your Skype deployment. After initiating a call by communicating over SIP to the Skype Server, all parties within the call have their voice/video (SRTP) pass through the Conferencing Server.

In a Native RDS/VDI deployment that does NOT include the Citrix RealTime Optimization Pack for Skype for Business, the media must traverse additional network hops (For simplicity, I removed the Skype for Business server that is still required for initializing the session.)

without

As you can see, for those users accessing the environment with a virtual desktop, the Skype for Business client gets installed within the virtual desktop (VDA).  Although this deployment model works, it does put more strain on your RDS/VDI infrastructure as we explained in the previous blog.

Now, compare the SRTP path when we implement the Citrix RealTime Optimization Pack for Skype for Business.

Opt3way

From the user perspective, the voice and video data follows a much more direct route, mimicking that of the traditional PC experience. And the impact to the RDS/VDI infrastructure is significantly reduced as the media is processed on the end points.

Skype for Business Blogs

Daniel (Follow on Twitter @djfeller)
XenApp Best Practices
XenApp Videos

Skype for Business – VDI to Native


I recently posted a blog and video about the new Citrix Realtime Optimization Pack for Skype for Business. As you could see from the video, Citrix is able to deliver Skype for Business to RDS/VDI users with XenApp and XenDesktop. With the optimization pack, CPU utilization on the processor is negligible while the overall user experience is identical to that of a traditional PC.

Recently, as I was talking about this feature, I was asked the following question:

You show the optimization occurring between two users who are both using VDI. What happens if one user is using VDI and the other is on a traditional PC?

I find a few pictures makes the entire solution easier to understand. First, let’s look at Native VDI

Native Skype

As you can see, the audio & video occurs between the two virtual desktops as the Skype for Business client is installed on the virtual desktops.

Second, we look at the architecture when we use the Citrix Realtime Optimization Pack for Skype for Business

XA Skype

This time, the voice and video occurs between the two end points. Although the Skype for Business client is still on the virtual desktops, we’ve moved the media engine to the local end points for processing, while still making it appear that the video is executing on the virtual desktop.

And finally, we look at the architecture when we have one user running Citrix XenApp/XenDesktop with the Realtime Optimization Pack for Skype for Business and another user is using a traditional PC with the native Skype for Business client.

XA and traditional Skype

Again, look at the voice & video path, it still occurs between the two endpoints. This is because the user who utilizes a virtual desktop still has the media engine on their local endpoint while the traditional PC user has the default Skype for Business client.

So, whether your users all run XenApp/XenDesktop, or only subset uses XenApp/XenDesktop, the Citrix Realtime Optimization Pack will still be an improvement over the default install in the RDS/VDI world.

Daniel (Follow on Twitter @djfeller)
XenApp Best Practices
XenApp Videos

Windows 10 Optimization – Part 7: ICA


MowerWere you planning to buy that? Nope.

Of course, as you saw in my previous blog, my stupid lawn mower wheel snapped off with only 30 minutes left in the season! D’oh!

Figured I would just head to the local hardware store and buy a new one. Guess what? Hardware stores in Minnesota don’t sell lawn mowers in late October. I guess no one wants to mow snow, although it might look cool. I went home, got online and eventually ordered a new mower, which happened to be battery-powered. I still can’t believe I did it, but here is why:

Pros Cons
Lightweight
(Wonder when kids can start mowing)
Can’t mow all day on single charge
(I wouldn’t do this with gas anyways)
No more gas & oil messes Doesn’t look very manly
No more winterizing mower Doesn’t look very manly
Quiet
(No more ear protection)
Doesn’t look very manly

So in the end,

  1.     I wasn’t planning to buy a lawn mower
  2.     I definitely wasn’t planning to buy a battery-powered lawn mower
  3.     I wasn’t planning to write another portion for the Windows 10 optimization series

This portion of the optimization series was not in my original plan because it was not a specific change to the underlying operating system, but should that matter? Originally, I thought yes it does matter, which is why I wasn’t going to include it in the series. But remember, the entire time we talked about different optimizations, we always came back to the

XenApp best practice of:

For the best combination of user experience and resource consumption, optimize appropriately

We followed this for

  1.     Default apps
  2.     Services
  3.     Scheduled tasks
  4.     User Interface
  5.     Runtime
  6.     Release

So, why not look at ICA?

First, take a look at Mayunk Jain’s blog on Why you should care about HDX.

Ok, I’m sold. So let’s do it.

Optimization Description
High Server Scalability This template balances user experience and server scalability. It offers a good user experience while increasing the number of users you can host on a single server. This template does not use video codec for compression of graphics and prevents server side multimedia rendering.

That’s all I have to do? That’s too easy for me. If you look into this policy template, you see the following being done to ICA (Full list of changes are contained in the HDX Policy Template paper)

Policy Setting
Use video codec for compression Do not use
Target frame rate 16
Target minimum frame rate 8
Visual quality Medium
Desktop Wallpaper Prohibited
Menu animations Prohibited
Optimization for Windows Media multimedia redirection over WAN Prohibited
Windows media fallback prevention Play all content only on client
Flash video fallback prevention Only small content
Multimedia conferencing Prohibited
Audio quality Medium-Optimized for speech
Auto-create client printers Auto-create the client’s default printer only
Universal print driver usage Use universal printing only
Universal printing optimization defaults Image compression = Standard quality

Based on this, we optimize server density by slightly reducing the quality of the experience. Seems like a fair trade-off (although not having my favorite background picture on my desktop would upset me).

Note: Some of these Citrix policy settings can be drastic if your users are on the WAN.  For example, the “Optimization for Windows Media multimedia redirection over WAN” will degrade the user experience for WAN users.  If users will access resources via the WAN, use the “Optimized for WAN” Citrix Policy as the starting point.

BTW, I’m open for suggestions on how to make my mower more manly looking. I’m thinking a beer holder or racing stripes might help.

Note: The complete Windows 10 optimization blog series

 

Windows 10 Optimization – Part 6 – Release


IMG_0754I look forward to winter arriving because it means I’m done mowing the yard for 5-7 months. So you can imagine how excited I was when I was mowing my yard for the final time of the season. I could see the end in sight. I was beginning to think about what I would do with my extra 2 hours of time every weekend.

Almost there. Almost there.

Ummm, why is my mower not moving?

Why is it dragging on the ground?

HEY! Where did my wheel go?

Are you freaking kidding me?

With 30 minutes left of mowing for the season, my wheel fell off. And I don’t simply mean it fell of.  It snapped. And it wasn’t a cheap piece of plastic.  A good sized piece of metal snapped (I guess I’m just too strong).

No matter how far you get, how much you do, it can all be for nothing. As we’ve seen, Windows 10 provides us with many different avenues for optimization. We’ve gone through

  1. Default apps
  2. Services
  3. Scheduled tasks
  4. User Interface
  5. Runtime

All while trying to follow our XenApp best practice of:

For the best combination of user experience and resource consumption, optimize appropriately

And at the end, once we’ve optimized and installed our apps, we have one last thing to do before we are complete and ready for user testing is to optimize the image itself. The image optimization recommendations are manual, but are worthwhile. They include:

Optimization Description
Antivirus definitions If antivirus is installed and running within the virtual desktop, updating the definition file will prevent all desktops from updating on first boot up.
Windows update It is typically advisable to have the latest Windows 10 updates and security fixes before rolling out the image into production. Just remember that if the Windows Update service was disabled, it must be re-enabled to run the update. And if you had to enable it in order to run Windows Update, don’t forget to re-disable it.
App updates Many applications have integrated auto update functionality. These applications should be updated, then the auto update functionality should be disabled.
Disk defragmenter The disk might have become fragmented during installation and configuration, which will lead to less performance. Defragmenting the disk before rolling out will give better performance and reduce storage utilization.

Note: The complete Windows 10 optimization blog series


Daniel ()
XenApp Best Practices
XenApp Videos