Windows‎ > ‎


I give you tools and know how. I don't build your shed ;)

Windows 7 idling

Only using 570 Mb RAM and Avast antivirus running.

I'm am using the 32 bit version and only 2.7 Gb RAM available instead of 3.5 Gb due to the NVidia Optimus Video technology on my laptop.

I use PAE for Ramdisk. This holds the pagefile and the Temporary Internet Files for IE and Chrome.

This makes you think what the use of the pagefile is anyway these days.
It is an "obsolete" technology from the Win 3.1 era but we have to live with it. Even if you are using 64 bit versions of the Windows OS.

PAE on 32 bit Windows gives you 4 extra address bytes, that would be 36 bits in total. That is enough to address 64 Gb of RAM. Some Windows 2003 versions used it.

Recently I have run 36 bits Windows 32 with a great "just for testing purposes" tool from and you can download BootkitInstaller from here. When it gives trouble reboot in safe mode and disable it.

Windows 7 - remove the bloatware

I found Windows 7 comes with loads of features that I don't like. Those however are easy removable from the installed OS.

Features? Thanks. I brought my own.
Use the Turn Windows features on or off from the Programs and Features screen.  This is what I ended up with.

Uninstalling Features from the command line

You can do this by using DISM.EXE from the command line: 
DISM /online /Get-Features /Format=Table
DISM /online /Get-Features /Format=Table | find /i "enabled"
Disable a Feature:
DISM /online /Disable-Feature /FeatureName:<name of the feature>
Enable a Feature:
DISM /online /Enable-Feature /FeatureName:<name of the feature>

You can remove obsolete Service Pack files with DISM.EXE:
DISM /online /Cleanup-Image /SpSuperseded /hidesp

Compress only the logfiles:
For /r C:\ %f in (*.log) do compact.exe /c /a /i /q "%f" & echo %f>> c:\temp\logfiles_compressed.txt

The Media features

By removing all the Media related features you need some replacement. For that you can use directshow codecs
and a mediaplayer you like. On the codec side you can use ffdshow or the mpc-hc filters or a combination of both.
As mediaplayer I use two: Winamp for audio and Mpc-hc for movies.

Even after removing the Media features some Microsoft codecs still be present in the OS.
Use these commands to get them disarmed:

REM ### Mpeg4s DMO {2a11bae2-fe6e-4249-864b-9e9ed6e8dbc2} merit 800001
regsvr32 /u /s MP4SDECD.DLL
REM ### Mp3 Decoder DMO {bbeea841-0a63-4f52-a7ab-a9b3a84ed38a}
regsvr32 /u /s mp3dmod.dll
REM ### Mpeg43 Decoder DMO {cba9e78b-49a3-49ea-93d4-6bcba8c4de07} merit 800001
regsvr32 /u /s mp43decd.dll
REM ### Mpeg4 Decoder DMO {f371728a-6052-4d47-827c-d039335dfe0a} merit 800001
regsvr32 /u /s mpg4decd.dll
REM ### Microsoft DTV-DVD Video Decoder {212690FB-83E5-4526-8FD7-74478B7939CD} 
regsvr32 /u /s msmpeg2vdec.dll
REM ### Microsoft DTV-DVD Audio Decoder {E1F1A0B8-BEEE-490D-BA7C-066C40B5E2B9} 
regsvr32 /u /s msmpeg2adec.dll

You can go even further by disabling the Media Foundation codecs too. This is the directshow successor.
And disable the Media Foundation codecs by entering this command: regsvr32 /u /s mf.dll

