Showing posts with label Group Policy Preferences. Show all posts
Showing posts with label Group Policy Preferences. Show all posts

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]
    "BlockNetFramework461"=dword:00000001
  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.




Thursday, April 21, 2016

Customizing your Mouse Cursor Using Group Policy Preferences

When helping the young, the old, or the visually impaired, it may be important to make sure that your users start off with a larger cursor. In an Windows Active Directory environment this can be done using Group Policy, but in the past required configuration of the registry using some sort of logon script. Many scripts can now be replaced by the use of Group Policy Preferences, which makes the whole process much easier!

You can watch me set this up step by step on video here: https://youtu.be/WjdKPtog5QY

Or here's how to do it step by step:


1) Configure your mouse cursor settings using the control panel on a test machine

We're going to suck these settings out of the test machine and into Group Policy Preferences!

2) Open the Group Policy Management Console on a domain controller or a workstation where the RSAT tools for AD have been installed and create or edit a Group Policy is linked to the right OU to affect the desired users (or link it to the domain to affect all users)
Remember to link your GPO to the right node in AD

3) Navigate to the User -> Preferences Section -> Windows Settings -> Registry
Cursors are user settings, and there are no administrative templates in policy to configure this for us - so we go to GPO preferences!

4) Right Click and choose Registry Wizard
Registry Item = one setting by hand, Registry Wizard is a vacuum cleaner for preconfigured settings!

5) Select Local if you modified the Mouse Cursor settings on the local machine or choose the remote machine that you want to connect to (firewall settings must allow this)
Select the machine that has already been configured as your template

6) Expand HKey_Current_User Tree ->_ Expand the Control Panel Key -> Expand the Cursors Key
This is the tricky part - you have to know where to go in the registry!

7) Select all of the Values in the lower half and click Finish
Select all of the named values at the bottom to capture all cursor settings


8) You can expand out the registry key directory and see the key settings.

Each registry item is its own setting - and you didn't have to manually configure any of them!


9) These Group Policy Preference settings do not prevent users from changing their cursor, but it does reapply the registry settings at each logon - unless you tell it not to. To do that, open the properties of each setting and switch to the "common" tab and add the check mark to "Apply once and do not reapply"
GPO Preference Setting Dialog Box to change "stickiness"

10) Log off and log back on as an affected user to experience the new setting!


Original Size



Log Off

Log On - and notice the GPO Preference being applied!


Big fat juicy cursor, just they way I like it!
So... that's how you get your funky mouse cursor settings into Group Policy Preferences... but be creative! What other registry settings are tied to users or computers that you currently have to bake into an image (which get corrupted) or have to manually configure? Take advantage of this easy to use tool!

Remember, it's your job to "point" the way!