Windows 10 Optimization – Part 4 – User Interface


afterbeforeI think I create my to-do lists wrong. I never feel like I’m making any progress. For example, one item on my to-do list was “Fix sailboat rudder”. It was looking pretty gnarly, plus my tiller broke, which made for an interesting sail back to the mooring.

This one item on my list took me almost 2 weeks to complete! Talk about not making any progress. What I should have done is break the tasks down into small chunks like

  1. Remove rudder hardware
  2. Sand
  3. Fill cracks/holes
  4. Sand and clean
  5. Paint first coat
  6. Sand and clean
  7. Paint second coat
  8. Sand and clean
  9. Paint third coat
  10. Sand and clean
  11. Paint fourth coat
  12. Sand and clean
  13. Paint fifth coat
  14. Sand and clean
  15. Paint sixth coat
  16. Reattach rudder hardware

Now I don’t feel so bad that it took so long.

I’m beginning to feel the same way about this Windows 10 optimization blog. It was a good idea, but WOW, there are quite a few things to cover. So far, we’ve gone through

  1. Default apps
  2. Services
  3. Scheduled tasks

And remember, although it goes without saying, but I’ll say it anyway, adhere to our XenApp best practice:

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

This batch of optimizations are on the user interface optimizations.

Optimization Configuration
Disable default system Screensaver HKEY_USERS\.DEFAULT\ControlPanel\Desktop

“ScreenSaveActive”=dword: 00000000

Disable the Windows 10 First

Logon Animation

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]

“EnableFirstLogonAnimation”=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,01,80”

Disable cursor blink rate Disable “Cursor blink”