You can also completely remove the codec and Media Foundation packages. As always create a Restore Point before you do this.
DISM /online /Remove-Package /PackageName:Microsoft-Windows-CodecPack-Basic-Package~31bf3856ad364e35~x86~~6.1.7601.17514
DISM /online /Remove-Package /PackageName:Microsoft-Windows-Foundation-Package~31bf3856ad364e35~x86~~6.1.7601.17514  
(removing the Media Foundation gives permission denied, I'll try to fix that)

In the registry packages are listed here: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing

Remove all registered mf.dll explorer shell property handlers to speedup right click on media files:

@echo off

REM HKEY_CLASSES_ROOT\CLSID\{11103421-354C-4CCA-A7A3-1AFF9A5B6701}\InprocServer32
REM     (Default)    REG_EXPAND_SZ    %SystemRoot%\System32\mf.dll
REM     (Default)    REG_EXPAND_SZ    %SystemRoot%\System32\mf.dll

Echo %date% > C:\Temp\MF_unregister.log

For /f %%a in ('Reg.exe query HKCR\CLSID /f "\System32\mf.dll" /s') do Call :GetKey %%a
Goto NotFound

If Errorlevel 1 Goto NotFound
Echo %1 >> C:\Temp\MF_unregister.log
Set KEYFOUND=%KEYFOUND:\InprocServer32=%
REM HKCR is not available as location: Powershell.exe rename-item "%KEYFOUND%" %CLSID%.OFF
REG SAVE %KEYFOUND% c:\temp\%CLSID%.hive /y
REG EXPORT %KEYFOUND% c:\temp\%CLSID%.reg /y


If you want to learn more about directshow engine try using GraphStudio for a while. You will see the lego-ish building functions in action.

ps: take ownership of HKCR\CLSID. But add the groups "Users" and "NT SERVICE\TrustedInstaller" before applying permissions!

Windows Search

As for Windows Search? It is powerful but unusable for everyday users. Try Agent Ransack.
I miss my little Doggy from Xp, yes we all do :(

Cleanmgr.exe /sageset:1


In time your HDD will be filled with logfiles, dump files, and other temporary files. Since Windows XP there is cleanmgr.exe. This one pops up if your HDD gets low on diskspace. But we don't want the default actions as compressing files etc.
To take things in your own hands there are more powerful options in cleanmgr.exe than meets the eye. 

Setup cleanmgr.exe as follows:
cleanmgr.exe /sageset:1

Now select what you want it to clean up. It will be saved as set 1. Now we want cleanmgr to actually clean it. For that use:
cleanmgr.exe /sagerun:1

Use cleanupmgr.exe /help for some more info. You can schedule cleanmgr.exe /sagerun:1 for running once a week.

Note: Cleanmgr.exe /sageset:1 on XP/W2003 has the Compress Old Files feature.  Beware of that.

Note: Windows 2012 R2 patch cleanup  Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
Use /ResetBase option only if you dont want to rollback patches.

Note: CleanMgr for Windows 2012 R2

Remove Packages

Also you might have noticed the ridiculous growth in the c:\windows\winsxs folder. This folder holds packages/dll/mui/setup/sp etc. files for Windows 7 OS. 
Also you might find foreign language files you don't need:
DISM /online /Get-Packages /Format=Table
And you can remove then with:
DISM /online /Remove-Package /PackageName:<the name from the above command>

You can make a cmd file to get rid of them. An example can be found on my script page: RemovePackages.cmd.
Error 14098? Then WinSxS Component Store damaged. Windows 8 DISM has a repair option and a better Cleanup.
I will see if that can be used on Windows 7 too.

For Windows 8 users:

Dism /Online /Cleanup-Image /ScanHealth
Dism /Online /Cleanup-Image /StartComponentCleanup

For Windows 10 users:

REM ### Remove ALL WIN10 Apps per USER
Powershell.exe "Get-AppxPackage -PackageTypeFilter Bundle | Remove-AppxPackage"

REM ### Remove ALL WIN10 Apps for all users
Powershell.exe "Get-AppxPackage -AllUsers -PackageTypeFilter Bundle | Remove-AppxPackage"

REM ### Remove ALL WIN10 Apps from PC local online DISM store (might still exist per USER)
For /f "tokens=3" %P in ('DISM.exe /Online /Get-ProvisionedAppxPackages^|Findstr PackageName') Do (
   Dism.exe /Online /Remove-ProvisionedAppxPackage /PackageName:%P

Remove Windows packages that are not removable with DISM

There are many more packages on your system that are not removable by default. For this purpose you need install_wim_tweak.exe to remove them.

To make all packages visible:  install_wim_tweak.exe /o
Write package list to Packages.txt:  install_wim_tweak.exe /o /l
To remove a package: install_wim_tweak.exe /o /c Microsoft-Windows-Internet-Browser-Package /r   (type a part of the package name=wildcard, be carefull)

You can also set the value Visibility from 2 to 1 on each subkey in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages to make them able to uninstall by DISM. (you need to take ownership first)

DISM /online /Get-Packages
DISM /online /Add-Package /PackageName:Microsoft-Windows-PhotoPremiumPackage~31bf3856ad364e35~amd64~~6.1.7601.17514
DISM /online /Remove-Package /PackageName:Microsoft-Windows-PhotoPremiumPackage~31bf3856ad364e35~amd64~~6.1.7601.17514

Warning: using the install_wim_tweak.exe you can easily corrupt the Software Component Database then Windows update etc won't work anymore. 
Use the Microsoft System Update Readyness Tool (contains CheckSUR.exe) to repair this.  

Windows 7 - Improve performance

Although not slow out of the box it can always be (much) faster. This story can be a very long one but I will try to cut it short.
I will only focus on HDD, RamDisk, Network and (kernel) Memory

The HDD and the RamDisk

With QuietHDD you set your HDD to maximum performance, for both APM and AAM (if applicable for your HDD). This also helps Harddisk clicking noises and prolonging HDD life. This click is the HDD trying to save power at APM values lower than 128. My QuietHDD.ini looks like this:
FirstRun = 0
AC_APM_Value = 254
DC_APM_Value = 254
AC_AAM_Value = 254
DC_AAM_Value = 254
AAMEnabled = 1
APMEnabled = 1
To make sure it is started during startup I add a scheduled Task that starts QuietHDD.exe at system startup.

With Gavotte RamDisk you create a HDD in memory. I use drive B: for that. This is even useful on 32bit systems with 2Gb. It can hold your Temporary Internet Files. With 4Gb and more on 32 bit OS you use the 36 bit Physical Address Extension (PAE) so the Ramdisk is loaded in otherwise unused RAM. Even with 64 bit OS this has advantages: less HDD and SSD writes, a clean Internet Cache every time you start your PC.  (32 bit with PAE is 36 bit, which has an address limit of 64 Gb, not 4Gb)
With 4 Gb or more you also want to house the pagefile on the Ramdisk. Also schedule this with Task Scheduler and use addswap.exe from Gavotte.
addswap.exe B:\pagefile.sys 256 1024
Disable the Windows pagefile.
Since Ramdisk space is limited to 512 Mb up to 2Gb (we want some RAM for the OS too) I use Free Download Manager. This will relief the Temporary Internet Files cache where downloads usually stay after the download. Use IE settings to point your Temporary Internet Files to B:\

For Chrome use this registry setting to redirect the cache to the Ramdisk (B:):

You can download the new Chrome policy files direct from Google here.

NTFS performance

fsutil.exe usn deletejournal /D C:      (XP for SSD driver in particular, but less robust)

fsutil.exe behavior set DisableEncryption 1
fsutil.exe behavior set DisableLastAccess 1
fsutil.exe behavior set DisableCompression 1
fsutil.exe  behavior set MftZone 2
fsutil.exe  behavior set MemoryUsage 1
fsutil.exe  behavior set DisableDeleteNotify 0

fsutil.exe quota disable C:

fsutil.exe repair set C: 0x9

fsutil.exe resource setautoreset true C:\

chkdsk /L:16384 C:    (for smaller SSD disks, default is 65536 KB)

nic connection items
The Network tweaks

The network on Windows 7 is better than Windows XP SP3. But again a lot can be gained in performance. Try to find if you can use something from my registry tweaks below. (w2k_network_opt.regIt is also recommend to unbind the QoS Packet Scheduler and if possible Tcpip v6 from your nic.

Make sure you have Turned Off Windows Feature Remote Differential Compression too.

In the Network and Sharing Center you find Advanced Sharing Settings. Go there and unfold the Home and Work profile. Scroll down and select 40 bits encryption for File Sharing Connections instead of 128 bit. 

Scroll down to HomeGroup connections and select Use user accounts and passwords...

Advanced Sharing

I have also the Home networking disabled.


Disable DNS multicasting (LLMNR)

The LLMNR feature (ipv6?) keeps DNS multicasting to find other IP nodes on your subnet. Probably you won't need it. As you can see on the screenshot on the right it doesn't consume much bandwith but in general I don't like multicasts.

To disable use gpedit.msc or put it ion the registry manually :

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DnsClient]

Reboot needed.

40-plus percent throughput on 54G WLAN. Not bad with 4 out of 5 bars on the Wifi signal indicator.

Another network settings can be done on the global tcp or ip settings and heuristics with the netsh.exe command.

These settings are stored in the registry in:

<multiple values>


To reset the tcpip stack to default values:

reset winsock:     netsh winsock reset
reset ip/dhcp:      netsh int ip reset
reset tcp params: netsh int tcp reset

Get the status of these tcp: netsh int tcp show global

Receive-Side Scaling State          : enabled
Chimney Offload State               : disabled
NetDMA State                        : disabled <<< EnableTCPA 0 BIOS support Intel I/O Accel. Techn. (I/OAT)
Direct Cache Acess (DCA)            : disabled <<< EnableDca 0
Receive Window Auto-Tuning Level    : normal <<< EnableWsd 0 QualifyingDestinationThreshold ffffffff
Add-On Congestion Control Provider  : none
ECN Capability                      : disabled
RFC 1323 Timestamps                 : disabled <<< Tcp1323Opts 0 (set manually to 1 in TcpIp\Parameters)
Initial RTO                         : 3000

netsh interface tcp set global rss=enabled chimney=disabled netdma=disabled dca=disabled autotuninglevel=normal
netsh interface tcp set global congestionprovider=none ecncapability=disabled timestamps=disabled 
netsh interface tcp set global initialrto=3000

Heuristic tcp settings: netsh interface tcp show heuristics

Window Scaling heuristics         : enabled
Qualifying Destination Threshold  : 3
Profile type unknown              : normal
Profile type public               : normal
Profile type private              : normal
Profile type domain               : normal

netsh interface tcp set heuristics disabled
netsh interface tcp set heuristics wsh=enabled

Other ip releated settings: netsh int ip show global

General Global Parameters
Default Hop Limit                   : 64 hops
Neighbor Cache Limit                : 4096 entries per interface
Route Cache Limit                   : 128 entries per compartment
Reassembly Limit                    : 22365344 bytes
ICMP Redirects                      : enabled
Source Routing Behavior             : dontforward
Task Offload                        : enabled
Dhcp Media Sense                    : enabled
Media Sense Logging                 : disabled
MLD Level                           : all
MLD Version                         : version3
Multicast Forwarding                : disabled
Group Forwarded Fragments           : disabled
Randomize Identifiers               : enabled
Address Mask Reply                  : disabled

Current Global Statistics
Number of Compartments              : 1
Number of NL clients                : 7
Number of FL providers              : 4

netsh interface ip set global neighborcachelimit=4096     (def 256, increase the ARP cache size)
netsh interface ip set global defaultcurhoplimit=64          (max number of hops, read routers to endpoint)
netsh interface ip set global taskoffload=enabled mediasenseeventlog=disabled ...

Set the ARP cache life time in Vista+ (no registry entry for this)

netsh interface ipv4 show interfaces   -> get NIC interface number, e.g. 14    (ArpCacheLife reg value last present in XP/W2003)
netsh interface ipv4 set interface 14 basereachable=3600000  -> set life time to minimal 60/2=30 minutes

Disable network Memory Pressure Protection (enable DDOS defense only when this is internet server)

netsh int tcp set security mpp=disabled
netsh int tcp set security profiles=disabled

For 2012 R2 Hyper-V servers:

netsh int tcp set security mpp=disabled
netsh int tcp set security profiles=disabled
netsh int tcp set supplemental template=datacenter
netsh int tcp set global rss=enabled
netsh int tcp set global chimney=default
netsh int tcp set global netdma=default
netsh int tcp set global dca=default
netsh int tcp set global autotuninglevel=restricted
netsh int tcp set global ecncapability=default
netsh interface tcp set heuristics disabled
netsh interface tcp set heuristics wsh=enabled
netsh interface ip set global neighborcachelimit=4096 defaultcurhoplimit=64 taskoffload=enabled
reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\Ndis\Parameters /f /v RssBaseCpu /t REG_DWORD /d 0
reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\Ndis\Parameters /f /v MaxNumRssCpus /t REG_DWORD /d 8 

Other interesting settings per network adapter (Vista+): netsh interface ip show interface level=verbose

Idx     Met         MTU          State                Name
---  ----------  ----------  ------------  ---------------------------
  1          50  4294967295  connected     Loopback Pseudo-Interface 1
 11          25        1500  connected     Wireless Network Connection
 15          10        1500  connected     VirtualBox Host-Only Network

Show settings for specific interface: netsh interface ip show interface "Wireless Network Connection"

Interface Wireless Network Connection Parameters
IfLuid                             : wireless_0
IfIndex                            : 11
State                              : connected
Metric                             : 25
Link MTU                           : 1500 bytes
Reachable Time                     : 86000 ms
Base Reachable Time                : 60000 ms
Retransmission Interval            : 1000 ms
DAD Transmits                      : 3
Site Prefix Length                 : 64
Site Id                            : 1
Forwarding                         : disabled
Advertising                        : disabled
Neighbor Discovery                 : enabled
Neighbor Unreachability Detection  : enabled
Router Discovery                   : disabled
Managed Address Configuration      : enabled
Other Stateful Configuration       : enabled
Weak Host Sends                    : disabled
Weak Host Receives                 : disabled
Use Automatic Metric               : enabled
Ignore Default Routes              : disabled
Advertised Router Lifetime         : 1800 seconds
Advertise Default Route            : disabled
Current Hop Limit                  : 0
Force ARPND Wake up patterns       : disabled
Directed MAC Wake up patterns      : disabled

netsh interface ip set interface "Wireless Network Connection" basereachable=60000 metric=1000 mtu=1500 routerdiscovery=disabled ...

Other interesting tcpip registry values (win7+):

"AllowUnqualifiedQuery"=dword:00000001                # allow DNS query without domain name
"DefaultTTL"=dword:00000040                                  # 64 hops
"DisableMediaSenseEventLog"=dword:00000001       # no entry in eventlog of cable (dis-)connect
"DisableRss"=dword:00000000                                 # disable Receiver Side Scaling tcp windows
"DisableTaskOffload"=dword:00000000                    # disable task offloading to nic
"DisableTcpChimneyOffload"=dword:00000000        # disable chimney offload
"DnsOutstandingQueriesCount"=dword:000003e8    #
"DnsQueryTimeouts"=REG_MULTI_SZ:"1 1 2 2 4 0"    # don't wat too long for DNS server response
"EnableAddrMaskReply"=dword:00000000                # dont reply to subnet pings
"EnableBcastArpReply"=dword:00000000                  # dont reply to arp broadcast requests
"EnableConnectionRateLimiting"=dword:00000000    bypass the limitation on half open tcp
"EnableDca"=dword:00000000                                   # enable Direct Cache Access from nic to cpu
"EnableHeuristics"=dword:00000001                          # let windows tcp find optimum, works with Chimney offload
"EnableIPAutoConfigurationLimits"=dword:00000000 # no auto ip from microsoft
"EnableTCPA"=dword:00000000                                # enable Net DMA
"EnableWsd"=dword:00000000                                  # enable Windows Scaling Diagnostics, choppy flash video if enable!!!
"IPEnableRouter"=dword:00000000                            # don't discover routers
"QualifyingDestinationThreshold"=dword:ffffffff        # QOS no threshold
"StrictTimeWaitSeqCheck"=dword:00000001            # does activate TcpTimedWaitDelay (only from win8+?)
"SynAttackProtect"=dword:00000001                       # protect against syn flood (DOS) attacks
"Tcp1323Opts"=dword:00000001                            # windows scaling (1) and timestamps (2)
"TCPMaxDataRetransmissions"=dword:00000002   # limit the max nr of data retransmissions 
"TcpTimedWaitDelay"=dword:0000001e                  # wait 30 secs before closing inactive connection (StrictTimeWaitSeqCheck 1)

"TcpAckFrequency"=dword:00000001                      # def 2 outstanding ACKS. Use 5 for 100Mbit, 13 for 1Gbit network connection (1 beats timeouts Outlook)
"TcpDelAckTicks"=dword:00000000                        # Disable Nagling

"RssBaseCpu"=dword:00000001                             # start with CPU1 for RSS (to let CPU0 do other important things)
"MaxNumRssCpus"=dword:00000002                    # (4)  (2=server, 1=workstation) Receive Side Scaling to one CPU (all cores)

"FastCopyReceiveThreshold"=dword:000005dc       # UDP streaming threshold 1500 bytes/s
"FastSendDatagramThreshold"=dword:000005dc    # UDP streaming threshold 1500 bytes/s

With NDIS 6 NIC drivers you can enable TaskOffload via the registry too. 
Find the proper Nic key under:

"*SpeedDuplex"="0"                           # auto negotiate
"*FlowControl"="3"                            Rx & Tx Enabled
"*RSS"="1"                                         # Enabled
"*TCPConnectionOffloadIPv4"="1"    # Enabled
"*TCPConnectionOffloadIPv6"="1"    # Enabled
"*IPChecksumOffloadIPv4"="3"         # Rx & Tx Enabled
"*TCPChecksumOffloadIPv4"="3"      # Rx & Tx Enabled
"*TCPChecksumOffloadIPv6"="3"      # Rx & Tx Enabled
"*UDPChecksumOffloadIPv4"="3"      # Rx & Tx Enabled
"*UDPChecksumOffloadIPv6"="3"      # Rx & Tx Enabled
"*LsoV1IPv4"="1"                               # Enabled
"*LsoV2IPv4"="1"                               # Enabled
"*LsoV2IPv6"="1"                               # Enabled
"*TCPUDPChecksumOffloadIPv4"="3"    # Rx & Tx Enabled
"*TCPUDPChecksumOffloadIPv6"="3"    # Rx & Tx Enabled

Other settings affecting copying files with explorer over tcpip:
"CopyBufferSize"=dword:00010000   # x2000-x100000 else x40000 (64 KB)
"CopyFileBufferedSynchronousIo"=dword:00000001      # do it synchronous
"CopyFileChunkSize"=dword:00004000                         # copy 16KB blocks
"CopyFileOverlappedCount"=dword:00000010              #  ?, 16 (0x10) works best

Note: Large Scale Offload (LSO) is buggy on a lot of NIC's. You can disable it with these commands:
Win2k3:  reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v EnableTCPChimney  /t REG_DWORD /d 0
Vista+:   netsh.exe interface tcp set global chimney=disabled

Some handy WLAN netsh commands:
netsh.exe wlan show interfaces                         # speed and signal strength current connection
netsh.exe wlan show networks mode=Bssid     # show all networks and properties

Note1: You can do it the easy way with SG TCP Optimizer. More info op SpeedGuide.

Windows 7 - Create Wifi Hotspot / share your Wifi connection

Windows 7 has a builtin host function for Wifi. This is why the "Microsoft Virtual WiFi Miniport Adapter" will show when you have a wlan network card.
Enabling the host function is very simple.

Open elevated command prompt.

netsh.exe wlan set hostednetwork mode=allow ssid="myssid" key="password"
netsh.exe wlan start hostednetwork

Check status with: netsh.exe wlan show hostednetwork

When the host function in running you can share the Wifi. Select the Wifi adapter and right click and select Properties. Goto the Sharing tab and enable "Allow other network users..." Select the Microsoft Virtual Wifi Miniport as Home networking Connection.

Note: This will only work if you have the Firewall and ICS service running.

Windows 7 - Management Console Snapins

To speed up and revert back to old school mmc snapins we need to get rid of that task pane. I don't like it, it adds nothing. But that is easy solved.
Start regedit and take ownership and full permissions of the key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC then rename the key UseNewUI to UseNewUI.OFF
To disable the task pane on every snapin run the mmc_SuppressActionPane.cmd script.

Windows 7 - Explorer, no single row select and custom CMD bar
No FullRowSelect

On the image right you see the effect of disabling FullRowSelect. This is done in the user part of the registry. Also you see that the CMD bar is altered with other commands.

One advantage is that you have more space in the explorer window to right click.
 You can enable it by running the DisableFullRowSelect.reg file. Instructions are in the reg file.
Beside that I find it very convenient to add some commands to the CMD bar of explorer. These commands are folder type specific. By disabling FullRowSelect we have reset to the Generic folder.

Now we can customize the CMD bar with the
expl_cmdbar.reg file. You need to take ownership and full permissions of the registry key used in the file first.type. All possible command can be found in the registry. Use microsoft subinacl.exe like this:

subinacl.exe /subkey HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell /setowner=builtin\administrators

Windows 7 - Cleaning the Tree

Since Windows 95 we have PnP. Plugin in some hardware and the PnP system finds the driver in c:\windows\inf or from your local media, later even from Windows Update. The major flaw with this system up to today is that if hardware is removed it never asks the question "Should I remove the driver now too?". So after a few years you system is cluttered with old device drivers. This slows down your system a fraction. No real big deal but lets do some good housekeeping.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]

Now start the Device Manager and select from the View menu Show hidden devices.

You will also see things like Volume Shadow Copies.

Goto the top of the tree and press * (asterisk) on you numeric keypad. The tree unfolds. Now look for grayed devices. They are not on your system.
Press delete to remove them.
Don't do this for the "Sound, Video and Game controllers" or there must be some old sound board present.
In general you can do this for mouse(hid), keyboards, disks and disk controllers, usb, network, modems, etc.


In PnP language the main groups (e.g. Network Adapters) are classes with a corresponding ClassGUID. The Network Adapter Class has a GUID of  {4D36E972-E325-11CE-BFC1-08002BE10318}. See Plug and Play below.

You can also use a tool called Device Cleanup from Uwe Sieber. (read DeviceCleanup.txt in the zip)

Windows 7 - Plug and Play

It roughly works as follows:
  1. new device (e.g. network card) is inserted
  2. the PnP enumeration creates a new device here HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
  3. a driver is searched in c:\windows\inf\*.inf files  (or DevicePath, see below)
  4. if no match is found the user is prompted
  5. when the driver is installed it is registered at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class
  6. a network card is then registered at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}
  7. the default network protocols are bound
  8. for tcpip the adapter is registered at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces
  9. etc...
From point 6 it is different for every device class.

ps: the inf folder is pointed at by HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion DevicePath. You can use ; to point to separate multiple paths. In older versions of Windows it was possible to trigger a new PnP Device enumeration process with RunDll32.exe SysSetup.dll,UpdatePnpDeviceDrivers but the new SysSetup.dll doesn't provide that anymore.

You can add drivers to your system with pnputil.exe. For example: pnputil.exe -a a:\usbcam\USBCAM.INF

Windows 7 - Explorer sub directory names with dots bug

In some cases Explorer in Windows 7 shows multiple subfolders with dots in the name are truncated. VERY annoying and still not solved by Microsoft. 
After searching what is causing this I think I found the problem. Process Separation. 

I could only reproduce this if I had SeparateProcess in the registry at value 1. There are two places where you can set it:

HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\SeparateProcess dword 0x0
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\SeparateProcess dword 0x0

Another thing I noticed is that Explorer (when separated) is listed in the TaskMgr with different command line options:
%SystemRoot%\explorer.exe /factory,{75dff2b7-6936-4c06-a8bb-676a7b00b24b}    (CLSID_SeparateMultipleProcessExplorerHost)
%SystemRoot%\explorer.exe /factory,{ceff45ee-c862-41de-aee2-a022c81eda92}       (CLSID_SeparateSingleProcessExplorerHost)

If you see these then you have Process Separation on and likely run into the Explorer sub folder dot bug.

Solution that did not work but on the internet like here on microsoft:

Close all Explorer windows. On the taskbar you should see the Explorer icon. Hold Shift and Left click on it. Select properties.
Change the Shortcut Target from
%windir%\explorer.exe /n,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}

