How to deploy .NET Framework 4.7 with SCCM. This step-by-step guide will hold your hand through the entire process from downloading the .Net Framework, creating the application and deployment types in SCCM with silent installer, and deploying .Net Framework 4.7 to a collection of computers

Download .NET Framework 4.7 offline installer: https://www.microsoft.com/en-us/download/details.aspx?id=55167

OS Requirements for .NET Framework 4.7

.NET Framework is supported to run on the following operating systems:

Windows 7 SP1

Windows 8.1

Windows 10 (Anniversary Update)

Windows Server 2008 R2

Windows Server 2012

Windows Server 2012 R2

Windows Server 2016

Prerequisites for .NET Framework 4.7

.NET Framework 4.7 requires the D3DCompiler to be installed on Windows 7 SP1, Windows 2008 R2 and Windows Server 2012 before you can install .NET Framework 4.7. It is available from the Microsoft Update Catalog.

Windows 7 SP1 32-bit: http://go.microsoft.com/fwlink/?LinkId=848159

Windows 7 SP1 64-bit and Windows Server 2008 R2 64-bit: http://go.microsoft.com/fwlink/?LinkId=848158

Windows Server 2012 64-bit: http://go.microsoft.com/fwlink/?LinkId=848160

Reference: https://support.microsoft.com/en-us/help/4020302/the-net-framework-4-7-installation-is-blocked-on-windows-7-windows-ser

Create D3D Compiler Application in Configuration Manager

We will create an application for D3D Compiler in Configuration Manager, and set this application as a dependency when installing .NET Framework 4.7 on Windows 7, Windows Server 2008 R2 and Windows Server 2012. Configuration Manager will then check if D3D Compiler is installed on these operating systems, and if not found, install it first before it attempts to install .NET Framework 4.7

Note: This step is only required if you plan to deploy .Net Framework 4.7 to Windows 7 SP1 and Windows Server 2012.

For practical reasons, this guide will only show the steps for Windows 7 SP1 64-Bit, but repeat them for any Windows 7 SP1 32-Bit and Server 2012 as well if you want to deploy .NET Framework 4.7 to them.

Install string (Windows 7 SP1 64-bit)

wusa.exe Windows6.1-KB4019990-x64.msu /quiet /norestart

Uninstall string

wusa.exe /uninstall Windows6.1-KB4019990-x64.msu /quiet /norestart

PowerShell detection method

We will set D3D Compiler as a dependency for the .NET application, so I want a PowerShell detection method that only checks if D3D Compiler is installed on the required operating systems. If it checks for the dependency on a operating system where this is not required, I want the detection method to return installed to allow installation of .NET Framework 4.7 to proceed.

$KB = 'KB4019990' function Get-Update { Param([Parameter(Mandatory=$true)]$KB) $hotfixes = get-hotfix | Select-Object -ExpandProperty HotFixID if ($hotfixes -match $KB) { Write-Output 'Installed' } } $OS = Get-WmiObject -class Win32_OperatingSystem switch -Wildcard ($OS.Caption) { "*Windows 7*" {Get-Update -KB $KB} "*Windows 8.1*" {Write-Output 'Installed'} "*Windows 10*" {Write-Output 'Installed'} "**Server 2012*" { if ($OS.Caption -like "*R2*") {Write-Output 'Installed'} else {Get-Update -KB $KB} } "*Server 2016*" {Write-Output 'Installed'} }

Create a new application in SCCM. Select “Manually specify the application information”.

Name the application “D3D Compiler”

Skip the application catalog, and click new deployment type at deployment types. Select script installer and manually specify the deployment type information.

Type in D3D Compiler as the name of the deployment type.

Content location: Browse to the network location where you stored the D3D Compiler files.

Installation program: Copy and paste the install string.

Uninstall program: Copy and paste the uninstall string.

We will use our PowerShell detection method. Select “Use a custom script to detect the presence of this deployment type”, and click Edit…

Select PowerShell as script type, and paste in the PowerShell detection method.

Select Install for system, whether or not a user is logged on, and hidden.

We don’t specify any requirements even tough we only want this installed on Windows 7 SP1 and Windows Server 2012. Our detection tricks SCCM to believe D3D Compier is already installed if it’s deployed to another operating system. This is important for dependency to work as the .NET Framework 4.7 use the same installer for all supported operating systems.

No dependencies for the D3D Compiler application. Click next until the application is created.

Last step: Distribute the D3D Compiler application to your distribution points.

Create .NET Framework 4.7 Application in Configuration Manager

Silent installation string for .NET Framework 4.7 (All operating systems)

NDP47-KB3186497-x86-x64-AllOS-ENU.exe /q /norestart /ChainingPackage ADMINDEPLOYMENT

Uninstall string for .NET Framework 4.7

wusa.exe /uninstall KB3186497 /quiet /norestart

.NET Framework 4.7 Registry key detection clause:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

Name: Release

Type: DWORD

Value:

Windows 10 Anniversary Update: 394802

All other OS versions: 394806

Create a new application in SCCM. Select “Manually specify the application information”.

Type in .NET Framework 4.7 as the name of the application.

Skip the application catalog. At deployment types, select create new deployment type. Enter Install .NET Framework 4.7 as the name of this deployment type.

Content location: Specify network share where you stored .NET Framework 4.7

Installation program: paste in the install string.

Uninstall program: paste in the uninstall string.

Click Add Clause at detection methods. We will add two registry checks. Make sure it says “Or” in the connector as the first is for Windows 10 1607 while the second is for all other operating systems.

The registry detection method on Windows 10 1607.

And the registry detection method to detect the presence of .NET Framework 4.7 on all other operating systems.

In user experience, select Install for system, whether or not a user is logged on, and hidden.

As a dependency, we will add the D3D Compiler application that we created earlier. Our detection method tricks SCCM to believe it is already installed on operating systems that won’t need it, while it will check for it’s presence on Windows 7 SP1 and Windows Server 2012 and install if necessary.

Click “Add…” to add our dependency.

Again click Add and select D3D Compiler, and make sure “Auto Install” is checked.

And are are done creating the application. Click next until it is created.

Right click on the application and distribute it to the distribution points of your need.

Deploy .NET Framework 4.7 with SCCM

Right click the .NET Framework 4.7 application that we just created and select deploy.

Specify the collection you want to deploy it to.

Distribute it to your distribution point if you haven’t already done that.

Chose Install for action. Select Required as purpose if you want to forcefully install it, and available if you want your users to manually start the installation through software center.

Select “As son as possible” if you want the deployment to install immediately, or set another schedule for it to be available until the mandatory deadline (where a forced installation will happen).

Decide whether you want the application to be visible in software center, and if users should see any notifications.

Continue to press next and you are all done.

Congratulations, .NET Framework 4.7 have been successfully deployed.