Alternative Method for Disabling DWM in Windows 10
Jan 20, 2017 6:09:49 GMT -8
Post by Aesthetic Classic on Jan 20, 2017 6:09:49 GMT -8
This is broken in Windows version 1703 and later. Do not bother trying this on your host machine as it may freeze your system!
Here's a bunch of batch scripts I quickly created since I couldn't find anything for Windows 10 and I kinda got tired of manually switching the dwm.exe executable with the dummy placeholder because of UAC prompts and don't want to have to keep switching UAC off and on. It is based upon other DWM killing related stuff I've seen laying around.
Here's the main parts of what's included:
The Windows.UI.Logon.dll is NOT renamed as it may automatically be restored by a Windows Update which may restart you into a black screen of nothingness, so the Registry method is much better in this case.
Just note that a lot of things will break (similiar to having ClassicTheme.exe running, but a bit more broken than that) which may affect your ability to use Windows. Try it in a Virtual Machine first if you're not sure about the consequences.
Do NOT use this if you have a touch screen Windows device with no option to connect a physical keyboard and mouse.
You can check the source yourself if my explanations aren't very good enough about what these batch scripts do and you can use the .reg files to restore the default configuration if you want to.
PsTools from SysInternals is required in order to temporarily suspend the winlogon.exe process, specifically pssuspend.exe.
Place it in the System32 folder, or in the same directory as the DWM Force Switch folder.
Okay, this preview and formatting is a bit annoying, RIP.
Edit: So I think I may have triggered Chrome's malware detection feature (possibly due to the batch files and/or dummy dwm?).
Edit 2: Replaced the placeholder file with an executable that just exits itself without outputting any text, saving a few kilobytes rather than that one that prints out text saying it's a dummy file.
Another Edit: The scripts now make a copy of rundll32.exe straight from the System32 directory to use as a placeholder rather than using those converted batch files as a placeholder which can sometimes be detected as a malware by some software (which ends up breaking if you are logged out or reboot when no placeholder file is in place because it got removed). Thanks 6sicsix for pointing out that the rundll32 file can be used instead!
Also, there's some Registry tweaks in there that I added from before to switch off some Immersive features so they work without DWM just to make it less of a pain to search for those Registry tweaks.
Here's the raw texts for them:
Here's a bunch of batch scripts I quickly created since I couldn't find anything for Windows 10 and I kinda got tired of manually switching the dwm.exe executable with the dummy placeholder because of UAC prompts and don't want to have to keep switching UAC off and on. It is based upon other DWM killing related stuff I've seen laying around.
Here's the main parts of what's included:
- Desktop Window Manager - Force Disable.bat - Replaces current dwm.exe with the dummy executable and enables Console Mode and also re-enables the legacy non-Immersive UAC prompt as it doesn't work with DWM off.
- Desktop Window Manager - Restore DWM.bat - Restores the dwm_original.exe file from the script's DWM directory into the System32 directory.
- Desktop Window Manager - Test - No DWM for Session.bat - Replaces the dwm executable with the dummy executable and resumes the winlogon process then restores the original dwm executable into the System32 directory after 1 second. Its functionality is similiar to R.O.B's KillDWM.bat (which doesn't even work in Windows 10, and breaks if you use it twice, leaving with a black screen of nothingness), but this is a bit more tedious and more likely to break. Console Mode is left on as it seems more stable than restoring the GUI Logon screen in the Registry, you can edit the script if you want to allow it to set ConsoleMode back to 0. Logging out and logging back in should restore the DWM and its Immersive features.
- Backup DWM Executable Command.bat - Copies current DWM executable from the System32 into the DWM folder in the script's directory as dwm_original.exe. It also creates a copy in the System32 folder as dwm.exe.BAK as it makes it easier to restore from the Windows Recovery partition if anything breaks. This is also done in the Force Disable and No DWM for Session batch scripts.
- Registry files: Registry files to restore the GUI Login screen and Immersive UAC Prompt registry values manually.
The Windows.UI.Logon.dll is NOT renamed as it may automatically be restored by a Windows Update which may restart you into a black screen of nothingness, so the Registry method is much better in this case.
Just note that a lot of things will break (similiar to having ClassicTheme.exe running, but a bit more broken than that) which may affect your ability to use Windows. Try it in a Virtual Machine first if you're not sure about the consequences.
Do NOT use this if you have a touch screen Windows device with no option to connect a physical keyboard and mouse.
You can check the source yourself if my explanations aren't very good enough about what these batch scripts do and you can use the .reg files to restore the default configuration if you want to.
PsTools from SysInternals is required in order to temporarily suspend the winlogon.exe process, specifically pssuspend.exe.
Place it in the System32 folder, or in the same directory as the DWM Force Switch folder.
File: DWM.ForceSwitch.zip (16.04 KB) Uses existing rundll32.exe file as a placeholder instead (also takes less space on download!)
CRC-32: bdd444bd
MD4: 1141ae78ca1e73d7ec9284db6bfff372
MD5: 70e9d176ad8253314a4e49bd67f2ba35
SHA-1: 6f5ca88a30871b904718271891fa90ae6bf704fb
CRC-32: bdd444bd
MD4: 1141ae78ca1e73d7ec9284db6bfff372
MD5: 70e9d176ad8253314a4e49bd67f2ba35
SHA-1: 6f5ca88a30871b904718271891fa90ae6bf704fb
File: Desktop Window Manager Force Switch.zip (43.51 KB) Previous Version, left here for reference
CRC-32: c9c481bd
MD4: a2b67e24038337a7fcdcfcf4a68d7f4e
MD5: 10a2d4b36c37898905c5ff8ca680ca4c
SHA-1: 091cfebf5d93a04d6ca81435837140e9d2d653e9
CRC-32: c9c481bd
MD4: a2b67e24038337a7fcdcfcf4a68d7f4e
MD5: 10a2d4b36c37898905c5ff8ca680ca4c
SHA-1: 091cfebf5d93a04d6ca81435837140e9d2d653e9
Okay, this preview and formatting is a bit annoying, RIP.
Edit: So I think I may have triggered Chrome's malware detection feature (possibly due to the batch files and/or dummy dwm?).
Edit 2: Replaced the placeholder file with an executable that just exits itself without outputting any text, saving a few kilobytes rather than that one that prints out text saying it's a dummy file.
Another Edit: The scripts now make a copy of rundll32.exe straight from the System32 directory to use as a placeholder rather than using those converted batch files as a placeholder which can sometimes be detected as a malware by some software (which ends up breaking if you are logged out or reboot when no placeholder file is in place because it got removed). Thanks 6sicsix for pointing out that the rundll32 file can be used instead!
Also, there's some Registry tweaks in there that I added from before to switch off some Immersive features so they work without DWM just to make it less of a pain to search for those Registry tweaks.