Or modify C:\Users\<username>\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows Explorer
and login in again.

Windows - Smb Drive Mapping Reconnect Timeout at Logon or with Explorer

One very annoying feature is the timeout in Windows Explorer before detecting that the Drive Mapping is no longer valid. The default timeout is 60 seconds and is not documented for windows anywhere. After searching the dll's and drivers in Windows 7 for strings I found ReconnectTimeout in the driver mrxsmb10.sys and mpr.dll
If your network connections must be restored after login set Restore to 1.

;### kill the long "restoring network connections" at logon (defer=ghosted connections)

"RestoreConnection"=dword:00000001 ; (0=no attempt, you must click it)
"RestoreTimeout"=dword:00000014      ; try for 20 seconds to reconnect at logon
"DeferConnection"=dword:00000001    ; Don't connect if credentials don't match?


;### network drive map timeout for ReconnectableServers (def is 60 sec)


"NetLinkTimeout"=dword:000003e8 ;7500 (now 1000 msec)

Note: if you have ReconnectableServers (REG_MULTI_SZ) listed in HKLM\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters explorer will always try to connect. If your network connection drops and you click on a network drive it will keep trying until the connection is online again.

You may also need to take a look at your "MyComputer" Namespaces in:


Disable SMB2 or SMB3 on Windows workstation

