Cannot install Windows SDK 7.1 on Windows 10

Great answer by Dougg3 above. Just so it helps others, I went through the process and took some screen shots in case it helps anybody. I do have 64 bit Windows 10.

This is the reg edit file path that Dougg referenced. Ths Here click on Advanced button

enter image description here

Where it says Owner on the top click the Change link enter image description here

The next image has two steps - first click on Advanced from "Select User or Group" then click on Find Now button on next dialogue which has the same title. enter image description here

Find the user you want to change owner to then click ok enter image description here

Click ok on the next page

enter image description here

Go to your user you just selected on previous dialogues then select Allow Full Control, then click OK enter image description here

Now you're able to edit the version. enter image description here

After you're finished with this revert the version number to what it was before and undo giving yourself the Full Control for that registry.


@dougg3's answer scripted:

First install SubInAcl,can be downloaded from Microsoft here. You may need to add it to your PATH, ex: set PATH=%PATH%;C:\Program Files (x86)\Windows Resource Kits\Tools

Then run these commands in an elevated cmd prompt:

for /f "tokens=2*" %%a in ('reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client" /v Version /reg:32') do set "CurrentNDPv4ClientVersion=%%~b"
for /f "tokens=2*" %%a in ('reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full" /v Version /reg:32') do set "CurrentNDPv4FullVersion=%%~b"
subinacl.exe /subkeyreg "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4" /setowner="%username%"
subinacl.exe /subkeyreg "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4" /grant="%username%"=f
reg ADD "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full" /v Version /t REG_SZ /d 4.0.30319 /reg:32 /f
reg ADD "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client" /v Version /t REG_SZ /d 4.0.30319 /reg:32 /f

echo start your installer now
pause

reg ADD "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client" /v Version /t REG_SZ /d %CurrentNDPv4ClientVersion% /reg:32 /f
reg ADD "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full" /v Version /t REG_SZ /d %CurrentNDPv4FullVersion% /reg:32 /f

subinacl.exe /subkeyreg "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4" /revoke="%username%"
subinacl.exe /subkeyreg "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4" /setowner="NT SERVICE\TrustedInstaller"

I stumbled across another workaround, which I've also posted on a msdn thread:

  1. Uninstall any Visual C++ 2010 Redistributables from the control panel first.

  2. Download the corresponding offline ISO image from the Windows SDK archive. This lists which ISO is which.

  3. After mounting the image, open F:\Setup\SDKSetup.exe directly.


I just ran into this same problem. No idea how safe this actually is to do, but I was able to work around it by temporarily fooling the installer into thinking I had a different version of .NET 4.0 installed. I opened Process Monitor and used it to monitor everything that setup.exe was doing in order to find out how it was determining that I had a "pre-release" version of .NET 4.0.

It turns out that it looks at these two strings in the registry:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Client\Version
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full\Version

On my Windows 10 machine, these currently are both 4.6.00079. The installer doesn't seem to like this value. I temporarily replaced both of them with the string 4.0.30319 in regedit to match the value from InstallPath, and that seemed to do the trick. And of course, when I was finished, I put them back the way they originally were.

However, I did not have permission to change those values, so it was a bit tricky. I right-clicked on the Client key, chose Permissions, and clicked Advanced. Then I changed the owner to my user account instead of TrustedInstaller. This allowed me to add permissions for Full Control for myself so I could modify the Version value. I repeated the same process on the Full key. After the installer completed successfully, I put the original version values back in (4.6.00079), deleted the permissions I added for myself, and restored the owner to TrustedInstaller (to do that, type NT SERVICE\TrustedInstaller as the username).

There might be a safer/easier way of intercepting the registry reads than actually modifying the registry, but this was simple enough for me!