Unfortunately .Net 4.6.1 isn’t being automatically pushed out via Windows Updates to Windows 7 machines meaning we need to find an efficient and reliable way of doing this ourselves.

I chose the tool group policy (GPO) as it meant I could control it by user (thus department or organisational unit (OU)), and in a reasonably discrete manner.

Just tell me how

Create the installer
Create a shared folder on the network
Add the user “Everyone” to the folder’s security with read access
Add the .Net 4.6.1 web installer (https://www.microsoft.com/en-gb/download/details.aspx?id=49981)
Create a batch file with the following contents, amending the file location accordingly

echo off
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.6.1" 2>nul
if errorlevel 1 (
echo .NET Framework 4.6.1 is NOT installed
"\\installer_path\NDP461-KB3102438-Web.exe"
) else ( echo .NET Framework 4.6.1 is installed )

Create the deployment

Open group policy management (gpmc.msc) on an appropriate machine, eg your DC.
Navigate to your desired OU, or OU parent policy
Edit the policy
Navigate to User Configuration > Policies > Windows Settings > Scripts and open Logon
Add the batch file path
Click ok, and close the GPO editor

Debugging

Reboot a target machine and user
Log in as the target user
Run rsop.msc
Navigate to User Configuration > Windows Settings > Scripts > Logon
Your desired command should be listed, and show a last executed time
If the script, or a parent shows a warning, go to CMD and execute gpresult /h c:\gpreport.html /f and use this to diagnose the failure