For some situations you might want to disable the SMB2 or SMB3 protocol. SMB2 adds new features to the SMB/CIFS network protocol that won't add anything if your other network devices, like older NAS, doesn't support them. Better switch the SMB2 off on your workstation.

sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi 
sc.exe config mrxsmb20 start= disabled
or even SMB3 in Windows 8
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
sc.exe config mrxsmb30 start= disabled

To enable them again add mrxsmb20 and mrxsmb30 back to the dependencies and set the start to auto (3) again.
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi 
sc.exe config mrxsmb20 start= demand

Disable SMB2 and SMB3 on Windows server

You can easily disable SMB2 and SMB3 using the registry.

Reg.exe Add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v SMB2 /t REG_DWORD /d 0 /f

After that done restart the server service.

Network Location Awareness and consequences

You know that the network icon in the system tray shows a Wifi or a Network cable icon. When a network card is powered on windows tries to determine on which kind of network you are. There are some consequences that can catch you off guard. 

A wrong NLA detections can set your Windows Firewall from Domain to Public which causes AD communication problems and long PC startup times! 

Extra registry settings for NLA service:


"CorpLocationProbeTimeout"=dword:0000001E    ; Setting it to short causes Firewall/AD problems due to wrong NLA Network location.

Tweaking CPU's and RAM

