Streamline Configuration Manager: Expert Guide to DP Installation, Upgrades, and Configuration

Table of Contents

This article provides an in-depth exploration of Distribution Point (DP) operations within Configuration Manager, focusing on installation, upgrades, configuration changes, and removal processes. A thorough understanding of these operational flows is crucial for effectively identifying and diagnosing potential issues within your Configuration Manager environment.

Introduction

When troubleshooting Distribution Point installation and upgrade issues, it’s essential to understand the underlying mechanisms. DP installation and upgrades are managed by threads from the DP upgrade processing thread pool. To effectively troubleshoot, it is recommended to review the DP installation/upgrade process flow to pinpoint the specific thread responsible for the DP operation. Filtering the DistMgr.log file for this identified thread will provide focused insights. By analyzing the filtered log, you can determine whether the DP installation or upgrade succeeded or failed and proceed with targeted troubleshooting steps.

Similarly, troubleshooting DP removal requires a different approach. DP removal is handled by the DP Manager thread, which operates in a single-threaded manner. This single-threaded nature means that when multiple DPs are removed concurrently, the removals are processed sequentially. This can lead to extended removal times if a large number of DPs are involved. To effectively troubleshoot DP removal, it is important to understand the DP Removal process to identify the DP Manager thread and filter the DistMgr.log file accordingly.

DP installation

The Distribution Point installation process comprises a series of well-defined steps. These steps generally begin following the completion of the DP installation wizard within the Configuration Manager console by an administrator. Each step is detailed below, accompanied by examples illustrating how to monitor the step’s progress through examination of relevant log files. In the event of DP installation problems, these log files are invaluable. They provide precise information about where in the installation process an issue occurs and offer critical clues to understand the root cause of failures.

Step 1: The admin console creates an instance of the SMS_SCI_SysResUse WMI class for the new DP

The admin console creates an instance of the SMS_SCI_SysResUse WMI class for the new DP

Upon completion of the Distribution Point installation wizard, the administrative console initiates the creation of an instance of the SMS_SCI_SysResUse WMI class within the SMS Provider namespace. The SMSProv.log file meticulously records this instance creation. It also includes valuable contextual entries such as SMSAppName, MachineName, UserName, and ApplicationName. These entries can be particularly useful when investigating installation problems, providing context about the initiating user, machine, and application.

SMS Provider 4180 (0x1054) ~
SMS Provider 4180 (0x1054) CExtUserContext::EnterThread : User=CONTOSO\\Admin Sid=<SID> Caching IWbemContextPtr=00000000046687B0 in Process 0x540 (1344)~
SMS Provider 4180 (0x1054) Context: **SMSAppName** =Configuration Manager Administrator console~
SMS Provider 4180 (0x1054) Context: **MachineName** =PS1SITE.CONTOSO.COM~
SMS Provider 4180 (0x1054) Context: **UserName** =CONTOSO\\Admin~
SMS Provider 4180 (0x1054) Context: ObjectLockContext=<ContextID>~
SMS Provider 4180 (0x1054) Context: **ApplicationName** =Microsoft.ConfigurationManagement.exe~
SMS Provider 4180 (0x1054) Context: ApplicationVersion=5.0.8355.1000~
SMS Provider 4180 (0x1054) Context: LocaleID=MS\\0x409~
SMS Provider 4180 (0x1054) Context: __ProviderArchitecture=32 ~
SMS Provider 4180 (0x1054) Context: __RequiredArchitecture=0 (Bool)~
SMS Provider 4180 (0x1054) Context: __ClientPreferredLanguages=en-US,en~
SMS Provider 4180 (0x1054) Context: __CorrelationId={CorrelationID}~
SMS Provider 4180 (0x1054) Context: __GroupOperationId=170804 ~
SMS Provider 4180 (0x1054) CExtUserContext : Set ThreadLocaleID OK to: 1033~
SMS Provider 4180 (0x1054) CSspClassManager::PreCallAction, dbname=CM_PS1~
SMS Provider 4180 (0x1054) PutInstanceAsync SMS_SCI_SysResUse~
SMS Provider 4180 (0x1054) CExtProviderClassObject::DoPutInstanceInstance~
SMS Provider 4180 (0x1054) INFO: 'PS1DP1.CONTOSO.COM' is a valid FQDN.
SMS Provider 4180 (0x1054) Auditing: User CONTOSO\\Admin created an instance of class SMS_SCI_SysResUse.~
SMS Provider 4180 (0x1054) CExtUserContext::LeaveThread : Releasing IWbemContextPtr=73828272~
SMS Provider 4180 (0x1054) ~

Alongside WMI instance creation, the SMS Provider also executes a database insertion. This insertion populates the vSMS_SC_SysResUse table, recording essential details about the new Distribution Point within the Configuration Manager database.

insert into vSMS_SC_SysResUse (SiteNumber, RoleName, NALPath, NALResType) values (1, N'SMS Site System', N'[\"Display=\\\\PS1DP1.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP1.CONTOSO.COM\\', N'Windows NT Server')

Step 2(optional): SMS Provider adds the newly created DP to a boundary group if specified during the wizard

SMS Provider adds the newly created DP to a boundary group

During the Distribution Point installation wizard, administrators have the option to associate the new DP with either an existing or a newly created boundary group. The SMS Provider manages these boundary group assignments, and its actions are meticulously logged. The following log entries in SMSProv.log detail the process of adding a DP to a boundary group:

