Install-WindowsFeature Web-Net-Ext failed. Source files could not be found.

Error:

Trying to install .NET Framework 3.5 Features on a Windows Server 2016, either through GUI or PowerShell, returns below error (truncated):

“The request to add or remove features on the specified server failed.
Installation of one or more roles, role services, or features failed.
The source files could not be found.”

Cause:

.Net Framework 3.5 sources file are not pre-installed so we need to explicitly specify where “installer” can get the source files from.

Solution:

As per Microsoft’s official docs, there are 2 main solutions to make it work.

  1. Through GUI (Server Manager), when asked during the wizard, you need to specify the path to “Media:\Sources\SxS” folder.
  2. Through PowerShell, Install-WindowsFeature -Name Web-Net-Ext -source D:\Sources\SxS

Still, Microsoft says that even if this defined source is not found, installer should go to Windows Update to download required files. Let’s exclude those many possibilities that Windows Update is not accessible due to various reasons (no internet connection, GPOs disabling something etc.).

Anyway, since neither one of the above methods worked for me, I kept reading posts from 2nd+ google pages. This led me to not-so-old post from Michael Niehaus: https://blogs.technet.microsoft.com/mniehaus/2015/08/31/adding-features-including-net-3-5-to-windows-10/

Not sure what’s different with calling DISM directly (since Server Manager and Powershell probably does the same), but below solution worked for me.

Run this from PowerShell (including tilde characters): DISM.exe /Online /Add-Capability /CapabilityName:NetFx3~~~~ /Source:D:\Sources\SxS where D was the drive with my mounted Server 2016 ISO.

When above command is done, run this: Add-WindowsCapability –Online -Name NetFx3~~~~ –Source D:\Sources\SxS

Object Replication Manager failed to process Object changes.

Symptoms

Did your SMS_OBJECT_REPLICATION_MANAGER component shows a lot or 6004 MessageIDs with the following description: “Object Replication Manager failed to process Object changes. These changes will be retried on next processing cycle.?

Cause

By design, maybe.

Resolution

Run the following query in SQL Management Studio (Warning! modifying the database directly may not be supported by Microsoft. Do this on your own risk.):

SELECT ca.UniqueID,c.CollectionName
FROM vClientSettingsAssignments as ca LEFT JOIN collections AS c ON ca.CollectionID=c.SiteID
WHERE CollectionName = NULL

This will show collection name/s for all active assignments to collection/s that do not exist anymore.

If you have any, copy the UniqueID and run the following query:

DELETE FROM vClientSettingsAssignments
WHERE UniqueID = ‘{UniqueId here}’

Credit goes to: https://social.technet.microsoft.com/Forums/en-US/2e9ba246-194d-47d4-adc9-eb3b1717bfdc/object-replication-manager-failed-to-process-object-changes?forum=configmanagergeneral

Step-by-step guide to install Configuration Manager 2012 SP1 R2

Steps to perform on primary domain controller (DC)

Extend AD schema

  1. Log in using a domain admin account
  2. Insert ConfigMgr 2012 SP1 DVD
  3. Open a command prompt window
  4. Type D:\SMSSETUP\BIN\X64\EXTADSCH.EXE and press Enter. Wait for a confirmation message in CMD window and then check for the existence of ExtADSch.log file in the root of C: partition on the DC. Open the file and see if “Successfully extended the Active Directory schema.” message is present.

Assign permission to System OU in AD

  1. Open Active Directory Users and Computers
  2. From the View menu select Advanced Features
  3. Right click on the System container and select Properties
  4. Go to Security tab and click Advanced
  5. Click Add in the Permission tab
  6. Select Object Types and check the box for Computers. Click OK
  7. In the Enter the object name to select field enter the name of the ConfigMgr server and click Check Names
  8. After the server name is recognized, click Ok
  9. In the Permission Entry for System window check the box for Full control and select This object and all descendant objects in the Apply to list box. Click OK three times to close all open windows

Create service accounts

  1. Open ADUC and create the following 3 service accounts (select complex password for each account):
    1. SQL Server Service Accountsqlsrvacct
    2. ConfigMgr Client Push Service Accountcfgmgrclpush
    3. ConfigMgr Network Access Service Accountcfgmgrnetacct
  2. Make cfgmgrclpush account member of Domain Admins group or Workstation Admins group if this exists.

Create GPO to add security groups to local Administrators group on servers and workstations

  1. Server local admins
  2. Workstation local admins

Steps to perform on Configuration Manager server

Install Report Viewer 2008 SP1 Redistributable

  1. Login with a domain admin account, preferably not Administrator.
  2. Download and install Report Viewer 2008 SP1 Redistributable from http://www.microsoft.com/downloads/en/details.aspx?familyid=BB196D5D-76C2-4A0E-9458-267D22B6AAC6&displaylang=en

Add Server Features

  1. Open Server Manager and add the following features:
    1. NET Framework 3.5.1 Features, BITS, Group Policy Management and Remote Differential Compression
    2. From Web Server (IIS) select WebDAV Publishing, ASP.NET, ASP, Windows Authentication, Dynamic Content Compression and IIS 6 WMI Compatibility