[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”

Now all i have to do is wait until May before I get to put the boat back in the water.

Note: The complete Windows 10 optimization blog series

Daniel ()
XenApp Best Practices
XenApp Videos

Advertisements

Windows 10 Optimization – Part 3 – Scheduled Tasks


IMG_2856

Living in the cold north, you learn to take vacation during the 3 weeks of summer (it really isn’t that bad). I typically spend this time windsurfing, sailing, biking or camping (notice all outdoor activities).

Unfortunately, when vacation time gets close, I start to see a growing honey-do list. I spent a good portion of my last summer vacation staining 11 interior wood doors, building closet shelving, and shoveling 7 tons of rock (ugh).

All of these “scheduled tasks” hurt my vacation experience.

Scheduled tasks can hurt, and Windows 10 has a lot of scheduled tasks, which is why we want to try and optimize (safely). So far, we have gone through the following optimization recommendations

All the while, we are trying to adhere to the following XenApp Best Practice, and optimizing scheduled tasks will follow the same best practice:

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

When operating in a pooled virtual desktop mode, where changes are discarded on subsequent reboots, it doesn’t make sense to perform some of these tasks as they will simply consume resources.

Microsoft Customer Experience Program

Tasks Description
Application Experience \ Appraiser Aggregates and uploads Application Telemetry information if opted-in to the Microsoft Customer Experience Improvement Program.
Application Experience \ ProgramDataUpdater Collects program telemetry information if opted-in to the Microsoft Customer Experience Improvement Program
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 \Uploader This job sends data about windows based on user participation in the Windows Customer Experience Improvement Program
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.

Safety

Tasks Description
Shell \ FamilySafetyMonitor Initializes Family Safety monitoring and enforcement.
Shell \ FamilySafetyRefresh Synchronizes the latest settings with the Family Safety website.
Windows Defender \ Windows Defender CacheMaintenance Can be disabled in case an alternative virus and malware protection has been implemented.
Windows Defender \ Windows Defender CacheMaintenance 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 DefenderScheduled Scan Can be disabled in case an alternative virus and malware protection has been implemented.
Windows Defender \ Windows DefenderVerification 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.

Maintenance \ Optimization \ Protection

Tasks Description
Application Experience \ StartupAppTask Scans startup entries and raises notification to the user if there are too many startup entries.
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.
DiskDiagnostic \ Microsoft-Windows-DiskDiagnosticResolver This task warns users about faults that occur on disks that support Self-Monitoring and Reporting Technology
Defrag \ ScheduledDefrag This task optimizes local storage drives
FileHistory \ File History Protects user files from accidental loss by copying them to a backup location when the system is unattended
Maintenance \ WinSAT Measures a system’s performance and capabilities
MemoryDiagnostic \ ProcessMemoryDiagnosticEvents Schedules a memory diagnostic in response to system events.
MemoryDiagnostic \ RunFullMemoryDiagnostic Detects and mitigates problems in physical memory (RAM).
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
SystemRestore \ SR This task creates regular system protection points.
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

And remember, if you are unsure about turning off a scheduled tasks, LEAVE IT ALONE!

Note: The complete Windows 10 optimization blog series

Daniel ()
XenApp Best Practices
XenApp Videos

Windows 10 Optimization – Part 2 – Services


Note: New article on Services Optimization for VDI posted that includes the Anniversary (Build 1607) and Creator (Build 1703) updates. This post is only for the original (Build 1511) release.

In the Windows 10 Optimization – Part 1, I mostly focused on those applications which come pre-installed. Removing the apps shouldn’t help us get better server density, unless the users are spending all day watching videos or interacting with Xbox. Mostly, removing unneeded applications will create a cleaner image from which we can build our master image.

In this part, I want to take a closer look at Windows 10 services. Are there any that we can shut down to make the operating system consume less resources? Will it impact the experience? And while we are looking at services, let’s keep in mind our XenApp Best Practice

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

And maybe we should add “optimize responsibly” when it comes to services. The more you monkey with the services, the more likely you will experience application or user issues.

First, these services are running, by default, and can be stopped and disabled (Caution: Disabling these services can result in applications not working appropriately and will increase troubleshooting time).

Service Name Default State Default Status Notes
Background Intelligent Transfer Service Automatic (Delayed Start) Running Set default state to “Manual” as 3rd party software might require the service.
Diagnostic Policy Services Automatic Running
Diagnostic Service Host Manual Running
Diagnostic System Host Manual Running
Diagnostics Tracking Service Automatic Running
Function Discovery Provider Host Manual Running
Function Discovery Resource Publication Manual Running
Home Group Provider Manual (Trigger Start) Running Not used in VDI environment
Security Center Automatic (Delayed Start) Running
Shell Hardware Detection Service Automatic Running Supports AutoPlay, which is not typically used in VDI.
SSDP Discovery Manual Running Not typically used in corporate environments.
SuperFetch Automatic Running Can enable for dedicated desktops
Themes Automatic Running This will impact the user experience
Windows Connect Now – Config Registrar Service Manual Running Not required in VDI
Windows Search Automatic (Delayed Start) Running Consider disabling. Will have a high impact on server density.

Second, these services are not running, but they are set to Manual or Manual (Trigger Start). Although they are not running, disabling them will prevent their accidental execution in a VDI environment. (Caution: Disabling these services can result in applications not working appropriately and will increase troubleshooting time).

Service Name Default State Default Status Notes
AllJoyn Router Manual (Trigger Start) Stopped
Application Layer Gateway Service Manual Stopped Not needed for VDI environments.
BitLocker Drive Encryption Service Manual (Trigger Start) Stopped Drive encryption not typically used in VDI environments.
Block Level Backup Engine Service Manual Stopped Windows backup not typically used in VDI.
Bluetooth Hands free Service Manual (Trigger Start) Stopped Not typically used in VDI.
Bluetooth Support Service Manual (Trigger Start) Stopped
BranchCache Service Manual Stopped Used for network savings to a WAN and not typically needed in VDI
Computer Browser Service Manual (Trigger Start) Stopped
Encrypting File System Service Manual (Trigger Start) Stopped
Fax Service Manual Stopped
Home Group Listener Manual Stopped Not used within corporate environments.
Internet Connection Sharing (ICS) Manual Stopped Not used within VDI environments.
Offline Files Manual (Trigger Start) Stopped
Optimize Drives Manual Stopped Should only optimize in the master image
Retail Demo Manual Stopped
Sensor Monitoring Service Manual (Trigger Start) Stopped
UPnP Device Host Service Manual Stopped
Windows Error Reporting Service Manual (Trigger Start) Stopped Disable if logs are not being gathered and analyzed
Windows Media Player Network Sharing Manual Stopped Not typically used in VDI environments.
Windows Update Manual (Trigger Start) Stopped Only update the master image.
WLAN AutoConfig Manual Stopped Not typically used in VDI environments.
WWAN AutoConfig Manual Stopped Not typically used in VDI environments.
Xbox Live Auth Manager Manual Stopped Not typically used in VDI environments.
Xbox Live Game Save Manual Stopped Not typically used in VDI environments.
Xbox Live Networking Service Manual Stopped Not typically used in VDI environments.

IMPORTANT

If these services are disabled in the master image, it will be more difficult to effectively manage the master image. For example, if Windows Update is disabled in the master image, an administrator will be required to re-enable the Windows Update Service BEFORE trying to run Windows Update. The administrator will then have to remember to disable Windows Update when the update process is complete.

It is advisable to use a Group Policy to disable the services and apply the policy onto to the VDI-based desktop objects.

And remember our XenApp Best Practice:

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

If you are unsure about a service, LEAVE IT ALONE!

Note: The complete Windows 10 optimization blog series

Daniel ()
XenApp Best Practices
XenApp Videos


Windows 10 Optimization – Part 1 – Apps


Note: New article on Default App Optimization for VDI posted that includes the Anniversary (Build 1607) and Creator (Build 1703) updates. This post is only for the original (Build 1511) release.

And we all know from Windows 7, optimization guides for VDI made a substantial, positive impact on server density, but will the same hold true for Windows 10?

As part of the practice of optimizing a Windows 10 image, we also must remember one of our XenApp best practices:

XenApp Best Practice #2: For the best combination of user experience and resource consumption, optimize appropriately

The first part to Windows 10 optimization is to look at all of the “free” apps we get with a fresh installation. I just installed a fresh copy of Windows 10 Enterprise and there are well over 50 applications already in my start menu, many of these are the system apps that we definitely want to keep like PowerShell and Command Prompt, but what about 3D builder, Bing Finance, Get Started, etc?

So, look at the Windows 10 list of default apps by running the following PowerShell command:

Get-ProvisionedAppXPackage -Online|Select DisplayName

The applications listed will be provisioned to each and every user that logs on with this image.

What to keep and what to cut? And will it make a difference in terms of user experience and server density? If the app isn’t used, leaving it on the system won’t hurt, or will it? Look at Task Manager

As you can see, I’ve never started the Weather app, but it has consumed some resources (albeit, very small). And what happens if the user starts the app? They will consume even more. So what do you cut?

First, let’s remove the easy ones. These are the apps that we have no good reason why a user would run this application at work and/or doing so would significantly impact server resources:

  • Microsoft.3DBuilder
  • Microsoft.Getstarted
  • Microsoft.MicrosoftOfficeHub
  • Microsoft.MicrosoftSolitaireCollection
  • Microsoft.People
  • Microsoft.SkypeApp
  • Microsoft.WindowsCommunicationsApps (Mail & Calendar)
  • Microsoft.XboxApp
  • Microsoft.ZuneMusic
  • Microsoft.ZuneVideo

That still leaves us with quite a few more apps. And for each one, you have to decide if you want users to have this app or not. And if you believe that removing the Bing Sports app will prevent users from checking on their latest sports teams, you are sadly mistaken; they still have a web browser. So for this list of apps, the decision is yours:

  • Microsoft.BingFinance
  • Microsoft.BingNews
  • Microsoft.BingSports
  • Microsoft.BingWeather
  • Microsoft.Office.OneNote
  • Microsoft.Windows.Photos
  • Microsoft.WindowsCamera
  • Microsoft.WindowsMaps
  • Microsoft.WindowsPhone
  • Microsoft.WindowsSoundRecorder

And finally, for the apps you should keep, our list grows quite short:

  • Microsoft.Appconnector
  • Microsoft.WindowsAlarms
  • Microsoft.WindowsCalculator

Seriously, do you really want to remove the calculator? BTW, if you haven’t looked at Calculator in Windows 10 yet, do so. Microsoft added a lot of functionality to the app. Now I can quickly tell you that 100 centimeters per second equals 2.237136 miles per hour, or almost equal to 1 meter per second, 1.94 knots, 3.28 feet per second or 11.19 turtles 🙂

So removing these apps will only help server density if they are used, but then removing an app that is used will hurt the user experience.

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

Note: The complete Windows 10 optimization blog series

Daniel ()