SMS Provider 4180 (0x1054) AddSiteSystem~~
SMS Provider 4180 (0x1054) Adding site system [\"Display=\\\\PS1DP1.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP1.CONTOSO.COM\\ to the boundary group PS1 Assignment And Content ~
SMS Provider 4180 (0x1054) Successfully added 1 servers to boundary group PS1 Assignment And Content~
SMS Provider 4180 (0x1054) Auditing: User CONTOSO\\Admin modified an instance of class SMS_BoundaryGroup.~
SMS Provider 4180 (0x1054) CExtUserContext::LeaveThread : Releasing IWbemContextPtr=73828272~
SMS Provider 4180 (0x1054) ~

These logs clearly indicate the addition of the specified site system to the “PS1 Assignment And Content” boundary group, along with audit trails of user modifications to the SMS_BoundaryGroup class.

Step 3: SMSDBMON detects a site control change and notifies HMAN to process site control file

SMSDBMON detects a site control change

SMSDBMON (SMS Database Monitor) plays a crucial role in Configuration Manager by continuously monitoring various database tables for changes. It detects modifications to site control file related tables, such as those made in Step 1. Upon detecting a change (logged as RCV for Receive), SMSDBMON promptly notifies relevant components by dropping or sending files in the component’s inbox (logged as SND for Send). In the context of DP installation, SMSDBMON alerts HMAN (Hierarchy Manager) to process the site control file for these detected changes. The following log snippets from SMSDBMON.log illustrate this notification process:

SMS_DATABASE_NOTIFICATION_MONITOR 2580 (0xa14) RCV: UPDATE on SiteControl for SiteControl_AddUpd_HMAN [PS1 ][1027921]
SMS_DATABASE_NOTIFICATION_MONITOR 2580 (0xa14) SND: Dropped E:\\ConfigMgr\\inboxes\\HMAN.box\\PS1.SCU [1027921]

These entries show SMSDBMON receiving an update notification on SiteControl and subsequently sending a site control update (.SCU) file to the HMAN inbox, initiating HMAN’s processing of the site control file.

Step 4: HMAN processes the site control file and processes all distribution points

HMAN processes the site control file

HMAN, upon detecting the SCU file deposited by SMSDBMON, awakens and commences processing the site control file. During this processing, HMAN systematically examines all Distribution Points within the site. It determines if any DPs are newly added or have undergone configuration changes. This step is critical for synchronizing the Configuration Manager hierarchy with the current DP landscape.

4a: For newly added DPs, HMAN recognizes the new site system and inserts corresponding data into the DistributionPoints table in the Configuration Manager database. This table serves as a central repository of information for all Distribution Points in the hierarchy. Log entries in HMAN.log reflecting this insertion process are shown below:

SMS_HIERARCHY_MANAGER 2448 (0x990) ~Processing site control file: Site PS1
SMS_HIERARCHY_MANAGER 2448 (0x990) New site system: PS1 PS1DP1.CONTOSO.COM SMS Distribution Point
SMS_HIERARCHY_MANAGER 2448 (0x990) New site system: PS1 PS1DP1.CONTOSO.COM SMS Site System
SMS_HIERARCHY_MANAGER 2448 (0x990) ~Server Info of site PS1 has changed. Update the DPInfo table in the database.
SMS_HIERARCHY_MANAGER 2448 (0x990) ~ **Distribution Points of site PS1 have changed**. Update the DistributionPoints table in the database.
SMS_HIERARCHY_MANAGER 2448 (0x990) ~Inserted DP [\"Display=\\\\PS1DP1.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP1.CONTOSO.COM\\. CRC:439BCA34,PDP:0,PullDP:0
SMS_HIERARCHY_MANAGER 2448 (0x990) SQL>>>insert DistributionPoints ( ServerName, NALPath, ShareName, SMSSiteCode, IsPullDP, IsPeerDP, IsBITS, PreStagingAllowed, IsMulticast, AnonymousEnabled, TokenAuthEnabled, SslState, DPType, Priority, TransferRate, DPFlags, IsProtected, DPDrive, Type, MinFreeSpace, IsPXE, IsActive, ResponseDelay, UdaSetting, BindPolicy, SupportUnknownMachines, CertificateType, IdentityGUID, BindExcept, PXEPassword, Action, Account, Description, DPCRC ) values ( N'PS1DP1.CONTOSO.COM', N'[\"Display=\\\\PS1DP1.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP1.CONTOSO.COM\\', N'', N'PS1', 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 0, 0, 1, N'', N'Windows NT Server', 50, 0, 0, 0, 0, 0, 0, 0, N'23a72b6c-eace-4218-929c-4c80638c031e', N'', N'', 0, N'', N'PS1 Standard DP', N'439BCA34' )

4b: Beyond inserting a new row for the DP in the DistributionPoints table, HMAN also initiates the distribution of default client packages to the newly added DP. This ensures that the DP is immediately ready to serve client installation content. Log entries in HMAN.log detailing the client package distribution are as follows:

SMS_HIERARCHY_MANAGER 2448 (0x990) Loaded client upgrade settings from DB successfully. FullClientPackageID=CS100002, StagingClientPackageID=CS100024, ClientUpgradePackageID=CS100003, PilotingUpgradePackageID=CS100025, ClientUpgradeAdvertisementID=CS120000, ClientPilotingAdvertisementID=(null)
SMS_HIERARCHY_MANAGER 2448 (0x990) INFO: Successfully added client package (ID=CS100002) to DP [\"Display=\\\\PS1DP1.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP1.CONTOSO.COM\\~
SMS_HIERARCHY_MANAGER 2448 (0x990) INFO: Successfully added client package (ID=CS100003) to DP [\"Display=\\\\PS1DP1.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP1.CONTOSO.COM\\~
SMS_HIERARCHY_MANAGER 2448 (0x990) INFO: Successfully added client package (ID=CS100024) to DP [\"Display=\\\\PS1DP1.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP1.CONTOSO.COM\\~
SMS_HIERARCHY_MANAGER 2448 (0x990) INFO: Successfully added client package (ID=CS100025) to DP [\"Display=\\\\PS1DP1.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP1.CONTOSO.COM\\~

4c: HMAN also takes care of updating the Distribution Point certificate information in the database. This includes both self-signed and PKI certificates, ensuring certificate synchronization. This is achieved by calling the spUpdateDPCert stored procedure in the Configuration Manager database. Log entries in HMAN.log relating to certificate updates are shown below:

SMS_HIERARCHY_MANAGER 2448 (0x990) DP cert query: EXEC spUpdateDPCert N'PS1DP1.CONTOSO.COM', N'23a72b6c-eace-4218-929c-4c80638c031e', ... ...

It is important to note that for Distribution Points that have not undergone any changes, HMAN also logs entries, indicating that no updates are required. This is an example of HMAN efficiently processing the site control file and optimizing DP updates.

SMS_HIERARCHY_MANAGER 2448 (0x990) ~Will not update DP [\"Display=\\\\PS1SITE.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1SITE.CONTOSO.COM\\. DBCRC:13639BB,NewCRC:13639BB,Action:0,PDP:0,PullDP:0
SMS_HIERARCHY_MANAGER 2448 (0x990) ~Will not update DP [\"Display=\\\\PS1SQL.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1SQL.CONTOSO.COM\\. DBCRC:DB8F08DA,NewCRC:DB8F08DA,Action:0,PDP:1
SMS_HIERARCHY_MANAGER 2448 (0x990) ~Will not update DP [\"Display=\\\\PS1SYS.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1SYS.CONTOSO.COM\\. DBCRC:B65C605F,NewCRC:B65C605F,Action:0,PDP:0,PullDP:0

Important Note: If HMAN encounters any failures during the insertion or update processes for any Distribution Point, the entire transaction is rolled back. This rollback mechanism ensures data consistency and prevents partial updates. Persistent failures in this step can result in issues where Distribution Points are not installed correctly or property changes are not applied effectively.

Step 5: HMAN finishes processing the site control file and raises a status message

HMAN finishes processing the site control file and raises a status message

Upon successfully completing the processing of the site control file, HMAN generates a status message. This status message, identified by ID 3306, signifies that Hierarchy Manager has successfully processed the site control file (in this example, E:\\ConfigMgr\\inboxes\\hman.box\\PS1.SCU). This message confirms the successful application of site control changes, including DP installation configurations, within the Configuration Manager hierarchy. The status message logged in HMAN.log is shown below:

SMS_HIERARCHY_MANAGER 2448 (0x990) **STATMSG: ID=3306** SEV=I LEV=M SOURCE=\"SMS Server\" COMP=\"SMS_HIERARCHY_MANAGER\" SYS=PS1SITE.CONTOSO.COM SITE=PS1 PID=1956 TID=2448 GMTDATE=Wed May 11 18:33:34.813 2016 ISTR0=\"E:\\ConfigMgr\\inboxes\\hman.box\\PS1.SCU\" ISTR1=\"ConfigMgr Primary Site 1\" ISTR2=\"PS1\" ISTR3=\"\" ISTR4=\"\" ISTR5=\"\" ISTR6=\"\" ISTR7=\"\" ISTR8=\"\" ISTR9=\"\" NUMATTRS=0

Step 6: SMSDBMON detects a change in DistributionPoints table, and notifies DistMgr to install the DP

SMSDBMON notifies DistMgr to install the DP

SMSDBMON, continuing its monitoring role, detects changes within the DistributionPoints table, specifically those resulting from Step 4a where HMAN inserted new DP information. Upon detecting these changes, SMSDBMON instructs DistMgr (Distribution Manager) to initiate the Distribution Point installation process. This instruction is conveyed by dropping a \<DPID>.INS file into the DistMgr.box folder. The \<DPID> is a unique identifier for the Distribution Point. The log entries in SMSDBMON.log demonstrating this notification are as follows:

SMS_DATABASE_NOTIFICATION_MONITOR RCV: INSERT on DistributionPoints for DistributionPoints_Ins [32 ][1027928]
SMS_DATABASE_NOTIFICATION_MONITOR SND: Dropped E:\\ConfigMgr\\inboxes\\distmgr.box\\32.INS [1027928]

In this example, ‘32’ represents the Distribution Point ID. To ascertain the DP name associated with this ID, you can execute the following SQL query against the Configuration Manager database:

SELECT * FROM DistributionPoints WHERE DPID = 32

Step 7: DistMgr wakes up to process the INS file and starts a DP upgrade worker thread to install the DP

DistMgr wakes up to process the INS file

DistMgr, upon detecting the .INS file in its inbox, awakens and begins processing it. It recognizes this file as a trigger to initiate a Distribution Point installation or upgrade. DP installations and upgrades are handled by the main DP upgrade processing thread within DistMgr. To perform the actual DP installation tasks, this main thread utilizes worker threads from the DP upgrade processing thread pool. This thread pool is configured to a maximum of 50 threads by default, allowing for concurrent DP operations.

In the log entries below from DistMgr.log, you can observe the main DP upgrade processing thread (Thread ID 2860) initiating a new worker thread (Thread ID 4788 or 0x12b4 in hexadecimal) specifically for the DP installation process:

SMS_DISTRIBUTION_MANAGER 2860 (0xb2c) DP upgrade processing thread: Upgrading DP with ID 32. Thread 0x12b4. Used 1 threads out of 50.

Subsequently, the newly spawned DP processing worker thread (Thread ID 4788) commences the installation process for DPID 32, which corresponds to the new Distribution Point being installed:

SMS_DISTRIBUTION_MANAGER 4788 (0x12b4) ~Processing 32.INS
SMS_DISTRIBUTION_MANAGER 4788 (0x12b4) ~DPID 32 - NAL Path [\"Display=\\\\PS1DP1.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP1.CONTOSO.COM\\ , ServerName = PS1DP1.CONTOSO.COM, DPDrive = , IsMulticast = 0, PXE = 0, RemoveWDS = 0

Step 8: DistMgr DP upgrade worker thread installs the DP

DistMgr DP upgrade worker thread installs the DP

At this stage, the DistMgr worker thread (Thread ID 4788 in this example) initiates the core Distribution Point installation actions. This involves a series of tasks to properly set up the DP role on the target server. These tasks include:

  • File Copying: Transferring necessary Configuration Manager files to the Distribution Point server.
  • IIS Installation (if specified): Installing Internet Information Services (IIS) if the DP is configured to support HTTP or HTTPS communication.
  • Component Installation: Installing prerequisite components like MSXML and the Visual C++ Redistributable packages.
  • DP WMI Provider Installation: Installing the Configuration Manager Distribution Point WMI provider, enabling WMI-based management of the DP.
  • Virtual Directory Creation and IIS Configuration: Creating necessary virtual directories in IIS and configuring IIS settings for DP functionality.
  • Registry Updates: Modifying registry settings on the DP server to reflect the DP configuration.
  • PXE Role Installation (if configured): Installing the Pre-boot Execution Environment (PXE) role if the DP is enabled for PXE boot support.

Note that the log entries below from DistMgr.log are truncated for brevity, focusing on key actions:

SMS_DISTRIBUTION_MANAGER 4788 (0x12b4) Installed ISAPI on PS1DP1.CONTOSO.COM, copied E:\\ConfigMgr\\bin\\x64\\..\\x64\\smsfileisapi.dll to \\\\PS1DP1.CONTOSO.COM\\ADMIN$\\system32\\inetsrv\\smsfileisapi.dll
SMS_DISTRIBUTION_MANAGER 4788 (0x12b4) ~Successfully created share SMS_DP$ on server PS1DP1.CONTOSO.COM
SMS_DISTRIBUTION_MANAGER 4788 (0x12b4) ~OS version 6.3.9600: installed IIS on remote server PS1DP1.CONTOSO.COM.
SMS_DISTRIBUTION_MANAGER 4788 (0x12b4) MSXML 6.0 is configured on DP PS1DP1.CONTOSO.COM successfully
SMS_DISTRIBUTION_MANAGER 4788 (0x12b4) Run command 'C:\\SMS_DP$\\sms\\bin\\vcredist_x64.exe /q /norestart /log \"C:\\SMS_DP$\\sms\\bin\\vcredist.log\"' to install VC redist
SMS_DISTRIBUTION_MANAGER 4788 (0x12b4) ~Successfully installed DP WMI provider on the remote distribution point
SMS_DISTRIBUTION_MANAGER 4788 (0x12b4) Configure IIS virtual directories successfully on the distribution point PS1DP1.CONTOSO.COM
SMS_DISTRIBUTION_MANAGER 4788 (0x12b4) ConfigureDP
SMS_DISTRIBUTION_MANAGER 4788 (0x12b4) DP registry settings have been successfully updated on PS1DP1.CONTOSO.COM
SMS_DISTRIBUTION_MANAGER 4788 (0x12b4) **ConfigurePXE**
SMS_DISTRIBUTION_MANAGER 4788 (0x12b4) ~[\"Display=\\\\PS1DP1.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP1.CONTOSO.COM\\ is a Pull DP

Tip: Once you reach Step 8, monitoring the installation progress becomes significantly easier by filtering the log file (DistMgr.log) for the specific worker thread ID (4788 in this example). This focused filtering reduces log noise and allows for easier tracking of installation tasks.

Step 9 (optional): PXE Provider Role and Windows Deployment Services is installed on the DP (if enabled)

PXE Provider Role and Windows Deployment Services Installation

If the Distribution Point is configured to support PXE boot, the PXE installation process is initiated when the ConfigurePXE entry is logged in DistMgr.log (as seen in Step 8). At this point, the SMSDPProv.log file on the Distribution Point server becomes the primary log for monitoring PXE/WDS installation progress. This log provides detailed information about the installation of Windows Deployment Services (WDS) and the PXE provider role.

CcmInstallPXE
Running: C:\\SMS_DP$\\sms\\bin\\vcredist_x64.exe /q /norestart /log \"C:\\SMS_DP$\\sms\\bin\\vcredist.log\"
Waiting for the completion of: C:\\SMS_DP$\\sms\\bin\\vcredist_x64.exe /q /norestart /log \"C:\\SMS_DP$\\sms\\bin\\vcredist.log\"
Run completed for: C:\\SMS_DP$\\sms\\bin\\vcredist_x64.exe /q /norestart /log \"C:\\SMS_DP$\\sms\\bin\\vcredist.log\"
Created the DP mutex key for WDS.
Finding Wimgapi.Dll
MsiEnumRelatedProducts failed
FindProduct failed; 0x80070103
Found C:\\Windows\\system32\\wimgapi.dll
Wimgapi.dll is already installed.
Path to smsdp.dll is 'C:\\SMS_DP$\\sms\\bin\\smsdp.dll' 05-11-2016 14:36:57.000    PXE performance counters have been initialized
Failed to open WDS service.
WDS is NOT INSTALLED
Installing WDS.
Running: ServerManagerCmd.exe -i WDS -a
Failed (2) to run: ServerManagerCmd.exe -i WDS -a
Running: PowerShell.exe -Command Import-Module ServerManager; Get-WindowsFeature WDS; Add-WindowsFeature WDS
Waiting for the completion of: PowerShell.exe -Command Import-Module ServerManager; Get-WindowsFeature WDS; Add-WindowsFeature WDS
Run completed for: PowerShell.exe -Command Import-Module ServerManager; Get-WindowsFeature WDS; Add-WindowsFeature WDS
Successfully installed WDS.
Machine is running Windows Server. (NTVersion=0X603, ServicePack=0)
WDS is INSTALLED
Setting TFTP config key as: System\\CurrentControlSet\\Services\\WDSSERVER\\Providers\\WDSTFTP
Configuring TFTP read filters
SetupComplete is set to 0
REMINST not set in WDS
WDS is NOT Configured
Share (REMINST) does not exist. (NetNameNotFound) (0x00000906)
GetFileSharePath failed; 0x80070906
REMINST share does not exist. Need to create it.
Enumerating drives A through Z for the NTFS drive with the most free space.
Drive 'C:' is the best drive for the SMS installation directory.
Creating REMINST share to point to: C:\\RemoteInstall
Succesfully created share REMINST
Removing existing PXE related directories
Registering WDS provider: SourceDir: C:\\SMS_DP$\\sms\\bin
Registering WDS provider: ProviderPath: C:\\SMS_DP$\\sms\\bin\\smspxe.dll
DoPxeProviderRegister 05-11-2016 14:37:10.000    PxeLoadWdsPxe
Loading wdspxe.dll from C:\\Windows\\system32\\wdspxe.dll
wdspxe.dll is loaded
PxeProviderRegister has suceeded (0x00000000)
Disabling WDS/RIS functionality
Found privilege otifyPrivilege on service WDSServer
Found privilege SeRestorePrivilege on service WDSServer
Found privilege SeBackupPrivilege on service WDSServer
Found privilege SeSecurityPrivilege on service WDSServer
Privilege SeTakeOwnershipPrivilege NOT found service WDSServer
ChangeServiceConfig2 succeeded for WDSServer. Added privilege SeTakeOwnershipPrivilege
ChangeServiceConfig succeeded for WDSServer. StartType: 0x2
WDSServer status is 1
WDSServer is NOT STARTED
Failed to restart WDS service
Running: WDSUTIL.exe /Initialize-Server /REMINST:\"C:\\RemoteInstall\"
Waiting for the completion of: WDSUTIL.exe /Initialize-Server /REMINST:\"C:\\RemoteInstall\"
Run completed for: WDSUTIL.exe /Initialize-Server /REMINST:\"C:\\RemoteInstall\"
Machine is running Windows Server. (NTVersion=0X603, ServicePack=0)
ProcessBootImages failed; 0x80070003
CcmInstallPXE: Deleting the DP mutex key for WDS.
Installed PXE

Step 10: DP installation finishes successfully

DP installation finishes successfully

Upon successful completion of the Distribution Point installation process, the worker thread responsible for the installation raises a status message. This status message, identified by ID 2399, indicates that the installation or upgrade of the Distribution Point on the specified computer has been successfully completed. This message serves as a confirmation that the DP is now operational and ready to serve content. The status message is logged in DistMgr.log:

SMS_DISTRIBUTION_MANAGER 4788 (0x12b4) **STATMSG: ID=2399** SEV=I LEV=M SOURCE=\"SMS Server\" COMP=\"SMS_DISTRIBUTION_MANAGER\" SYS=PS1SITE.CONTOSO.COM SITE=PS1 PID=1956 TID=4788 GMTDATE=Wed May 11 18:36:58.062 2016 ISTR0=\"[\"Display=\\\\PS1DP1.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP1.CONTOSO.COM\\\" ISTR1=\"PS1DP1.CONTOSO.COM\" ISTR2=\"\" ISTR3=\"\" ISTR4=\"\" ISTR5=\"\" ISTR6=\"\" ISTR7=\"\" ISTR8=\"\" ISTR9=\"\" NUMATTRS=1 AID0=404 AVAL0=\"[\"Display=\\\\PS1DP1.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP1.CONTOSO.COM\\\"

Step 11 (for Pull DPs only): DistMgr upgrade processing thread instructs DP WMI Provider to install pull DP by running pulldp.msi

DistMgr instructs DP WMI Provider to install pull DP

If the Distribution Point being installed is configured as a Pull DP, an additional step is involved. The DistMgr upgrade processing thread initiates another DP upgrade worker thread specifically to handle the Pull DP installation. This new worker thread then instructs the SMS DP Provider on the target server to execute pulldp.msi. This MSI package is responsible for installing the Pull DP component.

SMS_DISTRIBUTION_MANAGER 2188 (0x88c) Upgrading PullDP with ID 33. Thread 0x9c0. Used 1 threads out of 50.
SMS_DISTRIBUTION_MANAGER 2496 (0x9c0) ~DPID 33 - NAL Path [\"Display=\\\\PS1DP2.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP2.CONTOSO.COM\\ , ServerName = PS1DP2.CONTOSO.COM, DPDrive = , IsMulticast = 0, PXE = 1, RemoveWDS = 0
SMS_DISTRIBUTION_MANAGER 2496 (0x9c0) ConfigurePullDP
SMS_DISTRIBUTION_MANAGER 2496 (0x9c0) ~NAL Path [\"Display=\\\\PS1DP2.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP2.CONTOSO.COM\\ is a Pull DP
SMS_DISTRIBUTION_MANAGER 2496 (0x9c0) For server PS1DP2.CONTOSO.COM processor architecture is x64~
SMS_DISTRIBUTION_MANAGER 2496 (0x9c0) File '\\\\PS1DP2.CONTOSO.COM\\SMS_DP$\\sms\\bin\\pulldp.msi' is signed and trusted.
SMS_DISTRIBUTION_MANAGER 2496 (0x9c0) File '\\\\PS1DP2.CONTOSO.COM\\SMS_DP$\\sms\\bin\\pulldp.msi' is signed with MS root cert.
SMS_DISTRIBUTION_MANAGER 2496 (0x9c0) Installing PullDP, check \\\\PS1DP2.CONTOSO.COM\\SMS_DP$\\sms\\logs\\smsdpprov.log and \\\\PS1DP2.CONTOSO.COM\\SMS_DP$\\sms\\logs\\pulldp_install.log
SMS_DISTRIBUTION_MANAGER 2496 (0x9c0) PullDP [\"Display=\\\\PS1DP2.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP2.CONTOSO.COM\\ is marked Installed

Simultaneously, the SMSDPProv.log file on the Pull DP server will record the initiation of the Pull DP installation:

2020 (0x7e4) Started process C:\\SMS_DP$\\sms\\bin\\vcredist_x64.exe /q /norestart /l C:\\SMS_DP$\\sms\\logs\\vcredist.log
2020 (0x7e4) Run completed for: C:\\SMS_DP$\\sms\\bin\\vcredist_x64.exe /q /norestart /l C:\\SMS_DP$\\sms\\logs\\vcredist.log
2020 (0x7e4) Started process msiexec.exe /quiet /i C:\\SMS_DP$\\sms\\bin\\pulldp.msi /log C:\\SMS_DP$\\sms\\logs\\pulldp_install.log

In scenarios where the Pull DP is being installed on a server that already has the Configuration Manager client installed, the installation command utilized is slightly different:

4744 (0x1288) Started process E:\\SMS_DP$\\sms\\bin\\ccmsetup.exe /autoupgrade /upgradetolatest /postinstallmsi:\"E:\\SMS_DP$\\sms\\bin\\pulldp.msi;E:\\SMS_DP$\\sms\\logs\\pulldp_install.log\"

To monitor the progress of the Pull DP installation, the MSI log file pulldp_install.log is the primary source of information. This log file contains detailed steps and potential error messages during the Pull DP component installation.

DP upgrade

The Distribution Point upgrade process is a critical operation, especially after upgrading a Configuration Manager site or applying updates. It ensures that Distribution Points are running the latest version of the DP components. The steps outlined below describe a typical DP upgrade scenario, such as after upgrading a Configuration Manager 1511 site to version 1602. It’s worth noting that the core process remains similar when applying service packs or cumulative updates across various Configuration Manager 2012 and later versions.

Step 1: Upgrade results in a site reset, which reinstalls DistMgr component and drops resetdps.trn file in DistMgr.box

Upgrade results in a site reset

After a Configuration Manager site upgrade is successfully completed, a site reset is initiated. This site reset is a systematic process designed to reinstall all Configuration Manager components, ensuring they are correctly configured and synchronized after the upgrade. As part of this component reinstallation, Site Component Manager (SiteComp) reinstalls Distribution Manager (DistMgr). During the DistMgr reinstallation, SiteComp creates a resetdps.trn file within the DistMgr.box inbox folder. This file serves as a trigger, instructing DistMgr to initiate the upgrade process for all Distribution Points within the site. Log entries in SiteComp.log illustrating this step are:

SMS_SITE_COMPONENT_MANAGER    4364 (0x110c)    Reinstalling component SMS_DISTRIBUTION_MANAGER...
SMS_SITE_COMPONENT_MANAGER    4364 (0x110c)    Updating DistributionPoints table
SMS_SITE_COMPONENT_MANAGER    4364 (0x110c)    Creating E:\\ConfigMgr\\inboxes\\distmgr.box\\resetdps.trn file.

Step 2: DistMgr starts upgrade of all the DPs after detecting the resetdps.trn file

DistMgr starts upgrade of all the DPs

Upon restarting after reinstallation, Distribution Manager (DistMgr) immediately scans its inbox. It detects the presence of the resetdps.trn file created in Step 1. Recognizing this file as a signal to upgrade all Distribution Points within the site, DistMgr initiates the DP upgrade process. The following log entries from DistMgr.log show DistMgr detecting the trigger file and starting the upgrade process:

SMS_DISTRIBUTION_MANAGER    3048 (0xbe8)    SMS_EXECUTIVE started SMS_DISTRIBUTION_MANAGER as thread ID 4984 (0x1378).
SMS_DISTRIBUTION_MANAGER    4984 (0x1378)   Found file resetdps.trn, will upgrade all the Distribution Points

Step 3: DistMgr upgrade processing thread starts DP upgrade worker threads to perform the DP upgrade

DistMgr upgrade processing thread starts DP upgrade worker threads

DistMgr’s upgrade processing thread is the central orchestrator for DP upgrades. Upon starting, it initiates DP upgrade worker threads. These worker threads are responsible for performing the actual upgrade tasks on individual Distribution Points. To optimize the upgrade process and reduce overall upgrade time, multiple worker threads operate concurrently, allowing for parallel upgrades of multiple DPs. By default, DistMgr can launch up to 50 worker threads for DP upgrades. This limit is configurable via the DPUpgradeThreadLimit property for the SMS_DISTRIBUTION_MANAGER component within the site control file.

Log entries in DistMgr.log demonstrate the DP upgrade processing thread starting and launching multiple worker threads for DP upgrades:

SMS_DISTRIBUTION_MANAGER    4984 (0x1378)    ~Starting the DP upgrade processing thread, thread ID = 0x7C (124)
SMS_DISTRIBUTION_MANAGER    124 (0x7c)    DP upgrade processing thread: Started, will perform any pending work then will wait for additional work.
SMS_DISTRIBUTION_MANAGER    124 (0x7c)    DP upgrade processing thread: Upgrading DP with ID 1. Thread 0x13d0. Used 1 threads out of 50.
SMS_DISTRIBUTION_MANAGER    124 (0x7c)    DP upgrade processing thread: Upgrading DP with ID 5. Thread 0x8c8. Used 2 threads out of 50.
SMS_DISTRIBUTION_MANAGER    124 (0x7c)    DP upgrade processing thread: Upgrading DP with ID 14. Thread 0x100c. Used 3 threads out of 50.

Each individual DP upgrade worker thread then begins upgrading a specific Distribution Point. In the example below, we will focus on worker thread 2248 (0x8c8), which is responsible for upgrading the DP with DPID 5:

SMS_DISTRIBUTION_MANAGER    2248 (0x8c8)    ~Processing 5.INS
SMS_DISTRIBUTION_MANAGER    2248 (0x8c8)    ~DPID 5 - NAL Path [\"Display=\\\\PS1SYS.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1SYS.CONTOSO.COM\\ , ServerName = PS1SYS.CONTOSO.COM, DPDrive = , IsMulticast = 0, PXE = 1, RemoveWDS = 0

Step 4: DP upgrade worker thread performs the DP Upgrade

DP upgrade worker thread performs the DP Upgrade

The DP upgrade worker thread now executes the actual upgrade process on the designated Distribution Point. This process is fundamentally the same as the DP installation process detailed in Step 8 of the DP installation section. It involves updating files, components, and configurations on the DP server to bring it to the latest version.

SMS_DISTRIBUTION_MANAGER    2248 (0x8c8)    Installed ISAPI on PS1SYS.CONTOSO.COM, copied E:\\ConfigMgr\\bin\\x64\\..\\x64\\smsfileisapi.dll to \\\\PS1SYS.CONTOSO.COM\\ADMIN$\\system32\\inetsrv\\smsfileisapi.dll
SMS_DISTRIBUTION_MANAGER    2248 (0x8c8)    DP share SMS_DP$ already exist on the remote DP~
SMS_DISTRIBUTION_MANAGER    2248 (0x8c8)    Install Internet server= 2
SMS_DISTRIBUTION_MANAGER    2248 (0x8c8)    Skipping OS configuration for distribution point [\"Display=\\\\PS1SYS.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1SYS.CONTOSO.COM\\. You should install and configure IIS manually. Please ensure RDC is also enabled.
SMS_DISTRIBUTION_MANAGER    2248 (0x8c8)    MSXML 6.0 is configured on DP PS1SYS.CONTOSO.COM successfully
SMS_DISTRIBUTION_MANAGER    2248 (0x8c8)    Run command 'C:\\SMS_DP$\\sms\\bin\\vcredist_x64.exe /q /norestart /log \"C:\\SMS_DP$\\sms\\bin\\vcredist.log\"' to install VC redist
SMS_DISTRIBUTION_MANAGER    2248 (0x8c8)    ~Successfully installed DP WMI provider on the remote distribution point
SMS_DISTRIBUTION_MANAGER    2248 (0x8c8)    Configure IIS virtual directories successfully on the distribution point PS1SYS.CONTOSO.COM
SMS_DISTRIBUTION_MANAGER    2248 (0x8c8)    ConfigureDP
SMS_DISTRIBUTION_MANAGER    2248 (0x8c8)    DP registry settings have been successfully updated on PS1SYS.CONTOSO.COM
SMS_DISTRIBUTION_MANAGER    2248 (0x8c8)    ConfigurePXE

Step 5: DP upgrade worker threads resets the pull DP installation state

DP upgrade worker threads resets the pull DP installation state

The DP upgrade worker thread performs a reset of the installation state specifically for Pull Distribution Points. This action is logged even for Standard DPs, although it’s not directly relevant to them. The purpose of this reset is to ensure that the Pull DP can be correctly updated during the upgrade process. By resetting the state, the upgrade process can reliably apply necessary changes to the Pull DP component.

SMS_DISTRIBUTION_MANAGER 2248 (0x8c8) PullDP [\"Display=\\\\PS1SYS.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1SYS.CONTOSO.COM\\ is marked Uninstalled

Step 6: DP Upgrade finishes successfully

DP Upgrade finishes successfully

Upon successful completion of the Distribution Point upgrade, the worker thread responsible for the upgrade raises a status message. Similar to DP installation, this status message, with ID 2399, signifies that the upgrade of the Distribution Point on the specified computer has been successfully completed. This message confirms that the DP is now upgraded and running the latest version of DP components. The status message is logged in DistMgr.log:

SMS_DISTRIBUTION_MANAGER    2248 (0x8c8)    STATMSG: ID=2399 SEV=I LEV=M SOURCE=\"SMS Server\" COMP=\"SMS_DISTRIBUTION_MANAGER\" SYS=PS1SITE.CONTOSO.COM SITE=PS1 PID=3444 TID=2248 GMTDATE=Fri Apr 08 22:31:56.637 2016 ISTR0=\"[\"Display=\\\\PS1SYS.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1SYS.CONTOSO.COM\\\" ISTR1=\"PS1SYS.CONTOSO.COM\" ISTR2=\"\" ISTR3=\"\" ISTR4=\"\" ISTR5=\"\" ISTR6=\"\" ISTR7=\"\" ISTR8=\"\" ISTR9=\"\" NUMATTRS=1 AID0=404 AVAL0=\"[\"Display=\\\\PS1SYS.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1SYS.CONTOSO.COM\\\"

Step 7(Pull DPs only): DP worker thread starts instructs DP WMI Provider to upgrade the pull DP

DP worker thread instructs DP WMI Provider to upgrade the pull DP

After a Pull Distribution Point is marked as uninstalled (in Step 5), the DP upgrade worker thread proceeds to instruct the DP WMI Provider to perform the actual Pull DP upgrade. This step is specific to Pull DPs and ensures that the Pull DP component is also upgraded to the latest version.

SMS_DISTRIBUTION_MANAGER    2032 (0x7f0)    ConfigurePullDP
SMS_DISTRIBUTION_MANAGER    2032 (0x7f0)    ~NAL Path [\"Display=\\\\PS1SYS.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1SYS.CONTOSO.COM\\ is a Pull DP
SMS_DISTRIBUTION_MANAGER    2032 (0x7f0)    For server PS1SYS.CONTOSO.COM processor architecture is x64~
SMS_DISTRIBUTION_MANAGER    2032 (0x7f0)    File '\\\\PS1SYS.CONTOSO.COM\\SMS_DP$\\sms\\bin\\pulldp.msi' is signed and trusted.
SMS_DISTRIBUTION_MANAGER    2032 (0x7f0)    File '\\\\PS1SYS.CONTOSO.COM\\SMS_DP$\\sms\\bin\\pulldp.msi' is signed with MS root cert.
SMS_DISTRIBUTION_MANAGER    2032 (0x7f0)    Installing PullDP, check \\\\PS1SYS.CONTOSO.COM\\SMS_DP$\\sms\\logs\\smsdpprov.log and \\\\PS1SYS.CONTOSO.COM\\SMS_DP$\\sms\\logs\\pulldp_install.log
SMS_DISTRIBUTION_MANAGER    2032 (0x7f0)    PullDP [\"Display=\\\\PS1SYS.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1SYS.CONTOSO.COM\\ is marked Installed

At this stage, the SMSDPProv.log file on the Pull DP server will log the initiation of the Pull DP component installation, which is part of the upgrade process:

2920 (0xb68)    Started process F:\\SMS_DP$\\sms\\bin\\vcredist_x64.exe /q /norestart /l F:\\SMS_DP$\\sms\\logs\\vcredist.log
2920 (0xb68)    Run completed for: F:\\SMS_DP$\\sms\\bin\\vcredist_x64.exe /q /norestart /l F:\\SMS_DP$\\sms\\logs\\vcredist.log
2920 (0xb68)    Started process msiexec.exe /quiet /i F:\\SMS_DP$\\sms\\bin\\pulldp.msi /log F:\\SMS_DP$\\sms\\logs\\pulldp_install.log

Similar to Pull DP installation, when upgrading a Pull DP on a server with the Configuration Manager client, the command used is:

4744 (0x1288) Started process E:\\SMS_DP$\\sms\\bin\\ccmsetup.exe /autoupgrade /upgradetolatest /postinstallmsi:\"E:\\SMS_DP$\\sms\\bin\\pulldp.msi;E:\\SMS_DP$\\sms\\logs\\pulldp_install.log\"

For monitoring the Pull DP upgrade progress, the pulldp_install.log MSI log file is the primary source of detailed information, including any errors encountered during the upgrade process.

DP change

Modifying the properties of a Distribution Point within the Configuration Manager console triggers a series of background processes to apply these changes. The steps below outline what happens when you alter DP properties, using the example of changing the DP description from “PS1 Standard DP” to “PS1 Standard DP - TestPropertyChange1” in the DP Properties > General tab.

Step 1: Admin console changes the instance of SMS_SCI_SysResUse WMI class for the modified DP

Admin console changes the instance of SMS_SCI_SysResUse WMI class

When an administrator modifies Distribution Point properties through the Configuration Manager console, the console updates the corresponding instance of the SMS_SCI_SysResUse WMI class within the SMS Provider namespace. This WMI class holds configuration information for the DP. The SMSProv.log file records this modification:

SMS Provider    4460 (0x116c)    PutInstanceAsync SMS_SCI_SysResUse~
SMS Provider    4460 (0x116c)    CExtProviderClassObject::DoPutInstanceInstance~
SMS Provider    4460 (0x116c)    INFO: 'PS1DP1.CONTOSO.COM' is a valid FQDN.
SMS Provider    4460 (0x116c)    Auditing: User CONTOSO\\Admin modified an instance of class SMS_SCI_SysResUse.~

Along with the WMI instance modification, the SMS Provider also updates the Configuration Manager database. This database update ensures that the changes made in the console are persisted and reflected in the system’s configuration.

update vSMS_SC_SysResUse_Properties set ID = 72057594037928006, Name = N'Description', Value1 = N'PS1 Standard DP - TestPropertyChange1', Value2 = N'', Value3 = 0 where ID = 72057594037928006 and Name = N'Description'

Step 2: SMSDBMON detects the site control change and notifies HMAN to process the site control file

SMSDBMON detects the site control change

SMSDBMON, constantly monitoring the Configuration Manager database, detects changes to site control file related tables. This detection includes the modifications made in Step 1. Upon detecting a change (RCV in logs), SMSDBMON takes action to notify relevant components. In this case, it notifies HMAN (Hierarchy Manager) to process the site control file, sending an update notification (SND in logs). The log entries from SMSDBMON.log illustrate this process:

SMS_DATABASE_NOTIFICATION_MONITOR    3120 (0xc30)    RCV: UPDATE on Sites for Sites_AddUpd_HMAN [PS1  ][1031575]
SMS_DATABASE_NOTIFICATION_MONITOR    3120 (0xc30)    SND: Dropped E:\\ConfigMgr\\inboxes\\hman.box\\PS1.SSU  [1031575]

Step 3: HMAN processes the site control file and processes all DPs

HMAN processes the site control file and processes all DPs

HMAN, upon receiving the site control update (SSU) file from SMSDBMON, wakes up and starts processing the site control file. During this process, HMAN examines all Distribution Points, checking for any changes or newly added DPs. For a more detailed explanation of this step, refer to Step 4 in the DP installation section. Log entries from HMAN.log showing DP property change processing:

SMS_HIERARCHY_MANAGER    4912 (0x1330)    ~Processing site control file: Site PS1
SMS_HIERARCHY_MANAGER    4912 (0x1330)    ~Server Info of site PS1 has not changed.HMAN will not update the DPInfo table in the database.
SMS_HIERARCHY_MANAGER    4912 (0x1330)    ~Distribution Points of site PS1 have changed. Update the DistributionPoints table in the database.
SMS_HIERARCHY_MANAGER    4912 (0x1330)    ~Updated DP [\"Display=\\\\PS1DP1.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP1.CONTOSO.COM\\. DBCRC:151AC30,NewCRC:5EAEB9DF,Action:0,PDP:0,PullDP:0
SMS_HIERARCHY_MANAGER    4912 (0x1330)    SQL>>>update DistributionPoints set IsPullDP = 0, IsPeerDP = 0, SMSSiteCode = 'PS1', IsBITS = 0, PreStagingAllowed = 0, IsMulticast = 0, AnonymousEnabled = 0, TokenAuthEnabled = 0, SslState = 0, DPType = 0, Priority = 200, TransferRate = 3972, DPFlags = 0, IsProtected = 1, MinFreeSpace = 50, DPDrive = N'', IsPXE = 0, IsActive = 0, ResponseDelay = 0, UdaSetting = 0, BindPolicy = 0, SupportUnknownMachines = 0, CertificateType = 0, IdentityGUID = N'23a72b6c-eace-4218-929c-4c80638c031e', BindExcept = N'', PXEPassword = N'', Account = N'', Description = N'PS1 Standard DP - TestPropertyChange1', DPCRC = N'5EAEB9DF', Action = 0 where NALPath = N'[\"Display=\\\\PS1DP1.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP1.CONTOSO.COM\\' ~
SMS_HIERARCHY_MANAGER    4912 (0x1330)    DP cert query: EXEC spUpdateDPCert N'PS1DP1.CONTOSO.COM', N'23a72b6c-eace-4218-929c-4c80638c031e', …
SMS_HIERARCHY_MANAGER    4912 (0x1330)    ~Will not update DP [\"Display=\\\\PS1SITE.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1SITE.CONTOSO.COM\\. DBCRC:13639BB,NewCRC:13639BB,Action:0,PDP:0,PullDP:0
SMS_HIERARCHY_MANAGER    4912 (0x1330)    ~Will not update DP [\"Display=\\\\PS1SQL.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1SQL.CONTOSO.COM\\. DBCRC:DB8F08DA,NewCRC:DB8F08DA,Action:0,PDP:1
SMS_HIERARCHY_MANAGER    4912 (0x1330)    ~Will not update DP [\"Display=\\\\PS1SYS.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1SYS.CONTOSO.COM\\. DBCRC:D9EAF006,NewCRC:D9EAF006,Action:0,PDP:0,PullDP:0

Important Note: Similar to DP installation and upgrade processes, if HMAN encounters any errors while inserting or updating DP information, the entire transaction is rolled back. This rollback mechanism maintains database integrity. Persistent failures can prevent DP property changes from being applied successfully.

Step 4: HMAN finishes processing the site control file

HMAN finishes processing the site control file

Upon completing the site control file processing, HMAN generates a status message. This message, with ID 3306, indicates that Hierarchy Manager has successfully processed the site control file (in this example, E:\\ConfigMgr\\inboxes\\hman.box\\PS1.SCU). This confirms that the DP property changes have been successfully applied to the Configuration Manager site. The status message is logged in HMAN.log:

SMS_HIERARCHY_MANAGER    4912 (0x1330)    STATMSG: ID=3306 SEV=I LEV=M SOURCE=\"SMS Server\" COMP=\"SMS_HIERARCHY_MANAGER\" SYS=PS1SITE.CONTOSO.COM SITE=PS1 PID=4224 TID=4912 GMTDATE=Fri May 13 16:41:55.881 2016 ISTR0=\"E:\\ConfigMgr\\inboxes\\hman.box\\PS1.SCU\" ISTR1=\"ConfigMgr Primary Site 1\" ISTR2=\"PS1\" ISTR3=\"\" ISTR4=\"\" ISTR5=\"\" ISTR6=\"\" ISTR7=\"\" ISTR8=\"\" ISTR9=\"\" NUMATTRS=0

DP removal

Removing a Distribution Point role from a site system in the Configuration Manager console initiates a series of steps to uninstall the DP and clean up associated components. The following steps outline the DP removal process.

Step 1: Admin console deletes the instance of SMS_SCI_SysResUse WMI class for the deleted DP

Admin console deletes the instance of SMS_SCI_SysResUse WMI class for the deleted DP

When an administrator initiates the removal of a Distribution Point role from a site system, the admin console deletes the corresponding instance of the SMS_SCI_SysResUse WMI class within the SMS Provider namespace. This WMI class instance represents the DP role. The SMSProv.log file captures this deletion:

SMS Provider    3652 (0xe44)    DeleteInstanceAsync SMS_SCI_SysResUse.FileType=2,ItemName=\"[\"Display=\\\\PS1DP2.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP2.CONTOSO.COM\\,SMS Distribution Point\",ItemType=\"System Resource Usage\",SiteCode=\"PS1\"~
SMS Provider    3652 (0xe44)    Requested class =SMS_SCI_SysResUse~
SMS Provider    3652 (0xe44)    CExtProviderClassObject::DoDeleteInstance~
SMS Provider    3652 (0xe44)    Auditing: User CONTOSO\\Admin deleted an instance of class SMS_SCI_SysResUse.~

In conjunction with the WMI instance deletion, the SMS Provider also removes the DP record from the Configuration Manager database. This database deletion ensures that the DP is no longer tracked as part of the site system.

delete vSMS_SC_SysResUse from vSMS_SC_SysResUse where SiteNumber = 1 and RoleName = N'SMS Distribution Point' and NALPath = N'[\"Display=\\\\PS1DP2.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP2.CONTOSO.COM\\'\

Step 2: SMSDBMON detects the Site Control change and notifies HMAN to process the site control file

SMSDBMON detects the Site Control change

SMSDBMON detects changes in site control file related tables, including the deletion performed in Step 1. Upon detecting this change (RCV in logs), SMSDBMON notifies HMAN to process the site control file. This notification is sent by dropping a file in the HMAN inbox (SND in logs). The log entries in SMSDBMON.log detail this notification process:

SMS_DATABASE_NOTIFICATION_MONITOR    3120 (0xc30)    RCV: UPDATE on SiteControl for SiteControl_AddUpd_HMAN [PS1  ][1031673]
SMS_DATABASE_NOTIFICATION_MONITOR    3120 (0xc30)    SND: Dropped E:\\ConfigMgr\\inboxes\\hman.box\\PS1.SCU  [1031673]

Step 3: HMAN processes the site control file and marks the DP as deleted in DistributionPoints table

HMAN processes the site control file and marks the DP as deleted

HMAN, triggered by the SCU file from SMSDBMON, processes the site control file. During this processing, HMAN recognizes that the DP role has been removed. Consequently, HMAN marks the DP as Deleted (Action = 3) in the DistributionPoints table. In addition to this, HMAN removes the DP entry from the SysResList table. To initiate the DP removal process in DistMgr, HMAN inserts a row into the DPNotification table, signaling a DP change to SMSDBMON. Log entries in HMAN.log showing these actions:

SMS_HIERARCHY_MANAGER    4912 (0x1330)    ~Processing site control file: Site PS1
SMS_HIERARCHY_MANAGER    4912 (0x1330)    Site system no longer in use: PS1 PS1DP2.CONTOSO.COM SMS Distribution Point
SMS_HIERARCHY_MANAGER    4912 (0x1330)    SQL>>> DELETE FROM SysResList WHERE SiteCode=N'PS1' AND RoleName=N'SMS Distribution Point' AND NALPath=N'[\"Display=\\\\PS1DP2.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP2.CONTOSO.COM\\'
SMS_HIERARCHY_MANAGER    4912 (0x1330)    ~Distribution Points of site PS1 have changed. Update the DistributionPoints table in the database.
SMS_HIERARCHY_MANAGER    4912 (0x1330)    SQL>>>update DistributionPoints set Action = 3, State = 0 where DPID = 34
SMS_HIERARCHY_MANAGER    4912 (0x1330)    SQL>>>delete vSMS_SC_Address from vSMS_SC_Address where SiteNumber = 1 and DestinationSiteCode = N'PS1DP2.CONTOSO.COM' and AddressType = N'MS_LAN'~
SMS_HIERARCHY_MANAGER    4912 (0x1330)    SQL>>>insert DPNotification (DPID, TimeKey) values (34, GetDate())

Important Note: As with other DP operations, if HMAN encounters failures during DP processing, the entire transaction is rolled back. This rollback mechanism ensures data consistency and prevents incomplete DP removals. Persistent failures can lead to issues where DPs are not fully removed from the system.

Upon completing the site control file processing, HMAN generates a status message with ID 3306, confirming successful processing of the site control file:

SMS_HIERARCHY_MANAGER    4912 (0x1330)    STATMSG: ID=3306 SEV=I LEV=M SOURCE=\"SMS Server\" COMP=\"SMS_HIERARCHY_MANAGER\" SYS=PS1SITE.CONTOSO.COM SITE=PS1 PID=4224 TID=4912 GMTDATE=Fri May 13 17:43:17.607 2016 ISTR0=\"E:\\ConfigMgr\\inboxes\\hman.box\\PS1.SCU\" ISTR1=\"ConfigMgr Primary Site 1\" ISTR2=\"PS1\" ISTR3=\"\" ISTR4=\"\" ISTR5=\"\" ISTR6=\"\" ISTR7=\"\" ISTR8=\"\" ISTR9=\"\" NUMATTRS=0

Step 4: SMSDBMON notifies DistMgr that a DP has changed for required processing by dropping a DPN file

SMSDBMON notifies DistMgr that a DP has changed

SMSDBMON detects changes in the DPNotification table, specifically the insertion performed by HMAN in Step 3. Recognizing this as a DP change notification, SMSDBMON instructs DistMgr to process the DP change. This instruction is delivered by dropping a \<DPID>.DPN file into the DistMgr.box inbox. The \<DPID> represents the ID of the Distribution Point being removed. Log entries in SMSDBMON.log showing this notification:

SMS_DATABASE_NOTIFICATION_MONITOR    3120 (0xc30)    RCV: INSERT on DPNotification for DPNotify_ADD [34  ][1031679]
SMS_DATABASE_NOTIFICATION_MONITOR    3120 (0xc30)    SND: Dropped E:\\ConfigMgr\\inboxes\\distmgr.box\\34.DPN  [1031679]

Step 5: DistMgr uses the DP Manager thread to uninstall the DP

DistMgr uses the DP Manager thread to uninstall the DP

DistMgr utilizes its DP Manager thread to process the DP change notification triggered by the .DPN file. The DP Manager thread is responsible for orchestrating the uninstallation of the Distribution Point.

It’s important to note that the DP Manager thread is single-threaded. This means that if multiple DPs are removed concurrently, DistMgr will process their removals sequentially, one at a time. DP removal involves a series of cleanup tasks, including:

  • Database Cleanup: Removing DP-related data from most database tables (excluding the DistributionPoints table itself).
  • PXE Role Removal (if applicable): Uninstalling the PXE role if it was enabled on the DP.
  • Scheduled Task Removal: Deleting Monitoring and Usage scheduled tasks associated with the DP.
  • PDP Removal (if applicable): Removing the Protected Distribution Point (PDP) role if configured.
  • DP WMI Provider Removal: Uninstalling the Distribution Point WMI provider from the DP server.
  • File and Share Removal: Removing DP files and shares, including SMS_DP$, SCCMContentLib$, and SMSDIG$ shares. This step can be time-consuming if the content library is large.
  • IIS Virtual Directory Removal: Deleting DP-related virtual directories from IIS on the DP server.
  • Registry Cleanup: Removing DP-related registry settings from the DP server.

Log entries from DistMgr.log showing the DP Manager thread uninstalling the DP:

SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    ~Created policy provider trigger for ID 34
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    ConfigurePXE
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    ~[\"Display=\\\\PS1DP2.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP2.CONTOSO.COM\\ is NOT a Pull DP
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    Uninstalling distribution point files from server PS1DP2.CONTOSO.COM~
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    Deleting DP provider classes from server [\"Display=\\\\PS1DP2.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP2.CONTOSO.COM\\
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    Deleted provider classes on distribution point
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    Uninstalling distribution point files from server PS1DP2.CONTOSO.COM~
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    ~Uninstalling DP provider from remote distribution point.
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    Unregistering DPProvider on server PS1DP2.CONTOSO.COM.
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    Removed share SMS_DP$ from server PS1DP2.CONTOSO.COM
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    Failed to remove SMS_DP$ directory with error 5, will try to unload distribution point provider and try again.
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    Successfully unloaded provider SMSDPProvider - root\\SCCMDP
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    Waiting for provider to be released by COM. Timeout is 300 seconds.
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    Successfully removed SMS_DP$ directory.
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    Removed share SCCMContentLib$ from server PS1DP2.CONTOSO.COM
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    Removed share SMSSIG$ from server PS1DP2.CONTOSO.COM
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    ~Completed uninstalling distribution on the remote distribution point
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    Deleting DP registry on NAL Path = [\"Display=\\\\PS1DP2.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP2.CONTOSO.COM\\ , ServerName = PS1DP2.CONTOSO.COM

5a: (Pull DPs only) If the DP being removed is a Pull DP, DistMgr recognizes this and initiates the removal of the Pull DP component as well. This ensures complete removal of all DP-related components.

SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    ~NAL Path [\"Display=\\\\PS1DP2.CONTOSO.COM\\\"]MSWNET:[\"SMS_SITE=PS1\"]\\\\PS1DP2.CONTOSO.COM\\ is a Pull DP
SMS_DISTRIBUTION_MANAGER    3848 (0xf08)    Uninstalling PullDP, check \\\\PS1DP2.CONTOSO.COM\\SMS_DP$\\sms\\logs\\smsdpprov.log and \\\\PS1DP2.CONTOSO.COM\\SMS_DP$\\sms\\logs\\pulldp_install.log

Understanding these detailed steps for DP installation, upgrade, configuration changes, and removal is crucial for effective Configuration Manager administration and troubleshooting. By monitoring the relevant log files and understanding the process flow, administrators can quickly diagnose and resolve issues related to Distribution Points, ensuring smooth content delivery within their environment.

We encourage you to share your experiences and questions about Distribution Point management in the comments below!

Post a Comment