Configure WebDAV

  1. Open Internet Information Services (IIS) Manager
  2. Expand server name and select Default Web Site
  3. Double click on the WebDAV Authoring Rules and select Enable WebDAV from the right side panel
  4. From the right side, click Add Authoring Rule
  5. In the Add Authoring Rule window select the checkboxes for: All Content, All Users, Read and click OK
  6. From the right side, click WebDAV Settings
  7. Modify the following components as follows and click Apply when finished:
    1. Allow anonymous property queries – True
    2. Allow custom properties – False
    3. Allow property queries with infinite depth – True
    4. Allow hidden files to be listed – True

Add SQL Server ports exceptions

  1. Open Windows Firewall with Advanced Security
  2. Right click Inbound Rules and select New rule
  3. In the New Inbound Rule Wizard window make the following modifications:
    1. Rule Type – Port
    2. Protocol and Ports – TCP, Specific local ports: 1433
    3. Action – Allow the connection
    4. Profile – no modification
    5. Name – SQL TCP 1433
  4. Repeat step 3 to add another inbound rule with the following settings:
    1. Rule Type – Port
    2. Protocol and Ports – TCP, Specific local ports: 4022
    3. Action – Allow the connection
    4. Profile – no modification
    5. Name – SQL TCP 4022

Install SQL Server 2012 SP1

  1. Insert SQL Server 2012 SP1 DVD
  2. Select New SQL Server stand-alone installation
  3. Select features: Database Engine Services, Reporting Services – Native, Client Tools Connectivity, Management Tools, Integration Services (optional)
  4. Select default instance
  5. Add sqlsrvacct domain account to the local Administrators group on the ConfigMgr server
  6. Use the SQL service account for all SQL Server services
  7. Set SQL Server Browser to Automatic
  8. Add current user as the SQL Administrator (preferably not domain Administrator account)
  9. After installation, open Management Studio and configure maximum memory allocation.

Install Windows Deployment Services

  1. Open Server Manager and install the Windows Deployment Services role using the default settings

Install Windows Server Update Services

  1. Open Server Manager and select the Windows Server Update Services role. Click Next twice and then Install
  2. Install WSUS using the following settings:
    1. Select Update Source – select a disk with more disk space
    2. Database options – Use an existing database server on this computer
    3. Web Site Selection – Create a Windows Server Update Services 3.0 SP2 Web Site (http://servername:8530)
  3. When installation is finished, close the wizard by pressing Cancel button
  4. Create a Group Policy Object for windows update settings.
  5. If you have Windows Server 2008 R2, install KB2720211
  6. If you have Windows Server 2008 R2, install KB2734608

Install Windows Assessment and Deployment Kit (ADK) for Windows 8.1

  1. Download Windows Assessment and Deployment Kit (Windows ADK) for Windows 8.1 from Microsoft website http://www.microsoft.com/en-us/download/details.aspx?id=39982
  2. Select to install only the following:
    1. Deployment Tools
    2. Windows PE
    3. USMT

Install Configuration Manager 2012 SP1

  1. Insert Configuration Manager 2012 SP1 DVD
  2. Click Install link Configuration Manager 2012 SP1 Setup Wizard window.
  3. Install ConfigMgr and make only the following modifications:
    1. Available Setup Options – Install a Configuration Manager site server
    2. Updated Prerequisite Components – Check for updates and download…
    3. Site and Installation Settings – enter a Site code and Site name

Install Configuration Manager 2012 R2

  1. Insert Configuration Manager 2012 R2 CD
  2. Click Configuration Manager 2012 R2 link from the Install section
  3. Install the R2 add-on accepting the default settings in the wizard

Configure Configuration Manager as needed

Deploy Configuration Manager 2012 R2 hotfix to Clients using your preferred method and settings.

Despooler failed to merge delta to the compressed package. Error 112.

Symptoms

You make changes to a package and update your distribution points. Shortly you receive error messages in Component Status for SMS_DESPOOLER component.

image

Status message details is similar to the following:

image

Cause

The destination drive where site server is uncompressing the package is full.

Resolution

If you don’t know the drive where the package is uncompressing to, open the despool.log file from the site server system where this error occurs. In the log file look for the following lines:

Received package PackageID version 12. Compressed file –  F:\SMSPKG\PackageID.DLT.11.12 as F:\Program Files\Microsoft Configuration Manager\inboxes\despoolr.box\receive\PKG8l1ab.TRY
Old package storedUNC path is \\SiteServerFQDN\F$\SMSPKG\PackageID.PCK.
Use drive F for storing the compressed package.
No branch cache registry entries found.
Uncompressing F:\SMSPKG\PackageID.PCK to F:\SMSPKG\PackageID.PCK.temp
WriteFile failed, 0 bytes written
FileWrite failed; 0x80070070
decompression failed for F:\SMSPKG\PackageID.PCK to F:\SMSPKG\PackageID.PCK.temp
CContentBundle::ExtractContentBundle failed; 0x80070070
Failed to extract contents to the content library. 0x80070070
Failed to extract package contents from F:\PROGRAM FILES\MICROSOFT CONFIGURATION MANAGER\INBOXES\DESPOOLR.BOX\RECEIVE\PKG8L1AB.TRY. Error = 112

So, looks like we have a low disk space problem on disk F:. Clean it up to create more space and monitor Component Status again. Shortly, you should see the following:

Received package PackageID version 12. Compressed file –  F:\SMSPKG\PackageID.DLT.11.12 as F:\Program Files\Microsoft Configuration Manager\inboxes\despoolr.box\receive\PKG0auju.TRY
Waiting for ready instruction file….
Old package storedUNC path is \\SiteServerFQDN\F$\SMSPKG\PackageID.PCK.
Use drive F for storing the compressed package.
No branch cache registry entries found.
Uncompressing F:\SMSPKG\PackageID.PCK to F:\SMSPKG\PackageID.PCK.temp
Content Library: G:\SCCMContentLib
Extracting from F:\SMSPKG\PackageID.PCK.temp
Extracting package PackageID

Extracting content 1c4c0f71-e7a3-4cda-813f-dc7baff8d6a7
Extracting content 93f2ea53-fbf5-4082-98c3-a2b3887dd658
Extracting content 73a4fc00-02da-4e32-824d-957053338834
………
Extracting content 79267f60-69a5-465c-8a40-a6a8db8b1416
Extracting content 1181a482-c797-451c-9468-e2bf1bc8d68d
Package PackageID (version 11) exists in the distribution source, save the newer version (version 12).
Stored Package PackageID. Stored Package Version = 12

This time, our package uncompressed fine and it was stored successfully in the content library.

Status message details will now show this message:

image

Uncheck “Install new versions automatically” in Internet Explorer 10 during deployment

IF you during deployment you want to easily uncheck “Install new versions automatically” feature, there is a registry setting you can configure prior to actual IE setup.exe or msi, whatever you use.

clip_image002

Copy the following text to a notepad and save it as a REG file. Then use REG IMPORT “Disable_AutoUpdate.reg” before you deploy your IE and that’s all.

Windows Registry Editor Version 5.00
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main]
"EnableAutoUpgrade"=dword:00000000

