VMware Horizon Community
sphbecker
Enthusiast
Enthusiast

Setting Windows visual effects for default user

I am setting up a master image to be used for VDI desktops. I need to tweak the Windows visual effects to improve screen update performance over slow connections. The settings I am talking about can be found Computer / Properties / Advanced system settings / Advanced / Performance settings / Visual Effects. For example, I want to disable "show window contents while dragging." The registry key is HKCU\Control Panel\Desktop\DragFullWindows=0. Each checkbox on that screen has a corresponding registry value, I have found them all.

I figured, cool, all I need to do is load the settings I want into the default user registry so it is applied as new users are created. Not so, some of the settings carry though, but many get reset. My guess is that Windows sets some of those settings as the profile is created, based on the computer's performance index. I have verified the settings work, if I apply them to a specific user's profile they are all applied.

Does anyone have an idea how I can get this to work?  These are the full settings I am applying…

[HKEY_USERS\def\Control Panel\Desktop]

"ScreenSaveActive"="1"

"DragFullWindows"="0"

"UserPreferencesMask"=hex:90,12,03,80,10,00,00,00

"ScreenSaveTimeOut"="900"

"ScreenSaverIsSecure"="1"

[HKEY_USERS\def\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects]

"VisualFXSetting"=dword:00000003

[HKEY_USERS\def\Control Panel\Desktop\WindowMetrics]

"MinAnimate"="0"

[HKEY_USERS\def\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]

"IconsOnly"=dword:00000001

"ListviewAlphaSelect"=dword:00000000

"TaskbarAnimations"=dword:00000000

"Start_PowerButtonAction"=dword:00000001

10 Replies
chillware1
Enthusiast
Enthusiast

I created a .reg file that i run in my login script that sets similar settings, i know not the best solution, but works just fine.

0 Kudos
sphbecker
Enthusiast
Enthusiast

Yes, that is what I ended up doing as well. It doesn't apply until the 2nd time they log in (registry merge happens the first time, but Explorer has already loaded and doesn't pick up the change). Did you figure out a way around that or do you just wait until 2nd login?

The only issue I see is with users who do not have a persistent disk because every time they log in it is the first time.

Getting these settings correct on VDI makes a HUGE difference over WAN. I am a little surprised vmWare doesn’t include optimization like this as an option in View.

0 Kudos
chillware1
Enthusiast
Enthusiast

yeah, forgot to mention that.. I wait for 2nd login as well.. I agree its a bit of a pain.. but at least it works :smileygrin:

0 Kudos
royberk
Enthusiast
Enthusiast

If Im understanding you correctly, the users profile who is logging in, is not keeping the changes you made on the template. Give this link a try: http://www.standalone-sysadmin.com/blog/2009/07/changing-the-windows-xp-default-user-profile/

You make a change on an un-privileged user. Then log in as an admin, and copy that unprivileged users profile to the default users profile.

This should make all of your settings (registry and all) stick.

0 Kudos
sphbecker
Enthusiast
Enthusiast

Well, that kind of works.  Essentially, I was already doing that by changing the registry settings in the "Default User" profile.  Instead of the shotgun approach of copying an existing user’s entire profile, I was surgically changing the settings I wanted.  However apparently Windows resets the settings I care about as it creates a new profile (this is not the case with most settings).  Super annoying!  With the profile copied I guess there is something that says "I have already done this" and the settings stay the same.

I should also point out that Microsoft does not support the "Default User" overwrite approach, I had a number of icon problems when I booted up Windows 7 using this approach.  You can also run into problems if you ever delete the profile that was used to create "Default User."

0 Kudos
royberk
Enthusiast
Enthusiast

You are correct that MS does not support this method, however it does work .

And I disagree with what you mentioned:

Deleting the user profile that copies into the Default users, causes issues.

Ive used this approach hundreds of times and each time I delete the userx profile used to make a copy into Default users. This has not caused an issue to date.

Anywho, Im glad that this was able to stick your registry changes to the default users .

0 Kudos
weeboo
Contributor
Contributor

Here are the registry keys where Windows gets the Visual Effects settings when a user profile is created.

If you modify the settings below with the appropriate dword value, you can set the default Visual Effects settings for every user that gets created.

I'm also attaching a .reg file

<==BEGIN REGISTRY SETTINGS==>

Windows Registry Editor Version 5.00

;Sets Visual Effects to Custom
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects]
"VisualFXSetting"=dword:00000003

;Change dword:00000000 to dword:00000001 to enable the appropriate option

;Animate windows when minimizing and maximizing
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\AnimateMinMax]
"DefaultValue"=dword:00000000

;Slide open combo boxes
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\ComboBoxAnimation]
"DefaultValue"=dword:00000000

;Animate controls and elements inside windows
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\ControlAnimations]
"DefaultValue"=dword:00000000

;Show shadows under mouse pointer
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\CursorShadow]
"DefaultValue"=dword:00000000

