Jump to content

Restoring Manage Wireless Networks GUI on Windows 8+


UCyborg

Recommended Posts

Remember the good old Manage Wireless Networks GUI from Windows 7, allowing users full control over wireless connections? Reordering connections and ability to access properties of ANY wireless connection, not just the one to which computer is currenty connected to, is impossible on Windows 8+ via GUI.

After a little digging, I discovered these systems still reference the file where Manage Wireless Networks GUI is implemented. However, wlanpref.dll, where functionality is supposed to be, is crippled, invoking the GUI doesn't do anything. By replacing the file with the one from Windows 7, the GUI can be brought back.

For this quick guide, I'm going to assume the reader has access to Windows 7 installation (or install media, the files are in sources\install.wim, 7-Zip can read it), which bitness and installed GUI language(s) (language packs) matches the system he/she is going to patch and knows how to replace system files by taking ownership and giving self write access to the file.

At minimum, the following files need to be taken from Windows 7 install:

C:\Windows\System32\wlanpref.dll
C:\Windows\System32\en-US\wlanpref.dll.mui

IMPORTANT: The path of the second file depends on the primary GUI language of your operating system, so en-US may need to be replaced with some other language. If any language pack is installed, wlanpref.dll.mui files for these languages are also required for everything to work properly.

Once all files are acquired, they can be copied to the target system. To be able to replace them, one must take ownership of each file and give their user group (Users) write permission. I took care of this manually in file properties dialog on Security tab and restored original permissions and ownership afterwards. Some of you probably added option to shell context menu to take ownership and give yourself permissions with one click.

This doesn't restore hyperlink to the GUI in Control Panel->Network and Sharing Center, but the GUI can be invoked running the following command:

explorer.exe shell:::{1FA9085F-25A2-489B-85D4-86326EEDCD87}

For convenience, make a shortcut somewhere accessible, specifying above command as the target.

Here's the final result:

https://imgur.com/a/jRJNm

On Windows 8.1, wlanpref.dll hasn't been touched since 2014, on Windows 10, it's probably replaced with every new build, so perhaps writing a script that backups and replaces the files on will might be a good idea. I'm surprised just throwing in Windows 7's DLL worked so flawlessly in this case. Windows 7 also has hyperlink to export wireless profile in connection properties dialog, this is under control of some other component I suppose. The only thing I wasn't able to test is creating ad hoc network since my WiFi adapter doesn't support that functionality.

Edited by UCyborg
Link to comment
Share on other sites


That's a nice discovery! Up until now I was adding the CLSID to the Classic Shell Start Menu: http://winaero.com/blog/how-to-manage-wireless-networks-in-windows-8-1-and-windows-8-using-classic-shell/ It didn't open the actual folder in Explorer but its contents are accessible from the flyout menu and all the relevant context menu commands too although after doing "Move up" and "Move down", we have no idea of the actual priority of the wi-fi profile because unlike the Explorer folder, the cascading menu doesn't move them up or down - but you can drag and drop them.

A working Explorer folder for Manage Wireless Networks is a great solution. Only I wish it didn't require replacing system files because SFC /scannow or DISM /restorehealth might also restore the originals.

Edited by xpclient
Link to comment
Share on other sites

Interesting, so the original wlanpref.dll does partially work. It might be possible to just add the Windows 7 DLL, eg. renaming both the DLL and MUI file to wlanpref2, then changing, or preferably, adding new reference in registry with a different GUID (using original GUID and just changing the last number might be enough). The former variant seems to work, have yet to try the latter. There is a catch, TrustedInstaller is the only user that can change that part of registry.

On 5. 7. 2017 at 11:46 AM, xpclient said:

Only I wish it didn't require replacing system files because SFC /scannow or DISM /restorehealth might also restore the originals.

I can confirm this is actually possible, no replacing existing files or changing any existing registry entries required. Take the needed files from Windows 7 install and name them wlanpref2.dll and wlanpref2.dll.mui.

Open wlanpref2.dll with some hex editor and find the following byte sequence:

86 32 6E ED CD 87

Replace it with:

86 32 6E ED CD 88

Only the last byte differs, the sequence is last part of the GUID. The files can now be copied to appropriate folders on the target system.

The last step is putting correct registry entries in place. I'm attaching wlanpref2.reg which can be used to import needed entries. To be able to use it, regedit must be run as TrustedInstaller. To do that, I used Process Hacker with TrustedInstaller Plugin.

The GUI can now be invoked with:

explorer.exe shell:::{1FA9085F-25A2-489B-85D4-86326EEDCD88}
Edited by UCyborg
Link to comment
Share on other sites

Yep that does it. :D Just shell:::{1FA9085F-25A2-489B-85D4-86326EEDCD88} also works from Run dialog (and doesn't leave a stray Explorer.exe process running). By the way, have you managed to revive the Network Map feature of Windows 7 this way? :) 

Link to comment
Share on other sites

3 hours ago, xpclient said:

Just shell:::{1FA9085F-25A2-489B-85D4-86326EEDCD88} also works from Run dialog (and doesn't leave a stray Explorer.exe process running).

It also opens faster that way. By default, when you add explorer.exe, the new process should terminate right away, unless the setting to open folder windows in separate process is enabled in Folder Options. I did notice in the past that after some usage, the explorer.exe process hosting windows doesn't terminate, even long after all windows have been closed.

3 hours ago, xpclient said:

By the way, have you managed to revive the Network Map feature of Windows 7 this way? :)

Nope, that would be a good challenge though. netcenter.dll hosts the whole Network and Sharing Center. As with wlanpref.dll, the DLL is smaller on Windows 8+, but Windows 7 version has some extra dependencies. I don't know how to decipher Dependency Walker output to be able to tell what exactly is missing.

Edited by UCyborg
Link to comment
Share on other sites

  • 3 weeks later...

Updated wlanpref2.reg to add a shortcut to the Control Panel under Network and Internet. Can also be invoked with:

control.exe /name Microsoft.ManageWirelessNetworks
Edited by UCyborg
Link to comment
Share on other sites

  • 1 month later...

Great post. I followed all of the instructions to a T. I see the shortcut in control panel, but clicking on it does nothing, and neither does running either of the listed commands. Any suggestions for me? Running Windows 10 build 15063 (which might be the issue... I noticed you are running Windows 8.1). I had to download the relevant files from the internet, I don't have access to a windows 7 installation currently.

Edited by thepianoman
Link to comment
Share on other sites

Do you have Windows 7 installation DVD laying around or the ISO file? The files can be found in sources\install.wim. 7-Zip can read it. I know if you got 32-bit DLL on 64-bit system or haven't made corrections in the DLL with the hex editor, the result is non-working shortcut in Control Panel. I did test this on updated Windows 10 Build 15063, so that's not an issue.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...