For example, here’s our script to deploy IE and disable auto update:

: - - - - - - Uncheck "Install new versions automatically" - - - - - - -
REG IMPORT "Disable_AutoUpdate.reg"
: - - - - - - Install Application - - - - - - -
MSIExec /i "IE10-Setup-Full.msi" /qn /norestart /l*v C:\Windows\Temp\Microsoft_IE10_x64_ENG_R1_Install.log
EXIT

Uninstall KB 2823324 using ConfigMgr

  1. Create a CMD file with the following content
    @echo off

    :: - - - - - Check if KB is installed - - - - - - - -

    systeminfo | findstr 2823324

    :: - - - - - If not installed (1), exit - - - - - - -

    IF %errorlevel% EQU 1 GOTO NOTFOUND

    GOTO FOUND

    :NOTFOUND

    Echo %date% - %time% KB 2823324 was not found. Exit. >> C:\Windows\Temp\Microsoft_Uninstall_Patch_KB2823324.log

    GOTO EXIT

    :: - - - - - If installed (0), uninstall - - - - - - -

    :FOUND

    Echo %date% - %time% KB 2823324 was found. Attempt uninstall. >> C:\Windows\Temp\Microsoft_Uninstall_Patch_KB2823324.log

    wusa.exe /uninstall /kb:2823324 /quiet /norestart /log:C:\Windows\Temp\Microsoft_Uninstall_Patch_KB2823324_WUSA.log

    Echo %date% - %time% KB 2823324 uninstall complete. Restart might be needed for operation to complete successfully. >> C:\Windows\Temp\Microsoft_Uninstall_Patch_KB2823324.log

    :EXIT

  2. Deploy this CMD file by creating a new package and program. Keep in mind that a restart is required to fully uninstall this patch.

Collection with Windows 7 computers without SP1

First, if you want your query to display the right information, you must have a collection with all Windows 7 computers, regardless of the service pack version installed.

Here is the simplest query to create “All Windows 7 computers” collection (please make this collection “Not collection limited”):

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceId = SMS_R_System.ResourceId where SMS_G_System_OPERATING_SYSTEM.Caption like “%Windows 7%”

And here is the query to create “Windows 7 computers without SP1”, you must limit this collection to “All Windows 7 computers” collection created earlier:

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId where SMS_G_System_COMPUTER_SYSTEM.Name not in (select distinct SMS_G_System_COMPUTER_SYSTEM.Name from SMS_R_System inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId inner join SMS_G_System_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceId = SMS_R_System.ResourceId where SMS_G_System_OPERATING_SYSTEM.Caption like “%Windows 7%” and SMS_G_System_OPERATING_SYSTEM.CSDVersion = “Service Pack 1”)

Computers without Java 6 Update 30

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier, SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.Version < “6.0.300” and SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like “Java(TM) 6%”