Tuesday, May 31, 2016

Uninstall .NET Framework 4.6.1 if you are installing older Microsoft Products - Exchange - SharePoint - Office Web Apps

I got into a bit of a freak out the other day.

I wanted to install SharePoint 2013 on a new server, but I couldn't because of .NET incompatibility. After some research I found that the problem was the same one that I had earlier had to unravel for my Exchange Server. It seems that unfortunately, the .NET Framework 4.6.1 is not compatible with many relatively recent Microsoft server products. If you are building images you'll want to make sure that you include images that do not include this component as it is not supported and may block new installations of products like these:

  • Exchange 2013, 2015
  • SharePoint 2013
  • Office Web Apps Server 2013
  • Skype for Business Server 2015

Block it before it gets there!

You want to stick with .NET 4.5.2, so here's how to prevent the installation of 4.6.1

Method 1:
  1. Back up the registry. (duh)
  2. Type regedit in the Start Search box, and then press Enter to open the registry editor
  3. Locate and click the following subkey:
    HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP
  4. After you select this subkey, point to New on the Edit menu, and then click Key.
  5. Type WU, and then press Enter.
  6. Right-click WU, point to New, and then click DWORD Value.
  7. Type BlockNetFramework461, and then press Enter.
  8. Right-click BlockNetFramework461, and then click Modify.
  9. In the Value data box, type 1, and then click OK.
  10. On the File menu, click Exit to exit Registry Editor
Method 2:
  1. Back up the registry
  2. Instead of doing steps 2-10, create a text file with the following contents
    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\WU]
  3. Save the file as "BlockNETF461.reg" (remember adding quotes stops the .txt extension)
  4. Execute this file on any machine to block the installation until such time as you are ready for it.
Method 3:
  1. Configure group policy preferences in an Active Directory managed environment. If you're not familiar with this tool, check out this article where I show you how to manage mouse sizes with GPO preferences: http://majorbacon.blogspot.com/2016/04/customizing-your-mouse-cursor-using.html 
  2. In the GPO Management Console create a new GPO and link it to your OU of servers that you wish to prevent the installation of the .NET Framework 4.6.1
  3. Right click and Edit the GPO
  4. Expand the Computer -> Preferences -> Windows Settings -> Registry
  5. Right click and choose New Registry Item
    1. Change the Action to Create
    2. Enter the Key Path of SOFTWARE\Microsoft\NET Framework Setup\NDP\WU
    3. Enter a Value Name of BlockNetFramework461
    4. Select a Value Type of Reg_DWORD
    5. Enter the Value Data of 1
  6. Click OK and close the Group Policy Editor and Management Consoles. After the next group policy update on the affected servers the .NET framework will be blocked

But wait! .NET 4.6.1 is already installed!

If the .NET 4.6.1 update is already installed and you have not yet installed a server product (perhaps it is already in a baseline image) then you simply need to uninstall the update and run the repair tool

  1. First download the .NET framework verification utility from here: http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx
  2. Run the tool and use the drop down box to confirm that .NET Framework 4.6.1 is listed. (The tool shows all the versions of .NET that are installed.)
  3. Close the verification utility.
  4. Go to the add/remove programs control panel
  5. Select view installed updates (lefthand pane)
  6. find the entry for the dreaded KB3102467.
  7. Select and Uninstall the update.
  8. Reboot when prompted.
  9. Run the tool and use the drop down box to confirm that .NET Framework 4.6.1 is no longer listed. Verify that it is showing 4.5.2.  
  10. Repair the .NET 4.5.2 installation by downloading the offline installer, running setup and choose repair
  11. Reboot when setup is complete.
  12. Apply the following Security updates for .NET 4.5.2 from Windows update
    1. KB3122654 
    2. KB3127226
    3. Remember, Do NOT select KB3102467!!!!
  13. Reboot after installation.

But wait! .NET 4.6.1 is already installed AND I've already installed Exchange or SharePoint or Skype Server!

Don't Panic! The above steps still apply with just a few caveats

  1. Ensure you have rebooted since the installation of .NET 4.6.1 so that further management can occur.
  2. Stop all running services related to your product.
    For example, in Exchange using the Exchange Management Shell
    (Test-ServiceHealth).ServicesRunning | %{Stop-Service $_ -Force}
  3. Perform the steps listed above to remove the offending update KB3102467
  4. Unfortunately, Many services must recompile all of their NET assemblies, a long and CPU taxing process. To alleviate this burden, the folks at the .NET Blog have provided a speedup script to allow mscorswv.exe to use multiple threads and up to 6 cores. 
  5. Save the 7318.DrainNGenQueue.wsf script to the computer's desktop and execute it locally from the administrative command prompt using
    cscript <path>\7318.drainngenqueue.wsf

Is this forever?

Of course not. Eventually you will be using products that are compliant with .NET 4.6.1 because you are working with the next generation product or because Microsoft has updated the previous generation product to be supported by .NET 4.6.1. Then you can remove the GPO preference or reg hack and allow your systems to update normally.


Denial Craig said...

Great to gain knowledge about office.com setup

Rajapriya R said...

useful blog to read.. thanks for sharing

best dot net training in chennai | best dot net training institute | best dot net training institute in chennai | asp dot net training in chennai

Vasanth said...


its not removed the .Net4.6, 4.6.1 and 4.6.2 when followed your steps .. can you please help me

OS : Windows server 2012 R2

Paul Miller said...

talented professionals all over the world. Training on .net technology will ensure good salary package. Best DOT NET Training in Chennai | .NET Course in Chennai

Tina Kenard said...

Thanks Admin for sharing such a useful post, I hope it’s useful to many individuals for whose looking this precious information to developing their skill.
PHP Course in Chennai|PHP Training Chennai|web designing training in chennai

Inwizards Incorporation said...

very nice blogs!!! i have to learning for lot of information for this sites...Sharing for wonderful information about the web design and web development.Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing.
Hire .Net Developers India

It Guru said...

Thanks for writing this in-depth post. You covered every angle. The great thing is you can reference different parts.

Dot Net Online Training Hyderabad

kim john said...

I was very much confused what to do next in my career, but after going through this article I got a clear version of undergoing DOT NET Training Institute in Chennai.

Andria BZ said...

Thanks for your informative post!!! After completing my graduation, i am confused whether to choose web design as my career. Your article helped me to make a right choice. PHP Training in Chennai

mary Brown said...

Hi, Great.. Tutorial is just awesome..It is really helpful for a newbie like me.. I am a regular follower of your blog. Really very informative post you shared here. Kindly keep blogging. If anyone wants to become a .Net developer learn from Dot Net Training in Chennai. or learn thru ASP.NET Essential Training Online . Nowadays Dot Net has tons of job opportunities on various vertical industry.
or Javascript Training in Chennai. Nowadays JavaScript has tons of job opportunities on various vertical industry.

soukya reddy said...

This is very nice blog,and it is helps for student's.Thanks for info
.Net Online course

owen morris said...

Needed to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here.

Devops Training in Chennai

ais a said...

I simply wanted to write down a quick word to say thanks to you for those wonderful tips and hints you are showing on this site.
Best selenium training Institute in chennai