From experience I found that on 32 and 64 bit systems there is only little to gain from tweaking the kernel of Windows. But still some can be done to optimize and gain some more speed.

By default the Win32PrioritySeparation is set at 2. You can change it via the GUI for best foreground 0x26 (workstation) or best background 0x18 (server). You can set it manual like this:

;"Win32PrioritySeparation"=dword:00000018 ;server
"Win32PrioritySeparation"=dword:00000026  ;workstation, however I find 0x15 also a good working value

For memory management it is also possible to gain a little advantage over the default values set out of the box. See below for best settings:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"LargeSystemCache"=dword:00000000 ; 1 for server
"MapAllocationFragment"=dword:00020000 ; 128Kb, def 64Kb for sys over 1 Gb
"SystemCacheLimit"=dword:00000200 ; 512 Mb, set to 400 for 64bits > 4 Gb RAM
"SystemPages"=dword:00000000 ; let windows calculate

You might want to turn Prefetch and Superfetch functions off as well. To much that can go wrong with them and consuming too much memory.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters]
"EnablePrefetcher"=dword:00000002 ; only for booting

"Start"=dword:00000004 ; disable startup of the Superfetch service

ReadyBoost is also such a memory hog. Switch it off like this:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EMDMgmt]

"Start"=dword:00000000  ; Don't disable startup (4) of the ReadyBoost service, give you BSOD at boot time!

