ConfigMgr OSD – Enable .NET Framework 3.5 on Windows 8.1

Windows 8.1 has the .NET Framework 4.5.1 enabled by default. If you need .NET Framework 3.5 which also includes support for .NET 3.0, and 2.0, then you must enable the feature as it is not enabled by default.However to enable it you need access to the content of the Sources\SXS folder that resides on the Windows 8.1 installation media. More details are described in the MSDN article Installing the .NET Framework 3.5 on Windows 8 or 8.1

Follow the below instructions to enable the .NET Framework 3.5 within a ConfigMgr 2012 R2 task sequence.

On the ConfigMgr package source share create a new folder that acts as the package source folder for the .NET Framework 3.5 content and enabling script. Then copy the SXS folder located under the Sources folder on the original Windows 8.1 media into the new created folder. Next copy the enable-net35sp1.ps1 script into the same folder as well. (the content of enable-net35sp1.ps1 is listed below)


Within Configuration Manager create a new package called Windows 8.1 enable .NET Framework 3.5 sp1 with its data source path pointing to the previously created folder. The package does not need a program.

Next open the task sequence that is used to create the Windows 8.1 reference image and add a “Run PowerShell Script” task as shown in the example below.

  • Package: Windows 8.1 enable .NET Framework 3.5 sp1
  • Script Name: enable-net35sp1.ps1


As a result you should see the following when execution the task sequence.


The result, .NET Framework 3.5 enabled in Windows 8.1



Contents of the Enable-net35sp1.ps1 script.

11 Replies to “ConfigMgr OSD – Enable .NET Framework 3.5 on Windows 8.1”

  1. Fails to locate the PS script. Not sure in the steps above how you indicate the script name, but there is nowhere for the TS to reference it at. I understand creating the package and not creating a program for it. I also understand using the PS script to reference the folders within the sxs folder. However I don’t see how the TS will see the PS script.

  2. I tried this example and got “zero”. No errors due to OSD process, no installed feature in the end. I wonder, what about power shell script execution policy? this script is unsigned, and does not run on any regular PC.

  3. + [CmdletBinding(SupportsShouldProcess=$true)]
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Unexpected attribute ‘CmdletBinding’.
    At J:\DotNet3.5\Enable-net35sp1.ps1:21 char:1
    + Param(
    + ~~~~~
    Unexpected token ‘Param’ in expression or statement.
    + CategoryInfo : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : UnexpectedAttribute

    Any advice

  4. If you get the “unexpected Attribute ‘CmdletBinding'” error, it’s because the comments in the code was translated in HTML (the brackets was translated into < and >)

  5. I created a Package in ConfigMgr with no program containing the .NET 3 source, then selected to use it in a Command Line action in the State restore phase of an MDT generated TS, with the following command line;

    DISM /online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:C:\_SMSTaskSequence\Packages\

    I put this in the reference image I captured, so it’s not repeated for every image deployed.

    Worked fine for me.

    There is a variable for the package so you don’t have to use the hardcoded path on the source switch but I can’t remember it and I don’t have the TS to hand.

  6. Hello,

    I also tried to enable .NET Framework 3.5 during a SCCM 2012 R2 CU5 Task Sequence and if failed.

    Well maybe the script it’s okay, I believe you can safely cut everything between <# and #&gt and leave just the script.

    The real problem is here:

    So basically, to enable .NET Framework, first you also need to remove/uninstall other 2 KBs:

    KB2966826 – DISM /Online /Remove-Package /PackageName:Package_for_KB2966826~31bf3856ad364e35~amd64~~ /quiet /norestart

    KB2966828 – DISM /Online /Remove-Package /PackageName:Package_for_KB2966828~31bf3856ad364e35~amd64~~ /quiet /norestart

    After that you can enable/install .NET Framework using the script or the command:

    DISM /Online /Enable-Feature /FeatureName:NetFx3 /All

    The KBs can be installed afterwards:

    KB2966828 –

    KB2966826 –


Leave a Reply