;Show window contents while dragging
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\DragFullWindows]
"DefaultValue"=dword:00000000

;Show shadows under windows
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\DropShadow]
"DefaultValue"=dword:00000000

;Smooth edges of screen fonts
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\FontSmoothing]
"DefaultValue"=dword:00000000

;Smooth-scroll list boxes
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\ListBoxSmoothScrolling]
"DefaultValue"=dword:00000000

;Show translucent selection rectangle
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\ListviewAlphaSelect]
"DefaultValue"=dword:00000000

;Use drop shadows for icon labels on the desktop
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\ListviewShadow]
"DefaultValue"=dword:00000000

;Fade or slide menus into view
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\MenuAnimation]
"DefaultValue"=dword:00000000

;Fade out menu items after clicking
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\SelectionFade]
"DefaultValue"=dword:00000000

;Animations in the taskbar and StartMenu
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\TaskbarAnimations]
"DefaultValue"=dword:00000000

;Fade or slide ToolTips into view
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\TooltipAnimation]
"DefaultValue"=dword:00000000

<==END REGISTRY SETTINGS==>

bhamm
Enthusiast
Enthusiast

I change most of the settings you're mentioning by using a tool called 'defprof' by a group named ForensIT.  It's free.  Most of their software deals with windows profiles, so it's fairly well designed. You won't run into most of the issues you see with the 'copy profile' method.

http://www.forensit.com/support-downloads.html

Of course, getting the right settings on a created profile is contingent upon software developers storing their information in the proper place.  If you configure profile settings on a badly designed program, you might have unexpected results.  I haven't had any issues configuring settings with common software (office, browser, etc).

With regard to settings not 'sticking', I ran into a similar issue to the one you're describing.  I would create a user account I intended to use as my default profile template, and modify the settings you mentioned.  I would test them (by, say, moving a window), and I was able to confirm they had changed..  After I logged off & logged back in, however, the settings were reset.  Since I received a UAC prompt when i went to the 'performance options' screen & entered an admin acct password, I assumed this was a bug in Windows.  Making the account a local admin temporarily in order to commit those changes seemed to knock out the problem.

Regarding VMware, they do have an optimization script.  It's attached to this:

http://www.vmware.com/files/pdf/VMware-View-OptimizationGuideWindows7-EN.pdf

I'd advise looking over each line, though, to see if it's something that would be a good fit for you/your company.  That script turns off a few things I think are worth keeping around.

0 Kudos
bretttenney
Enthusiast
Enthusiast

I just use GPO to set all the user settings with loopback processing enabled. Works during the first logon.

To copy to the default profile in Win7, Sysprep is what I use and the only supported method by MS. You can do this by specifying the Microsoft-Windows-Shell-Setup\CopyProfile parameter in the Unattend.xml. I don't loose any of the user settings when new profile is created.

0 Kudos
Enelass
Contributor
Contributor

I have successfully set visual effect for default user using a custom visual effect (smooth + visual effect & nothing else)

I used a software to snapshot windows registry then compare it to see the changes :

Best appearance ==> Custom

Best performance ==> Custom

Here is a .reg file, it only takes effect after a logoff/logon:

http://bidabe.zapto.org/?p=573

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
"ShellState"=hex:24,00,00,00,38,28,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  01,00,00,00,12,00,00,00,00,00,00,00,32,00,00,00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"ListviewAlphaSelect"=dword:00000000
"ListviewShadow"=dword:00000000
"TaskbarAnimations"=dword:00000000
"IconsOnly"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects]
"VisualFXSetting"=dword:00000003

[HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM]
"EnableAeroPeek"=dword:00000000
"CompositionPolicy"=dword:00000001
"AlwaysHibernateThumbnails"=dword:00000000
"Composition"=dword:00000001
"ColorizationOpaqueBlend"=dword:00000000

[HKEY_CURRENT_USER\Control Panel\Desktop]
"DragFullWindows"="0"
"FontSmoothing"="2"
"FontSmoothingGamma"=dword:00000000
"FontSmoothingOrientation"=dword:00000001
"FontSmoothingType"=dword:00000002
"UserPreferencesMask"=hex:98,12,03,80,10,00,00,00

[HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics]
"MinAnimate"="0"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager]
"ThemeActive"="1"
"LMVersion"="105"
"DllName"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
  74,00,25,00,5c,00,72,00,65,00,73,00,6f,00,75,00,72,00,63,00,65,00,73,00,5c,\
  00,74,00,68,00,65,00,6d,00,65,00,73,00,5c,00,41,00,65,00,72,00,6f,00,5c,00,\
  41,00,65,00,72,00,6f,00,2e,00,6d,00,73,00,73,00,74,00,79,00,6c,00,65,00,73,\
  00,00,00
"ColorName"="NormalColor"
"SizeName"="NormalSize"

In order to push it to all users, you can use it as a GPO.

0 Kudos