My memory tweaks for the Windows 7 OS you find below in the list (w2k_sess_mem_opt.reg

Windows CPU Core Parking

Since Windows Vista and newer (Windows 7, 2008, Windows 8 and 2012) Microsoft introduced a new power control method. One option that is not very well configured out of the box is CPU Core Parking. This means that CPU Cores are switched on and off by how much CPU you demand. (governor in Unix)
You may have noticed that even if you have 4 cores, running demanding programs use only half or even one of the CPU Cores available on your system.
There is a tool that can set the number of cores you can use on AC or Battery. It is called ParkControl.

But you can do it without the tool too and add a little more finesse to it for finetuning the CPU Core Parking. You can use PowerCfg.exe from windows itself for finetuning.

The Core Parking options in a Power Scheme are:
  • 0cc5b647-c1df-4637-891a-dec35c318583  (Processor performance core parking min cores)
  • 1299023c-bc28-4f0a-81ec-d3295a8d815d  (Processor performance core parking over utilization history decrease factor)
  • 2ddd5a84-5a71-437e-912a-db0b8c788732  (Processor performance core parking increase time)
  • 447235c7-6a8d-4cc0-8e24-9eaf70b96e2b  (Processor performance core parking parked performance state)
  • 5b33697b-e89d-4d38-aa46-9e7dfb7cd2f9  (Processor performance core parking affinity history threshold)
  • 71021b41-c749-4d21-be74-a00f335d582b  (Processor performance core parking decrease policy)
  • 8809c2d8-b155-42d4-bcda-0d345651b1db  (Processor performance core parking over utilization weighting)
  • 8f7b45e3-c393-480a-878c-f67ac3d07082  (Processor performance core parking affinity history decrease factor)
  • 943c8cb6-6f93-4227-ad87-e9a3feec08d1  (Processor performance core parking overutilization threshold)
  • 9ac18e92-aa3c-4e27-b307-01ae37307129  (Processor performance core parking over utilization history threshold)
  • a55612aa-f624-42c6-a443-7397d064c04f  (Processor performance core parking core override)
  • c7be0679-2817-4d69-9d02-519a537ed0c6  (Processor performance core parking increase policy)
  • df142941-20f3-4edf-9a4a-9c83d3d717d1  (Processor performance core parking increase threshold)
  • dfd10d17-d5eb-45dd-877a-9a34ddd15c82  (Processor performance core parking decrease time)
  • e70867f1-fa2f-4f4e-aea1-4d8a0ba23b20  (Processor performance core parking affinity weighting)
  • ea062031-0e34-4ff1-9b6d-eb1059334028  (Processor performance core parking max cores)
Check your current PowerScheme (Power saver,Balanced,High performance) settings with: powercfg /qh> c:\temp\powerscheme.txt

The default Power Schemes:
  • Power saver            a1841308-3541-4fab-bc81-f71556f20b4a   (scheme_max)
  • Balanced                 381b4222-f694-41f0-9685-ff5bb260df2e   (scheme_balanced)
  • High performance   8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c   (scheme_min)
Core Parking tweaks can be set using this command (here for ac only): 
powercfg -setacvalueindex scheme_current sub_processor 2ddd5a84-5a71-437e-912a-db0b8c788732 10
powercfg -setacvalueindex scheme_current sub_processor 447235c7-6a8d-4cc0-8e24-9eaf70b96e2b 2
powercfg -setacvalueindex scheme_current sub_processor 8809c2d8-b155-42d4-bcda-0d345651b1db 500
powercfg -setacvalueindex scheme_current sub_processor e70867f1-fa2f-4f4e-aea1-4d8a0ba23b20 500

To disable any CPU Core Parking (so all CPU cores always on):
powercfg -setacvalueindex scheme_current sub_processor 0cc5b647-c1df-4637-891a-dec35c318583 100

To enable CPU Throttle:
powercfg -setacvalueindex scheme_current sub_processor 3b04d4fd-1cc7-4f23-ab1c-d1337819c4bb 1

For battery you can also set it using: powercfg -setdcvalueindex scheme_current sub_processor .....

To activate the settings use: powercfg -setactive scheme_current

In the registry settings are stored here: HKLM\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c\54533251-82be-4824-96c1-47b60b740d00 where 54533251-82be-4824-96c1-47b60b740d00 is the "Processor Power management settings and configurations".

Note: a MS patch might set this registry entry hklm\system\currentcontrolset\power\CoreParkingDisabled to 1 (set it to 0)

Generate a Power Report

You can create a useful energy settings logfile in html. You can do that with the powercfg.exe -energy output: command.
Use -xml for Xml output. Default the logfile is stored at C:/Windows/System32/energy-report.html 

Add more options to the Power Options Advanced Settings
Loads of options

As we have seen with the CPU Core Parking there are many more options to configure using PowerCfg than via the Advanced Settings 

It is very easy to add all of them to the Dialog. You can switch them on via the registry Attributes value per setting.
in the Power Options Dialog.
Open the registry and go for example to the "Processor Power management settings and configurations":

For each setting you want to show in the Advanced Setting Dialog of Power Options you open each subkey and change the value Attributes from 1 to 0.
If Attributes value is not present the option will show by default.

@echo off

Title Make all PowerSettings visible...

Echo REGEDIT4 >%~dp0PowerSett_Attrib_Restore.reg
Echo. >>%~dp0PowerSett_Attrib_Restore.reg

For /f %%K in ('Reg.exe query HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings /s /v "Attributes"^|FindStr HKEY_') do (
Reg.exe add %%K /v Attributes /t REG_DWORD /d 0 /f
Echo [%%K] >> %~dp0PowerSett_Attrib_Restore.reg
Echo "Attributes"=dword:00000001 >> %~dp0PowerSett_Attrib_Restore.reg
Echo. >> %~dp0PowerSett_Attrib_Restore.reg

Now open from the Control Panel the Power Options, Change plan settings, Change advanced power settings. You will see plenty more options now.

Before you change anything do export the windows standard settings first for backup:

POWERCFG -EXPORT c:\temp\Power_saver.pow            a1841308-3541-4fab-bc81-f71556f20b4a
POWERCFG -EXPORT c:\temp\Balanced.pow                  381b4222-f694-41f0-9685-ff5bb260df2e
POWERCFG -EXPORT c:\temp\High_performance.pow   8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c

Export your power settings to a file:       POWERCFG -EXPORT c:\temp\HiPerf_PowerScheme.pow scheme_current
Import your power settings from a file:   POWERCFG -IMPORT c:\temp\HiPerf_PowerScheme.pow

I have done some work on the Performance Power Scheme that is now running on my laptop:
You can import it and try it. Instructions and all settings text file are inside the zip.

(ps: a good power scheme for windows 2003 and Xp is Win2k3_XP_Pwr_Scheme_Server_Balanced.reg - Readme inside)

Internet Explorer 9 - Speedup

To get more speed while browsing you you first of all need to install a adblocker as on my site described here. Furthermore IE has some nice hidden features that can speed up browsing dramatically. One of them is DNS prefetching like Chrome. I think this is still experimental but I have no problems with it:

DNSPreresolution dword 0x8
Use_Async_DNS string yes

What also helps is to enable the DNS cache:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
DnsCacheEnabled dword 0x1
DnsCacheEntries dword 0x200          (512 domains)
DnsCacheTimeout dword 0x15180    (one day)

And disable prebinding of IE addons:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main
EnablePreBinding dword 0x0

Force GPU to handle all IE 9 rendering:



And these policies may be handy:

DisableAddonLoadTimePerformanceNotifications dword 1
NoFirsttimeprompt dword 1

Disable Flash loading by default:

It will ask for allowance. Remove this key:
But then you need to set the NoFirsttimeprompt dword to 0. Else it won't ask you for allowance and load anyway.

If you want to remove this pluging from the "Run without permissions" addon list remove this registry key:

Download reg file here.

Windows Explorer - Total folder size in Quick Tip Balloon

(or HKCU)


Total Directory size column in Explorer (WIP)

Windows Explorer - Change current open folder icon to Blue Pin

In Windows folder trees (Explorer, Registry) it is hard to see what folder you are in. Icons for closed and open folders are the same.
Since Windows 95 it is possible to change the Shell Icons. Open the registry and add this key and value:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons]
4 is the icon for open folders

Log out and log in again to see the effect. (Or click start menu, then CTRL+SHIFT+Right click on clean area and "Exit Explorer". Press CTRL+SHIFT+ESC and in File > New Task and type explorer)

Windows Explorer - files in use solution

This setting is undocumented and use with care. Many found that files cannot be deleted in windows because they "are in use". No one knows what is causing thes e files to be in use and by what process. After some recompiling I found thet in comdlg32.dll, ExplorerFrame.dll and shell32.dll there was a setting called MaxWorkerThreadsPerScheduler which sounded interesting. 
After applying it in HKLM for 6 months now I never had the "file in use" problem anymore. Note that it is queried in HKCU first. The default value is 5.


Boot tracing and ReadyBoot logging

Windows 7 and up logs and traces every boot. This causes a lot of writes to the log files on the harddisk. With SSD you don't want that.

To disable boot tracing  you can disable it here:

Note: Take permissions first of HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Diagnostics\Performance




You can also disable all Performance Logging (not advised):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]
"Disable Performance Counters"=dword:00000001

To disable ReadyBoot logging you can use the Control Panel > Administrative Tools > Performance Monitor > Data Collector Sets > Startup Events Trace Settings and disable ReadyBoot and SQMLogger for example.

Limit or Share CPU on multi user servers

On Windows 2008+ terminal servers or Windows Vista+ workstations you can limit the CPU percentage for each user that works on that system.
There are two ways. Equal sharing with Microsoft Dynamic Fair Share Scheduling (DFSS) or hard limit a user with a percentage.

In the registry you can set DFSS here: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System
with dword EnableCpuQuota 0 or 1

To limit a certain user to a certain percentage of the available CPU power you can do the following in the registry.
Create a new key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System\S-1-5-21-381264..  (get the proper UID with wmic.exe PATH win32_userprofile)
Then create a new dword called CpuRateLimit and set it with the percentage you want from 1 to 100 (1-0x64).

Print server tweaks

; 0x20 normal  0x40 idle  0x80 high
; Fix Offline status printers due to snmp

Defrag your HDD/SSD

Old school hard drives are spinning plates with moving read heads. After using the hard disk a while holes in the stored data appear due to removing files.
The data on the disk needs to be realigned to get best performance. Frequently used files need to be on the center tracks of the plates. This process is called
Defragmenting/Defragging your hard disk. Windows takes care of this using the Task Scheduler.

These registry options make Defrag a little better:
REG.EXE ADD "HKLM\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction" /f /v "Enable" /t REG_SZ /d "Y"
REG.EXE ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout" /f /v "EnableAutoLayout" /t REG_DWORD /d 1

SSD disks don't need defragmenting since there is no read head or moving parts. But SSD memory cells have limited rewrite cycles. This is why memory cells that have deleted files will only be marked for deletion. Windows will not rewrite these until it runs out of space. To reuse these "marked for deletion" cells you must TRIM the SSD disk. Trimming makes these cells usable again per direct. Don't use TRIM every day!!!!

To enable TRIM in Windows Defrag use:
fsutil behavior set DisableDeleteNotify 0

If you use Defrag now on your SSD it will not defrag it but trim it.

Tweaking MultiMedia Class Scheduler Service (MMCSS)

This service will start/stop itself IF audio/video is used (or when starting Games).  It will reserve some CPU (default 20%) for other background tasks. You can reduce this to 10% to gain 10% more CPU for your gaming. Values lower than 10 will default to 10% (see c:\windows\system32\mmcss.dll)
The service will auto shutdown after IdleDetectionCycles if AlwaysOn is 0

Registry Entries:

REM ### Reserve 10% cpu for other procs with multimedia class scheduler running (def 20%) MMCSS will auto shutdown if no audio is used

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile]
"IdleDetectionCycles"=dword:1 ; like 5 minutes

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games]
"Background Only"="False"
"Clock Rate"=dword:00002710
"GPU Priority"=dword:00000014
"GPU Priority.ORG"=dword:00000008
"GPU Priority.VALUES"="0-31"
"SFIO Priority"="High"
"SFIO Priority.ORG"="Normal"
"SFIO Priority.VALUES"="Idle Low Normal High"
"Scheduling Category"="High"  ; -> Priority will be always 2 if this is High
"Scheduling Category.ORG"="Medium"
"Scheduling Category.VALUES"="Low Medium High"

A little more info from Microsoft here.

Tweaking Process Options

Tweaking the default PerfOtopns of a process may work around bottlenecks. I know that for instance VSS Shadow Copies might get deleted at boottime, loosing all your restore points, if other intensive HDD I/O operations take place during boot. To make sure VSS gets all the IO you can try this trick:

[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\VSSVC.exe\PerfOptions]

The parameters for this Process tweaking are:

0-3 (def 2)

PagePriority   1-5 (def 5)

CpuPriorityClass   1-6 (def 2)

WorkingSetLimitInKB   (def  1382)

Value Priority
0 Very Low
1 Low
2 Normal
3 High
4 Critical (*)

Value Priority
0 Idle
1 Very Low
2 Low
3 Background
4 Background
5 Normal
6 n.a.
7 n.a.


Value Priority
1 Idle
2 Normal
3 High
4 RealTime (n.a.)
5 Below Normal
6 Above Normal

* only for memory io

Process Hacker (free) is a good tool to view the settings in real time. More about priorities from Microsoft here.

Service Start values in the registry

Sometimes you need to disable or enable a service that is not listed in the Services dialogs. You can do that in the registry.
Search for that service under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services and change the start value to:

    Boot            0x0
    System        0x1
    Automatic   0X2
    Manual        0x3
    Disabled     0x4

Tweaking the Services

Big memory eaters are Desktop Window Manager (Aero etc) and Superfetch. If you are on 32 bits you probably don't want them. Set to disabled via the Services.msc or the sc.exe command.
You can disable even many more. Below you find the list of running and disabled services on my PC. I use WLAN and no Firewall or Internet Connection Sharing. I use an Asus laptop, so some services are related to OSD and special keys for Asus.

Removing Google Update

Google Update can be in the C:\Users\<user>\AppData\Local\Google\Update and/or the C:\Program Files\Google\Update folder.

First remove the Google Update Services if present. You can do this by running (elevated):

"C:\Program Files\Google\Update\GoogleUpdate.exe" /unregsvc
"C:\Program Files\Google\Update\GoogleUpdate.exe" /unregserver

Remove Google Update tasks from the Windows Task Scheduler.

Remove Google Update startup registry values from HKCU\Software\Microsoft\Windows\CurrentVersion\Run
and/or HKLM\Software\Microsoft\Windows\CurrentVersion\Run

Remove Google Update registry keys: HKCU\SOFTWARE\Google\Update and/or HKLM\SOFTWARE\Google\Update

Maybe this command work (it should): "C:\Program Files\Google\Update\GoogleUpdate.exe" /uninstall

else just remove the two folders: C:\Users\<user>\AppData\Local\Google\Update and/or C:\Program Files\Google\Update


Policies that prevent Google Update from doing anything:

"AutoUpdateCheckPeriodMinutes"=dword:00000000    ;don't check for updates
"InstallDefault"=dword:00000000                                 ;don't install anything
"UpdateDefault"=dword:00000000                                ;don't update anything
"Install{F69EABDD-A4BB-4555-BE7E-1EA5F59BBA24}"=dword:00000000   ; specific product, see HKLM\SOFTWARE\Google\Update\Clients or HKCU
"Update{F69EABDD-A4BB-4555-BE7E-1EA5F59BBA24}"=dword:00000000  ; specific product, see HKLM\SOFTWARE\Google\Update\Clients or HKCU

Speed Up your games fps

V-Sync is forced from Windows 7 and upwards. Games have their own routines. You can dramatically improve fps with this registry value (reboot needed)

"EnablePreemption"=dword:00000001 ; WIN8+ def 1
"VsyncIdleTimeout"=dword:00000000 ; def 10

reg.exe add HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Scheduler /v VsyncIdleTimeout /t reg_dword /d 0 /f
Apr 19, 2014, 3:22 PM
Jul 8, 2015, 4:45 AM
Feb 14, 2014, 8:23 AM
Feb 15, 2013, 4:22 AM
Jun 30, 2014, 2:36 PM
Apr 7, 2013, 2:52 PM
Apr 19, 2014, 3:22 PM
Nov 5, 2014, 2:46 PM
Dec 6, 2013, 5:34 AM
Apr 19, 2014, 3:23 PM
Feb 4, 2013, 1:20 PM
May 14, 2015, 2:42 PM
Feb 4, 2013, 1:21 PM
Apr 8, 2013, 4:32 AM
Feb 4, 2013, 1:21 PM
Feb 4, 2013, 1:21 PM
Sep 14, 2014, 11:12 AM
Jun 17, 2014, 2:44 AM
Mar 1, 2014, 3:05 PM
Dec 6, 2013, 5:35 AM
Dec 6, 2013, 5:33 AM
Jun 12, 2014, 4:42 AM
May 16, 2015, 2:24 PM
Apr 22, 2014, 2:22 PM
Apr 23, 2013, 4:40 PM
May 13, 2015, 4:19 AM
Feb 4, 2013, 1:23 PM
Apr 19, 2014, 3:14 PM
Notepad in RightClick.reg
Dec 6, 2013, 5:35 AM
May 14, 2014, 9:04 AM
Feb 12, 2014, 3:27 AM
Apr 7, 2013, 2:49 PM
Dec 6, 2013, 5:40 AM
Dec 6, 2013, 5:32 AM
Apr 22, 2014, 2:21 PM
May 14, 2014, 9:03 AM
Mar 4, 2013, 12:51 PM
May 12, 2015, 4:39 PM
Jan 13, 2014, 11:42 AM
May 12, 2015, 4:39 PM
Apr 3, 2013, 12:52 PM
Jan 7, 2014, 2:48 PM
Apr 22, 2014, 2:20 PM
May 14, 2014, 9:04 AM
Feb 5, 2013, 12:34 PM
Apr 19, 2014, 3:18 PM
Oct 14, 2014, 12:46 PM
May 15, 2014, 4:41 PM
Dec 6, 2013, 5:34 AM
Dec 6, 2013, 5:34 AM
Apr 19, 2014, 3:16 PM
May 12, 2015, 4:39 PM
May 14, 2015, 3:07 PM
May 10, 2015, 2:40 PM
May 14, 2015, 2:53 PM
Jun 15, 2015, 1:36 PM
Apr 19, 2014, 3:13 PM
Dec 6, 2013, 5:41 AM
Apr 19, 2014, 3:28 PM
Apr 22, 2014, 2:20 PM
Apr 8, 2013, 2:22 PM
Apr 8, 2013, 4:31 AM
Apr 19, 2014, 3:14 PM
Apr 7, 2013, 2:52 PM
May 29, 2015, 4:19 PM
Dec 6, 2013, 5:41 AM
Jun 21, 2014, 8:00 AM
Oct 14, 2014, 12:46 PM
Dec 6, 2013, 5:34 AM
Jan 9, 2014, 12:16 PM
Feb 4, 2013, 1:41 PM
May 26, 2014, 3:44 PM
May 27, 2014, 7:25 AM
Jan 9, 2014, 8:56 AM
windows 7 network performance tweaks.txt
Apr 9, 2013, 1:38 AM
Nov 5, 2014, 8:04 AM
Apr 19, 2014, 3:17 PM