共用方式為


內容發佈中的套件動作

本文可協助您了解內容發佈中的套件動作。

原始產品版本:Configuration Manager 最新分支、Microsoft System Center 2012 Configuration Manager、Microsoft System Center 2012 R2 Configuration Manager

簡介

內容發佈中的套件動作分成下列專案:

  • Distribute

    與內容發佈相關的第一個主要動作是 [發佈] 動作。 這指的是將封裝初始發佈至發佈點。 這會由 Configuration Manager 控制台中的 [發佈內容精靈] 觸發。 這會將封裝中的所有檔案傳送至目標發佈點,但不包括已存在於 DP 內容庫中作為另一個套件一部分的檔案。 如果套件包含任何已經在發佈點上內容庫中的檔案,則這些檔案會在多個套件之間共用。

  • 更新

    第二個主要動作是更新動作。 當套件已變更,且其散發的所有發佈點都需要更新的內容時,通常會使用此選項。 這會在控制台中使用 更新發佈點 動作觸發。 這會將變更的檔案傳輸到所有發佈點。 不會傳輸未變更的檔案。 如果在更新版本中從套件中移除檔案,則只要 DP) 上沒有其他共用檔案的套件,就會從發佈點上的套件中刪除 (。

  • 分配

    第三個主要動作是轉散發動作,會在 Configuration Manager 控制台中使用 [轉散發] 觸發。 這會將整個內容傳輸到特定發佈點。 即使檔案已經存在於發佈點上的內容庫中,也會傳輸和覆寫檔案。 轉散發動作的主要目的是要更正內容庫中可能存在的任何不一致。

建立套件

下列步驟說明當您從系統管理員控制台建立尚未散發到任何IP的新套件時,事件的流程:

步驟 1:管理員 主控台建立 類別的SMS_PackageWMI實例

系統管理員在控制台中建立套件之後,管理主控台會在新建立的套件的 SMS_Package SMS 提供者命名空間內建立 WMI 類別的實例。 SMSProv.log 顯示下列專案:

SMS 提供者 4680 (0x1248) CExtProviderClassObject::D oPutInstanceInstance~
SMS 提供者 4680 (0x1248) 稽核:使用者 CONTOSO\管理員 已建立類別 SMS_Package.~ 的實例。
SMS 提供者 816 (0x330) 已處理的插入實例通知:SMS_Package.PackageID=“PackageID”~

建立這個 WMI 實例時,SMS 提供者會在資料庫的 SMSPackages 檢視中插入一個數據列:

insert SMSPackages (PkgID, Name, Version, Language, Manufacturer, Description, ISVString, Hash, NewHash, Source, SourceSite, StoredPkgPath, RefreshSchedule, LastRefresh, StoredPkgVersion, ShareName, PreferredAddress, StorePkgFlag, ShareType, HashVersion,Architecture, ImagePath,Permission, UseForcedDisconnect, ForcedRetryDelay, DisconnectDelay, IgnoreSchedule, Priority, PkgFlags, MIFFilename, MIFPublisher, MIFName, MIFVersion, SourceVersion, SourceDate, SourceSize, SourceCompSize, ImageFlags, PackageType, AlternateContentProviders, SourceLocaleID,  TransformReadiness, TransformAnalysisDate, UpdateMask, UpdateMaskEx, Action, DefaultImage) values (N'PackageID', N'Dummy1', N'', N'',N'',N'',N'',N'',N'',N'\\CS1SITE\SOURCE\Packages\Dummy1',N'CS1',N'',N'',N'04/10/1970 06:35:00', 0, N'',N'', 2, 1, 1, N'', N'', 15, 0, 2, 5, 0, 2, 16777216, N'',N'',N'',N'', 1, N'05/16/2016 15:22:12', 0, 0, 0, 0, N'', 1033, 0, N'1980/01/01 00:00:00', 0, 0, 2, 0)

插入數據列之後,檢視上的觸發程式會在 和 SMS_Packages_L 數據表中SMSPackages_G插入數據列。 這接著會導致數據表上的 SMSPackages_G 觸發程式在數據表中 PkgNotification 插入數據列。 數據表中 PkgNotification 的數據列是用來通知 DistMgr 處理套件,而此通知是由 SMSDBMON 元件提供給 DistMgr。

insert PkgNotification (PkgID, Priority, Type, TimeKey) values (N'PackageID', 2, 2, GetDate())

步驟 2:SMSDBMON 會偵測變更,並藉由卸除 <PackageID> 來通知 DistMgr 處理封裝。PKN 檔案

SMSDBMON 會偵測數據表中的 PkgNotification 變更,導致它卸除 <PackageID>。中的DistMgr.box PKN 檔案,指示 DistMgr 處理套件:

SMS_DATABASE_NOTIFICATION_MONITOR 3240 (0xca8) RCV:PkgNotification 上的 INSERT PkgNotify_Add [<PackageID>][850902]
SMS_DATABASE_NOTIFICATION_MONITOR 3240 (0xca8) SND:Dropped E:\ConfigMgr\inboxes\distmgr.box\<PackageID>。PKN [850902]

步驟 3:DistMgr 會在套件來源網站上處理套件

DistMgr 會在 DistMgr.box偵測到 中的 PKN 檔案之後處理封裝。 DistMgr 處理是由多個線程執行。

  1. 主要 DistMgr 線程會建立封裝處理線程。

    主要 DistMgr 線程會喚醒、將封裝新增至封裝處理佇列,並建立封裝處理線程來處理封裝:

    SMS_DISTRIBUTION_MANAGER 2624 (0xa40) 找到套件 'PackageID' 的已更新套件屬性通知
    SMS_DISTRIBUTION_MANAGER 2624 (0xa40) 將套件 'PackageID' 新增至封裝處理佇列。
    SMS_DISTRIBUTION_MANAGER 2624 (0xa40) ~目前使用 3 個允許套件處理線程中的 0 個。
    SMS_DISTRIBUTION_MANAGER 2624 (0xa40) 套件 'PackageID' 的 ~Started 套件處理線程,線程標識碼 = 0x16A8 (5800)

  2. 封裝處理線程會建立套件快照集,並在內容庫中寫入內容。

    在此案例中,套件處理線程 (線程標識碼 5800,) 開始處理封裝並建立套件快照集。 建立套件快照集之後,此線程也會將套件內容寫入月臺伺服器上的內容庫。

    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) STATMSG: ID=2300 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=CS1SITE。CONTOSO.COM SITE=CS1 PID=1904 TID=5800 GMTDATE=Mon May 16 14:33:55.691 2016 ISTR0=“Dummy1” ISTR1=“<PackageID>” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=1 AID0=400 AVAL0=“<PackageID>”
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) ~處理套件 <PackageID> (SourceVersion:1;StoredVersion:0)
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) 開始新增套件 <PackageID>...
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) ~套件動作為 2,更新遮罩為 0,UpdateMaskEx 為 0。
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) ~CDistributionSrcSQL::UpdateAvailableVersion PackageID=<PackageID>, Version=1, Status=2300
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) 從來源 \\CS1SITE\SOURCE\Packages\Dummy1 擷取套 <件 PackageID> 的套件快照集
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) 套件 <PackageID> 的大小,第 1 版是 204800 KB
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) 為 PackageID 撰寫套件 <定義>
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) ~已成功建立套件 PackageID 第 1 版的 RDC 簽章
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) 建立演算法 32780 的哈希
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) 演算法 32780 的哈希為 <HashString>
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) 演算法 32780 的 RDC 簽章哈希為 <HashString>
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) ~將這些內容新增至套件 PackageID 第 1 版。
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) STATMSG: ID=2376 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=CS1SITE。CONTOSO.COM SITE=CS1 PID=1904 TID=5800 GMTDATE=Mon May 16 14:34:04.611 2016 ISTR0=“<PackageID>” ISTR1=“” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=1 AID0=400 AVAL0=“<PackageID>”

  3. 封裝處理線程會將封裝複寫到其他月臺。

    封裝處理線程接著會將封裝複寫至階層中的其他月臺。 封裝元數據資訊會透過資料庫復寫複寫至其他月臺,而封裝檔案則是使用檔案復寫來複寫。 不過,只有在該站台中至少有一個 DP 新增至套件時,封裝檔案才會傳送至網站。 封裝檔案會先壓縮,再傳送至另一個網站。 在此情況下,由於沒有目標 DP,因此只會將套件元數據復寫至其他網站,但不會復寫封裝檔案。

    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) ~Package <PackageID> 沒有慣用的寄件者。
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) 套件 PackageID> 的<程式已新增或移除,因此必須復寫到所有子月臺。
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) 套件 PackageID <> 是新的或已變更,會復寫到所有適用的網站。
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) ~CDistributionSrcSQL::UpdateAvailableVersion PackageID=<PackageID>, Version=1, Status=2301
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) ~StoredPkgVersion (套件 <PackageID> 的 1) 。 資料庫中的 StoredPkgVersion 為 1。
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) ~SourceVersion (套件 <PackageID> 的 1) 。 資料庫中的SourceVersion為1。
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) ~將這些內容新增至套件 <PackageID> 第 1 版。

  4. 封裝處理線程會結束。

    封裝處理線程會在封裝處理完成後結束,並引發標識符為 2301 的狀態消息,這表示「散發管理員已成功處理套件 <PACKAGENAME> (封裝標識碼 = <PKGID>) 。」

    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) STATMSG: ID=2301 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=CS1SITE。CONTOSO.COM SITE=CS1 PID=1904 TID=5800 GMTDATE=Mon May 16 14:34:06.736 2016 ISTR0=“Dummy1” ISTR1=“<PackageID>” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=1 AID0=400 AVAL0=“<PackageID>”
    SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) ~結束套件 PackageID> 的套件<處理線程。

步驟 4: (如果適用) DRS 會將套件複寫至其他網站

如果階層中有其他月臺,封裝元數據資訊會透過資料庫復寫複寫複寫到其他月臺。 復寫封裝信息之後,會插入數據表中 SMSPackages_G 的數據列,以觸發數據表中的 PkgNotification 插入。

步驟 5: (如果適用,) 接收站臺上的 SMSDBMON 會藉由卸除 <PackageID> 來通知 DistMgr。PKN 檔案

在接收站臺上,SMSDBMON 會偵測數據表中的 PkgNotification 變更,導致其卸除 <PackageID>。中的DistMgr.box PKN 檔案,指示 DistMgr 處理套件:

SMS_DATABASE_NOTIFICATION_MONITOR 3120 (0xc30) RCV:PkgNotification 上的 INSERT PkgNotify_Add [<PackageID> ][1035019]
SMS_DATABASE_NOTIFICATION_MONITOR 3120 (0xc30) SND:Dropped E:\ConfigMgr\inboxes\distmgr.box\<PackageID>。PKN [1035019]

步驟 6: (如果適用,) 接收站臺上的 DistMgr 會處理套件

在接收站臺上,接收 之後 。PKN 檔案 DistMgr 會喚醒以處理封裝。

  1. 主要 DistMgr 線程會建立封裝處理線程。

    主要 DistMgr 線程會將封裝新增至封裝處理佇列,並建立封裝處理線程:

    SMS_DISTRIBUTION_MANAGER 3648 (0xe40) 找到套件 '<PackageID>' 的已更新套件屬性通知
    SMS_DISTRIBUTION_MANAGER 3648 (0xe40) 將套件 '<PackageID>' 新增至封裝處理佇列。
    SMS_DISTRIBUTION_MANAGER 3648 (0xe40) ~目前使用 3 個允許套件處理線程中的 0 個。
    SMS_DISTRIBUTION_MANAGER 3648 (0xe40) 套件 'PackageID>'< 的 ~Started 套件處理線程,線程標識碼 = 0x1378 (4984)

  2. 封裝處理線程會處理封裝。

    在此情況下,此線程不會執行任何動作,因為沒有目標 DP。

    SMS_DISTRIBUTION_MANAGER 4984 (0x1378) STATMSG: ID=2300 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=4224 TID=4984 GMTDATE=Mon May 16 14:36:08.809 2016 ISTR0=“Dummy1” ISTR1=“<PackageID>” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=1 AID0=400 AVAL0=“<PackageID>”
    SMS_DISTRIBUTION_MANAGER 4984 (0x1378) ~處理套件 <PackageID> (SourceVersion:1;StoredVersion:0)
    SMS_DISTRIBUTION_MANAGER 4984 (0x1378) 開始新增套件 <PackageID>...
    SMS_DISTRIBUTION_MANAGER 4984 (0x1378) ~套件動作為 2,更新遮罩為 0,UpdateMaskEx 為 0。
    SMS_DISTRIBUTION_MANAGER 4984 (0x1378) ~成功建立/更新套件 <PackageID>
    SMS_DISTRIBUTION_MANAGER 4984 (0x1378) STATMSG: ID=2311 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=4224 TID=4984 GMTDATE=Mon May 16 14:36:09.486 2016 ISTR0=“PackageID” ISTR1=“” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=1 AID0=400 AVAL0=“<PackageID>”
    SMS_DISTRIBUTION_MANAGER 4984 (0x1378) ~為 ID <PackageID 建立的原則提供者觸發程式>
    SMS_DISTRIBUTION_MANAGER 4984 (0x1378) ~Package <PackageID> 沒有慣用的寄件者。
    SMS_DISTRIBUTION_MANAGER 4984 (0x1378) ~CDistributionSrcSQL::UpdateAvailableVersion PackageID=<PackageID>, Version=1, Status=2301
    SMS_DISTRIBUTION_MANAGER 4984 (0x1378) ~StoredPkgVersion (套件 <PackageID> 的 0) 。 資料庫中的 StoredPkgVersion 為 0。
    SMS_DISTRIBUTION_MANAGER 4984 (0x1378) ~SourceVersion (套件 <PackageID> 的 1) 。 資料庫中的SourceVersion為1。
    SMS_DISTRIBUTION_MANAGER 4984 (0x1378) STATMSG: ID=2301 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=4224 TID=4984 GMTDATE=Mon May 16 14:36:10.061 2016 ISTR0=“Dummy1” ISTR1=“<PackageID>” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=1 AID0=400 AVAL0=“<PackageID>”
    SMS_DISTRIBUTION_MANAGER 4984 (0x1378) ~結束套件 PackageID> 的套件<處理線程。

將套件分散到跨網站的 DP

下列步驟概述當套件散發到主要站台中的 DP,但有問題的主要站台伺服器 在內容庫中包含此套件的複本時,事件的流程。 此套件是在管理中心網站上建立,因此管理中心網站是套件來源月臺:

在套件來源站臺上

步驟 1:系統管理控制台會藉由在 類別上SMS_PackageWMI呼叫 AddDistributionPoints 方法,將 DP 新增至套件

系統管理員從主控台將套件散發至 DP 之後,管理主控台會呼叫 AddDistributionPoints 類別的 SMS_Package 方法,將指定的 DP 新增至套件。 SMSProv.log 顯示下列專案:

SMS 提供者 4616 (0x1208) 內容:SMSAppName=Configuration Manager 系統管理員控制台~
SMS 提供者 4616 (0x1208) ExecMethodAsync : SMS_Package.PackageID=“<PackageID>”::AddDistributionPoints~
SMS 提供者 4616 (0x1208) CExtProviderClassObject::D oExecuteMethod AddDistributionPoints~
SMS 提供者 4616 (0x1208) 稽核:使用者 CONTOSO\管理員 呼叫類別實例的稽核方法 SMS_Package.~

呼叫這個方法時,SMS 提供者會在 PkgServersAction 中插入數據列,並將 設為 2 (ADD) 。

insert PkgServers (PkgID, NALPath, SiteCode, SiteName, SourceSite, LastRefresh, RefreshTrigger, UpdateMask, Action) select N'PackageID', N'['Display=\\PS1SITE.CONTOSO.COM\']MSWNET:['SMS_SITE=PS1']\\PS1SITE.CONTOSO.COM\', N'PS1', Sites.SiteName, N'CS1', N'04/10/1970 06:35:00', 0, 0, 2  from Sites where SiteCode = N'PS1'

PkgServers中插入數據列之後,SMS 提供者也會在數據表中 PkgNotification 插入數據列。 數據表中 PkgNotification 的數據列是用來通知 DistMgr 處理套件,而此通知是由 SMSDBMON 元件提供給 DistMgr。

insert PkgNotification (PkgID, Priority, Type, TimeKey) values (N'PackageID', 2, 4, GetDate())

步驟 2:SMSDBMON 會偵測套件變更,並藉由卸除 <PackageID> 來通知 DistMgr。DistMgr.box 中的 PKN 檔案

SMSDBMON 會偵測數據表中的 PkgNotification 變更,導致其卸除 <PackageID>。中的DistMgr.box PKN 檔案,指示 DistMgr 處理封裝。

SMS_DATABASE_NOTIFICATION_MONITOR 4944 (0x1350) RCV:PkgNotification 上的 INSERT PkgNotify_Add [<PackageID> ][850967]
SMS_DATABASE_NOTIFICATION_MONITOR 4944 (0x1350) SND:Dropped E:\ConfigMgr\inboxes\distmgr.box\<PackageID>。PKN [850967]

步驟 3:DistMgr 會在收到 PKN 檔案之後喚醒以處理套件

  1. 主要 DistMgr 線程會建立封裝處理線程。

    主要 DistMgr 線程會將封裝新增至封裝處理佇列,並建立封裝處理線程。

    SMS_DISTRIBUTION_MANAGER 2496 (0x9c0) 將套件 '<PackageID>' 新增至封裝處理佇列。
    SMS_DISTRIBUTION_MANAGER 2496 (0x9c0) ~目前使用 3 個允許套件處理線程中的 0 個。
    SMS_DISTRIBUTION_MANAGER 2496 (0x9c0) 套件 'PackageID>'< 的 ~Started 套件處理線程,線程標識碼 = 0x1164 (4452)

  2. 封裝處理線程會處理封裝動作。

    封裝處理線程會處理封裝動作,以從 DP 新增/更新/移除封裝。 在此情況下,套件來源網站是管理中心網站,而且沒有套件動作可處理,因為管理中心網站不包含任何 DP。 在有封裝動作要處理的站臺上,封裝處理線程會建立 DP 線程來執行這些動作,並等候 DP 線程結束,然後再移至步驟 3-3。

    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) ~處理套件 <PackageID> (SourceVersion:1;StoredVersion:1)
    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) 未指定套件 <PackageID> 的動作,但此套件可能會有套件伺服器變更。

  3. 封裝處理線程會建立迷你作業,以將封裝的壓縮複本傳送至目的地月臺。

    排程器會處理此迷你作業,以建立傳送要求,讓發件者將封裝的壓縮複本傳送到目的地月臺:

    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) ~Package <PackageID> 沒有慣用的寄件者。
    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) ~需要將 PackageID> 封裝的壓縮套<件傳送至月臺 PS1
    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) ~將套 <件 PackageID> 的複本傳送至網站 PS1
    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) ~網站 PS1 的報告網站是此網站。
    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) ~使用磁碟驅動器 E 來儲存壓縮的套件。
    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) ~設定 CMiniJob 將根目錄傳送至 E:\SMSPKG\<PackageID>。PCK.1
    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) 檔案 E:\SMSPKG\<PackageID> 上的遞增 ref 計數。PCK.1, count = 2
    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) 檔案 E:\SMSPKG\<PackageID> 上的遞減 ref 計數。PCK.1,計數 = 1
    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) ~Created minijob 將封裝 <PackageID> 的壓縮複本傳送至網站 PS1。 傳送根 = E:\SMSPKG\<PackageID>。PCK.1。
    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) 套 <件 PackageID> 的套件和/或程式屬性尚未變更,必須判斷哪個月臺 (的) 需要更新的套件資訊。
    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) 此網站的發佈點已變更,請將網站 PS1 新增至我們要傳送套件 <PackageID> 的網站清單。
    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) PS1 的父月臺為 CS1

  4. 封裝處理線程會在處理封裝之後結束:

    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) ~StoredPkgVersion (packageID <>的 1) 。 資料庫中的 StoredPkgVersion 為 1。
    SMS_DISTRIBUTION_MANAGER套件 PackageID> 的 4452 (0x1164) ~SourceVersion (1) <。 資料庫中的SourceVersion為1。
    SMS_DISTRIBUTION_MANAGER 4452 (0x1164) ~結束套件 PackageID> 的套件<處理線程

步驟 4:排程器元件會處理封裝處理線程所建立的迷你作業,並建立傳送要求

排程器元件會在收到作業後喚醒,以傳送封裝的壓縮複本,並建立寄件者傳送要求,讓寄件者可以將壓縮的復本傳送至目的地月臺。

SMS_SCHEDULER 5492 (0x1574) ======== 處理作業========
SMS_SCHEDULER 5492 (0x1574) <啟用 JOB JOBID>[Dummy1 的軟體發佈,套件標識碼 = <PackageID>]~
SMS_SCHEDULER 5492 (0x1574) 目的地網站: PS1, 慣用位址: *, 優先順序: 2
SMS_SCHEDULER 5492 (0x1574) 指令類型:MICROSOFT|SMS|MINIJOBINSTRUCTION |包~
SMS_SCHEDULER 5492 (0x1574) 建立指令檔: \\CS1SITE.CONTOSO.COM\SMS_CS1\inboxes\schedule.box\tosend\JOBID。Icl~
SMS_SCHEDULER 5492 (0x1574) 傳送根目錄:E:\SMSPKG\<PackageID>。PCK.1~
SMS_SCHEDULER 5492 (0x1574) <更新 JOB JOBID>[Dummy1 的軟體發佈,套件標識碼 = <PackageID>]~
SMS_SCHEDULER 5492 (0x1574) 建立新的傳送要求標識碼: 202SQCS1~

排程器會定期更新傳送要求,並記錄有關傳送要求的實用資訊,包括大小總計和剩餘大小:

SMS_SCHEDULER 5492 (0x1574) ====== 更新傳送要求清單=======
SMS_SCHEDULER 5492 (0x1574) 傳送要求 202SQCS1 JobID: JOBID DestSite: PS1 FinalSite: State: Pending Status: Action: None Total size: 204864k 剩餘:204864k 活動訊號:12:23 開始時間:12:00 完成:12:00 重試:SWD PkgID: <PackageID> SWD Pkg 版本:1

步驟 5:寄件者元件開始處理傳送要求

傳送者元件會處理傳送要求,並將封裝的壓縮複本傳送至目的地月臺。

  1. 主要傳送者線程會啟動傳送線程,此線程會執行此傳送要求的所有工作。

    SMS_LAN_SENDER 6700 (0x1a2c) 找到傳送要求。 標識碼:202SQCS1、Dest 網站:PS1~
    SMS_LAN_SENDER 6700 (0x1a2c) 檢查網站特定傳送容量。 已使用 0/3.~
    SMS_LAN_SENDER 6700 (0x1a2c) ~建立傳送線程 (線程標識元 = 1150)

  2. 傳送線程會處理傳送要求,並將壓縮的封裝檔案 (PCK 檔案) 複製到目的地月臺,以及封裝指令檔 (SNI 檔案) 。

    SMS_LAN_SENDER 4432 (0x1150) ~嘗試 1 個 (中的 1 個位址)
    SMS_LAN_SENDER 4432 (0x1150) ~通過 xmit 檔案測試,請使用現有的連線
    SMS_LAN_SENDER 4432 (0x1150) ~Package 檔案 = E:\SMSPKG\<PackageID>。PCK.1
    SMS_LAN_SENDER 4432 (0x1150) ~Instruction 檔案 = E:\ConfigMgr\inboxes\schedule.box\tosend\00000E2A。Icl
    SMS_LAN_SENDER 4432 (0x1150) ~檢查遠端檔案 \\PS1SITE.CONTOSO.COM\SMS_SITE\202SQCS1。PCK
    SMS_LAN_SENDER 4432 (0x1150) ~檢查遠端檔案 \\PS1SITE.CONTOSO.COM\SMS_SITE\202SQCS1。SNI
    SMS_LAN_SENDER 4432 (0x1150) ~檢查遠端檔案 \\PS1SITE.CONTOSO.COM\SMS_SITE\202SQCS1。Tmp。。。
    SMS_LAN_SENDER 4432 (0x1150) ~嘗試建立/開啟遠端檔案 \\PS1SITE.CONTOSO.COM\SMS_SITE\202SQCS1。PCK
    SMS_LAN_SENDER 4432 (0x1150) ~建立/開啟遠端檔案 \\PS1SITE.CONTOSO.COM\SMS_SITE\202SQCS1。PCK
    SMS_LAN_SENDER 4432 (0x1150) ~傳送已啟動 [E:\SMSPKG\<PackageID]>。PCK.1]
    SMS_LAN_SENDER 4432 (0x1150) ~嘗試將 1024 位元組寫入至 \\PS1SITE.CONTOSO.COM\SMS_SITE\202SQCS1。位於位置 0 的 PCK
    SMS_LAN_SENDER 4432 (0x1150) ~將 1024 個字節寫入至 \\PS1SITE.CONTOSO.COM\SMS_SITE\202SQCS1。位置 0 的 PCK ...
    SMS_LAN_SENDER 4432 (0x1150) ~嘗試將380731位元組寫入至 \\PS1SITE.CONTOSO.COM\SMS_SITE\202SQCS1。位於位置209398784的 PCK
    SMS_LAN_SENDER 4432 (0x1150) ~將380731位元組寫入至 \\PS1SITE.CONTOSO.COM\SMS_SITE\202SQCS1。位於位置209398784的 PCK
    SMS_LAN_SENDER 4432 (0x1150) ~傳送已完成 [E:\SMSPKG\<PackageID]>。PCK.1]
    SMS_LAN_SENDER 4432 (0x1150) ~已完成將 SWD 套件 <PackageID> 第 1 版傳送至網站 PS1 ...
    SMS_LAN_SENDER 4432 (0x1150) ~傳送已啟動 [E:\ConfigMgr\inboxes\schedule.box\tosend\00000E2A]。Icl]
    SMS_LAN_SENDER 4432 (0x1150) ~傳送完成 [E:\ConfigMgr\inboxes\schedule.box\tosend\00000E2A]。Icl]
    SMS_LAN_SENDER 4432 (0x1150) ~已完成將 SWD 套件 <PackageID> 第 1 版傳送至網站 PS1 ...
    SMS_LAN_SENDER 4432 (0x1150) ~重新命名遠端檔案 \\PS1SITE.CONTOSO.COM\SMS_SITE\202SQCS1。TMP 至 \\PS1SITE.CONTOSO.COM\SMS_SITE\202SQCS1。SNI
    MS_LAN_SENDER 4432 (0x1150) ~Rename 已完成 [\\PS1SITE.CONTOSO.COM\SMS_SITE\202SQCS1。TMP]
    SMS_LAN_SENDER 4432 (0x1150) ~傳送成功完成

    傳送線程會將這些檔案複製到 SMS_SITE 接收網站上的共用。

    提示

    sender.log檔案會持續記錄寫入的位置。 例如,在上述記錄 檔中209398784 位置。 此位置是它要寫入的位元移,您可以轉換這個值來找出已複製多少數據。 例如,209398784位元組 = 199.69 MB。

步驟 6:排程器元件會將作業標示為已完成,並刪除傳送要求

排程器元件會監視傳送要求,而在寄件者完成處理傳送要求之後,排程器會將作業標示為完成,並刪除傳送要求:

SMS_SCHEDULER 5492 (0x1574) ====== 檢查所有傳送要求的狀態======
SMS_SCHEDULER 5492 (0x1574) ~==== 檢查寄件箱 \\CS1SITE.CONTOSO.COM\SMS_CS1\inboxes\schedule.box\outboxes\LAN.~~ 的傳送要求
SMS_SCHEDULER 5492 (0x1574) 檢查傳送要求 202SQCS1~
SMS_SCHEDULER 5492 (0x1574) 傳送完成 (13985442 位元組/秒) .~
SMS_SCHEDULER 5492 (0x1574) <更新 JOB JOBID>[Dummy1 的軟體發佈,套件標識碼 = <PackageID>]~
SMS_SCHEDULER 5492 (0x1574) 傳送要求已順利完成。~
SMS_SCHEDULER 5492 (0x1574) <作業狀態 - 完成>~
SMS_SCHEDULER 5492 (0x1574) 刪除指令檔 \\CS1SITE.CONTOSO.COM\SMS_CS1\inboxes\schedule.box\tosend\00000E2A。Icl.~
SMS_SCHEDULER 5492 (0x1574) 刪除作業套件來源 [E:\SMSPKG\<PackageID]>。PCK.1].~
SMS_SCHEDULER 5492 (0x1574) 刪除的參考計數檔案 E:\SMSPKG\<PackageID>。PCK.1
SMS_SCHEDULER 5492 (0x1574) 檔案 E:\SMSPKG\<PackageID> 上的遞減 ref 計數。PCK.1, count = 0
SMS_SCHEDULER 5492 (0x1574) 刪除標識碼為 202SQCS1 的傳送要求。~
SMS_SCHEDULER 5492 (0x1574) Deleted job JOBID.~

在此步驟之後,傳送月臺將不再需要執行任何工作,而且接收月臺會開始處理套件。

在目的地網站上

步驟 7:Despooler 處理 PCK 和 SNI 檔案

在步驟 5 期間, PCKSNI 檔案會複製到 SMS_SITE 接收網站上的共用。 在每個 Configuration Manager 網站上,\inboxes\despoolr.box\receive 資料夾會共用為 SMS_SITE。 當這些檔案抵達 despoolr.box\receive 資料夾時, despooler 元件會喚醒以處理 SNI 檔案,也就是指令檔。

  1. 主要的 despooler 線程會建立還原緩衝處理線程。

    主要 Despooler 會尋找指令檔,並建立還原緩衝處理線程來處理指令檔:

    SMS_DESPOOLER 6128 (0x17f0) ~找到就緒指示 202sqcs1.sni
    SMS_DESPOOLER 6128 (0x17f0) ~已使用 3 個還原緩衝處理線程中的 0 個
    SMS_DESPOOLER 6128 (0x17f0) ~建立新的還原緩衝處理線程 EE8

  2. (偶爾) 還原緩衝處理線程有時無法在第一次嘗試時處理指令,並在 5 分鐘後重試。

    還原緩衝處理線程會處理指令檔,不過在許多情況下,第一次還原後台處理器會嘗試處理封裝的指令檔,因為封裝元數據資訊尚未復寫到接收月臺,所以會失敗並顯示「此版本尚未送達的套件資訊」訊息。 發生這種情況時, despooler.log 會顯示 「錯誤碼 = 12」,但會在五分鐘后重試此指令,因為封裝資訊會在這段期間成功複寫。 步驟 7-3 顯示在重試時成功處理指令。

    SMS_DESPOOLER 3816 (0xee8) ~驗證 MICROSOFT|SMS 類型之指令 E:\ConfigMgr\inboxes\despoolr.box\receive\ds_s76nc.ist 的簽章|MINIJOBINSTRUCTION |包
    SMS_DESPOOLER 3816 (0xee8) [~簽章] 取出 [確定] 以取得來自網站 CS1 的指示,請繼續執行指令。
    SMS_DESPOOLER 3816 (0xee8) ~執行 MICROSOFT|SMS 類型的指示|MINIJOBINSTRUCTION |包
    SMS_DESPOOLER 3816 (0xee8) ~Received 套件 PackageID 第 1 版。 壓縮的檔案 - E:\SMSPKG\<PackageID>。PCK.1 as E:\ConfigMgr\inboxes\despoolr.box\receive\ds_s76nc.pkg
    SMS_DESPOOLER 3816 (0xee8) ~舊套件預存UNC 路徑為 。
    SMS_DESPOOLER 3816 (0xee8) ~此套件[<PackageID>] 的資訊尚未送達此版本 [1]。稍後重試 ...
    SMS_DESPOOLER 3816 (0xee8) ~已建立 job JOBID 的重試指示
    SMS_DESPOOLER 3816 (0xee8) ~Despooler 無法執行指令, 錯誤碼 = 12 ...
    SMS_DESPOOLER 6128 (0x17f0) ~指令 E:\ConfigMgr\inboxes\despoolr.box\receive\ds_3kyyh.sni 直到 2016 年 5 月 16 日下午 12:29:11 東部日光節約時間才會處理

    如果發生這種情況,DistMgr 會嘗試處理套件,不過,因為封裝的壓縮復本尚未處理並解壓縮到內容庫中,所以封裝處理線程會記錄下列內容並結束:

    SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) 套件 'PackageID>'< 的 ~Started 套件處理線程,線程標識碼 = 0xAAC (2732)
    SMS_DISTRIBUTION_MANAGER 2732 (0xaac) ~處理套件 <PackageID> (SourceVersion:1;StoredVersion:0)
    SMS_DISTRIBUTION_MANAGER 2732 (0xaac) ~套件 <PackageID> 的內容尚未從網站 CS1 抵達,稍後會重試
    SMS_DISTRIBUTION_MANAGER 2732 (0xaac) ~封裝 <PackageID> 處理線程的所有 DP 線程都已完成。
    SMS_DISTRIBUTION_MANAGER 2732 (0xaac) ~結束套件 PackageID> 的套件<處理線程。

  3. 還原緩衝處理線程會處理指令,並將內容寫入內容庫。

    還原緩衝處理線程會處理指令,將 PCK 檔案解壓縮至暫存位置,然後將內容寫入內容庫。

    SMS_DESPOOLER 4072 (0xfe8) ~Received 套件 <PackageID> 第 1 版。 壓縮的檔案 - E:\SMSPKG\<PackageID>。PCK.1 as E:\ConfigMgr\inboxes\despoolr.box\receive\PKGj3uib.TRY
    SMS_DESPOOLER 4072 (0xfe8) ~舊套件預存UNC 路徑為 。
    SMS_DESPOOLER 4072 (0xfe8) ~使用磁碟驅動器 E 來儲存壓縮的套件。
    SMS_DESPOOLER 4072 (0xfe8) 找不到分支快取登錄專案。
    SMS_DESPOOLER 4072 (0xfe8) 取消壓縮 E:\SMSPKG\<PackageID>。PCK 至 E:\SMSPKG\<PackageID>。PCK.temp
    SMS_DESPOOLER 4072 (0xfe8) 內容庫:E:\SCCMContentLib
    SMS_DESPOOLER 4072 (0xfe8) 從 E:\SMSPKG\<PackageID> 擷取。PCK.temp
    SMS_DESPOOLER 4072 (0xfe8) 擷取套件 <PackageID>
    SMS_DESPOOLER 4072 (0xfe8) 擷取內容 <PackageID.1>
    SMS_DESPOOLER 4072 (0xfe8) 為 PackageID> 撰寫套件<定義
    SMS_DESPOOLER 4072 (0xfe8) ~Package <PackageID> (版本 0) 存在於散發來源中,請將較新版本儲存 (第 1 版) 。
    SMS_DESPOOLER 4072 (0xfe8) ~預存套件 <PackageID>。 預存套件版本 = 1

    成功將內容解壓縮至內容庫之後,despooler 會更新 StoredPkgVersion 數據表中 SMSPackages_L 的數據列,並在數據表中 PkgNotification 插入數據列,以便通知 DistMgr 處理套件。

    update SMSPackages_L set StoredPkgPath = N'\\PS1SITE.CONTOSO.COM\E$\SMSPKG\<PackageID>.PCK', StoredPkgVersion = 1, UpdateMask = 160, UpdateMaskEx = 0, Action = 1 where PkgID = N'<PackageID>'
    insert PkgNotification (PkgID, Priority, Type, TimeKey) values (N'<PackageID>', 2, 1, GetDate())
    
  4. 還原緩衝處理線程會更新 中接收月臺 PkgStatus的類型 1 數據列,並引發標識碼為 4400 的狀態消息,然後結束。

    update PkgStatus set Status = 2, UpdateTime = N'Date Time', Location = N'\\PS1SITE.CONTOSO.COM\E$\SMSPKG\PackageID.PCK', ShareName = N'', HTTPUrl = N'', SourceVersion = 1, Personality = 0, State = 0, SigURL = N'', SigLocation = N'' where ID = N'PackageID' and Type = 1 and SiteCode = N'PS1' and PkgServer = N'PS1SITE.CONTOSO.COM'
    

    SMS_DESPOOLER 4072 (0xfe8) STATMSG: ID=4400 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DESPOOLER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=4072 GMTDATE=Mon May 16 16:31:21.400 2016 ISTR0=“<PackageID>” ISTR1=“\\PS1SITE.CONTOSO.COM\E$\SMSPKG\<PackageID>.PCK“ ISTR2=”“ ISTR3=”“ ISTR4=”“ ISTR5=”“ ISTR6=”“ ISTR7=”“ ISTR8=”“ ISTR9=”“ NUMATTRS=1 AID0=400 AVAL0=”<PackageID>”
    SMS_DESPOOLER 4072 (0xfe8) ~Despooler 成功執行一個指令。

步驟 8:SMSDBMON 會通知 DistMgr 處理套件

SMSDBMON 會偵測數據表中的 PkgNotification 變更,並將 PKN 檔案卸除, DistMgr.box 以指示 DistMgr 處理套件。

SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) RCV:PkgNotification 上的 INSERT PkgNotify_Add [<PackageID> ][1035289]
SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) SND:Dropped E:\ConfigMgr\inboxes\distmgr.box\<PackageID>。PKN [1035289]

步驟 9:DistMgr 喚醒以處理套件

DistMgr 會在偵測到 PKN 檔案並處理封裝之後喚醒。

  1. 主要 DistMgr 線程會建立封裝處理線程。

    主要 DistMgr 線程會將封裝新增至封裝處理佇列,並建立封裝處理線程。

    SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) 找到套件 '<PackageID>' 的已更新套件屬性通知
    SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) 將套件 '<PackageID>' 新增至封裝處理佇列。
    SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) ~目前使用 3 個允許套件處理線程中的 0 個。
    SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) 套件 'PackageID>'< 的 ~Started 套件處理線程,線程標識碼 = 0x93C (2364)

  2. 封裝處理線程會建立 DP 線程來處理封裝動作,並等候它們結束。

    套件處理線程 (TID 2364) 處理套件動作, (新增/更新/移除 DP 的) 。 在此情況下,封裝已散發至 DP,而封裝處理線程會建立 DP 線程,以將套件新增至 DP。 建立 DP 線程之後,封裝處理線程會等候所有 DP 線程結束,然後再繼續進行。

    SMS_DISTRIBUTION_MANAGER 2364 (0x93c) ~處理套件 <PackageID> (SourceVersion:1;StoredVersion:1)
    SMS_DISTRIBUTION_MANAGER 2364 (0x93c) 開始更新套件 <PackageID>...
    SMS_DISTRIBUTION_MANAGER 2364 (0x93c) ~套件動作為 1,更新遮罩為 160,UpdateMaskEx 為 0。
    SMS_DISTRIBUTION_MANAGER 2364 (0x93c) ~使用磁碟驅動器 E 來儲存壓縮的套件。
    SMS_DISTRIBUTION_MANAGER 2364 (0x93c) ~已成功建立/更新套件 <PackageID> ...
    SMS_DISTRIBUTION_MANAGER 2364 (0x93c) 開始將套件 <PackageID> 新增至伺服器 [“Display=\\PS1DP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\...
    SMS_DISTRIBUTION_MANAGER 2364 (0x93c) ~針對伺服器 [“Display=\\PS1DP1.CONTOSO.COM\”] MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\ ... 上新增或更新套件 <PackageID> 建立的 DP 處理線程 5204
    SMS_DISTRIBUTION_MANAGER 2364 (0x93c) ~等候所有 DP 線程完成 封裝 <PackageID> 處理線程。

  3. DP 線程會建立 PkgXferMgr 作業,以將內容傳送至 DPS,然後結束。

    TID 5204 (DP 線程) 開始將套件新增至 DP。 DP 線程不會直接將套件內容複製到 DP,而是改為建立套件傳輸管理員 (PkgXferMgr 的作業,) 指示它將套件內容複製到 DP。 下列記錄項目顯示建立 PkgXferMgr 作業的 DP 線程。 建立作業之後,DP 線程的工作就會完成,而 DP 線程就會結束。

    SMS_DISTRIBUTION_MANAGER 5204 (0x1454) DP 線程:嘗試在 DP 上新增或更新套 <件 PackageID> [“Display=\\PS1DP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\
    SMS_DISTRIBUTION_MANAGER 5204 (0x1454) STATMSG: ID=2342 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=5204 GMTDATE=Mon May 16 16:31:37.364 2016 ISTR0=“Dummy1” ISTR1=“[”Display=\\PS1DP1.CONTOSO.COM\“]MSWNET:[”SMS_SITE=PS1“]\\PS1DP1.CONTOSO.COM\” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=2 AID0=400 AVAL0=“<PackageID>” AID1=404 AVAL1=“[”Display=\\PS1DP1.CONTOSO.COM\“]MSWNET:[”SMS_SITE=PS1“]\\PS1DP1.CONTOSO.COM\”
    SMS_DISTRIBUTION_MANAGER 5204 (0x1454) 目前的用戶內容將用於連線至 [“Display=\\PS1DP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\.~
    SMS_DISTRIBUTION_MANAGER 5204 (0x1454) ~建立套件傳輸作業,將套件<PackageID> 傳送至發佈點 [“Display=\\PS1DP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\。
    SMS_DISTRIBUTION_MANAGER 5204 (0x1454) STATMSG: ID=2357 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=5204 GMTDATE=Mon May 16 16:31:46.670 2016 ISTR0=“PackageID” ISTR1=“[”Display=\\PS1DP1.CONTOSO.COM\“]MSWNET:[”SMS_SITE=PS1“]\\PS1DP1.CONTOSO.COM\” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=2 AID0=400 AVAL0=“<PackageID>” AID1=404 AVAL1=“[”Display=\\PS1DP1.CONTOSO.COM\“]MSWNET:[”SMS_SITE=PS1“]\\PS1DP1.CONTOSO.COM\”
    SMS_DISTRIBUTION_MANAGER 5204 (0x1454) 在傳回之前執行清除。
    SMS_DISTRIBUTION_MANAGER 5204 (0x1454) 取消與 \\PS1DP1.CONTOSO.COM\ADMIN$ 的網络連線。

    當 DP 線程建立 PkgXferMgr 作業時,它會藉由在數據表中 DistributionJobs 插入數據列來執行此動作。

    insert into DistributionJobs (DPID,PkgID,PackageVersion,State,CreationTime,Action) values(32,N'PackageID',1,0,N'Date Time',1)
    

    建立作業之後,DP 線程也會重設數據表中 DP 的 PkgServers_L 動作。

    update PkgServers_L set UpdateMask = 0, Action = 0, RefreshTrigger = 0, LastRefresh = N'Date Time' where PkgID = N'PackageID' and NALPath = N'["Display=\\PS1DP1.CONTOSO.COM\"]MSWNET:["SMS_SITE=PS1"]\\PS1DP1.CONTOSO.COM\' and SiteCode = N'PS1' and Action <> 3
    
  4. 封裝進程線程會在所有 DP 線程結束之後結束。

    在所有 DP 線程結束之後,封裝處理線程也會結束:

    SMS_DISTRIBUTION_MANAGER 2364 (0x93c) 封裝 <PackageID> 的 ~DP 線程,且線程句柄為 0000000000000218C 且線程標識符 5204 已結束。
    SMS_DISTRIBUTION_MANAGER 2364 (0x93c) ~封裝 <PackageID> 處理線程的所有 DP 線程都已完成。
    SMS_DISTRIBUTION_MANAGER 2364 (0x93c) ~ 結束套件 PackageID>的套件<處理線程。

步驟 10:SMSDBMON 會通知 PkgXferMgr 處理步驟 9-3 中建立的作業

在步驟 9-3 中建立 PkgxferMgr 作業之後,SMSDBMON 會偵測數據表中的 DistributionJobs 變更,並將 PKN 檔案 PkgTransferMgr.box 卸除,以指示 PkgXferMgr 處理作業:

SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) RCV: Update on DistributionJobs for DistributionJob_Creation [<PackageID>][1035292]
SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) SND:Dropped E:\ConfigMgr\inboxes\PkgTransferMgr.box\<PackageID>。PKN [1035292]

步驟 11:PkgXferMgr 喚醒以處理作業

  1. 主要 PkgXferMgr 線程會建立傳送線程至指定的 DP:

    SMS_PACKAGE_TRANSFER_MANAGER 5392 (0x1510) 找到標識符為 577、套件: <PackageID>、版本:1、優先順序:2、目的地:PS1DP1.CONTOSO.COM、DPPriority:200 的傳送要求
    SMS_PACKAGE_TRANSFER_MANAGER 5392 (0x1510) ~建立傳送線程 (線程標識碼 = 0x12EC)

  2. 傳送線程會將內容複製到 DP。

    傳送線程會開始將套件內容複製到 DP。 此程式牽涉到將封裝中的所有檔案複製到目錄中的 SMS_DP$ DP。 因為套件未轉散發給 DP,所以轉散發動作會設定為 0,這表示如果檔案已經存在於 DP 上的內容庫中,則不會重新複製。

    SMS_PACKAGE_TRANSFER_MANAGER 4844 (0x12ec) 從作業開始傳送線程:577、套件: <PackageID>、版本:1、優先順序:2、伺服器:PS1DP1.CONTOSO.COM、DPPriority:200
    SMS_PACKAGE_TRANSFER_MANAGER 4844 (0x12ec) 針對 pkg <PackageID>、第 1 版、狀態 0 和發佈點 [“Display=\\PS1DP1.CONTOSO.COM\”] MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\~ 將狀態傳送給發佈管理員
    SMS_PACKAGE_TRANSFER_MANAGER 4844 (0x12ec) 傳送套件 <PackageID 的舊版內容 <PackageID.1>>
    SMS_PACKAGE_TRANSFER_MANAGER 4844 (0x12ec) Redistribute=0, Related=
    SMS_PACKAGE_TRANSFER_MANAGER 4844 (0x12ec) 傳送檔案 '\\PS1DP1.CONTOSO.COM\SMS_DP$\73E055438D4731F41DB6C3BCB90919F60000226B330C73942454A174D7E26533-PackageID.1.temp'
    SMS_PACKAGE_TRANSFER_MANAGER 4844 (0x12ec) 在 PackageID.1> 中<新增 Dummy1.txt 檔案。
    SMS_PACKAGE_TRANSFER_MANAGER 4844 (0x12ec) 已完成遠端 DP PS1DP1.CONTOSO.COM 的後續動作
    SMS_PACKAGE_TRANSFER_MANAGER 4844 (0x12ec) ~傳送成功完成
    SMS_PACKAGE_TRANSFER_MANAGER 4844 (0x12ec) 使用者 (NT AUTHORITY\SYSTEM) 從電腦 (PS1SITE.CONTOSO.COM) 執行應用程式 (SMS_PACKAGE_TRANSFER_MANAGER) 從月臺 (PS1)
    SMS_PACKAGE_TRANSFER_MANAGER 4844 (0x12ec) ~已完成將 SWD 套件 <PackageID> 第 1 版傳送至發佈點 PS1DP1.CONTOSO.COM
    SMS_PACKAGE_TRANSFER_MANAGER 4844 (0x12ec) STATMSG: ID=8200 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_PACKAGE_TRANSFER_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=4844 GMTDATE=Mon May 16 16:34:27.614 2016 ISTR0=“<PackageID>” ISTR1=“1” ISTR2=“PS1DP1.CONTOSO.COM” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=2 AID0=400 AVAL0=“<PackageID>” AID1=410 AVAL1=“1”

  3. 傳送線程會將狀態消息傳送至 DistMgr。

    在傳送線程完成傳送內容 (成功/失敗) 之後,它會將狀態傳送至 DistMgr,讓 DistMgr 可以處理和更新資料庫中的狀態。 卸除目錄中 DistMgr.box\incoming 包含套件狀態的 STA 檔案,即可將此狀態傳送至 DistMgr。

    SMS_PACKAGE_TRANSFER_MANAGER 4844 (0x12ec) 針對 pkg <PackageID>、第 1 版、狀態 3 和發佈點 [“Display=\\PS1DP1.CONTOSO.COM\”] MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\~ 將狀態傳送給發佈管理員
    SMS_PACKAGE_TRANSFER_MANAGER 4844 (0x12ec) STATMSG: ID=8210 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_PACKAGE_TRANSFER_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=4844 GMTDATE=Mon May 16 16:34:27.614 2016 ISTR0=“<PackageID>” ISTR1=“1” ISTR2=“PS1DP1.CONTOSO.COM” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR6=“ISTR7=”“ ISTR8=”“ ISTR9=”“ NUMATTRS=3 AID0=400 AVAL0=”<PackageID>“ AID1=410 AVAL1=”1“ AID2=404 AVAL2=”[“Display=\\PS1DP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\”
    SMS_PACKAGE_TRANSFER_MANAGER 4844 (0x12ec) 傳送線程完成~

步驟 12:SMS DP 提供者會將步驟 11-2 中複製的內容新增至內容庫

在步驟 11-2 中,在複製每個檔案之後,PkgXferMgr 會指示 DP 針對 SMS DP 提供者命名空間中 (root\SCCMDP) 中的 WMI 類別執行方法 SMS_DistributionPoint ,以將檔案新增至內容庫。 當內容成功新增至內容庫時, SMSDPProv.log 會顯示下列專案:

2996 (0xbb4) 套件 'PackageID' 的內容 '<<PackageID.1>>' 已成功新增至內容庫

步驟 13:DistMgr 會處理步驟 11-3 中傳送的狀態消息

若要處理步驟 11-3) 中傳送 (傳入 的 STA 檔案,DistMgr 會使用復寫處理線程。 此線程會喚醒以處理 STA 檔案、更新資料庫中數據表中的 PkgStatus類型 2 數據列,並引發標識碼為 2330 的狀態消息,這表示「散發管理員已成功將套件散發至發佈點」

SMS_DISTRIBUTION_MANAGER 6116 (0x17e4) ~處理傳入檔案 E:\ConfigMgr\inboxes\distmgr.box\INCOMING\1R7IEEHU.STA。
SMS_DISTRIBUTION_MANAGER 6116 (0x17e4) ~處理一般 DP 的 STA [“Display=\\PS1DP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\
SMS_DISTRIBUTION_MANAGER 6116 (0x17e4) 套件 <PackageID 的 ~處理狀態更新>
SMS_DISTRIBUTION_MANAGER 6116 (0x17e4) ~已成功更新套件 PackageID>、Status 3 的 [“Display=\\PS1DP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\ 套件<伺服器狀態
SMS_DISTRIBUTION_MANAGER 6116 (0x17e4) STATMSG: ID=2330 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=6116 GMTDATE=Mon May 16 16:34:31.679 2016 ISTR0=“<PackageID>” ISTR1=“[”Display=\\PS1DP1.CONTOSO.COM\“]MSWNET:[”SMS_SITE=PS1“]\\PS1DP1.CONTOSO.COM” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=2 AID0=400 AVAL0=“<PackageID>” AID1=404 AVAL1=“[”Display=\\PS1DP1.CONTOSO.COM\“]MSWNET:[”SMS_SITE=PS1“]\\PS1DP1.CONTOSO.COM\”
SMS_DISTRIBUTION_MANAGER 6116 (0x17e4) ~成功刪除套件狀態檔案 E:\ConfigMgr\inboxes\distmgr.box\INCOMING\1R7IEEHU。Sta

此線程會執行下列查詢,以更新資料庫中的狀態。

update PkgStatus set Status = 3, UpdateTime = N'Date Time', Location = N'MSWNET:["SMS_SITE=PS1"]\\PS1DP1.CONTOSO.COM\SMSPKGC$\PackageID\', ShareName = N'', HTTPUrl = N'http://PS1DP1.CONTOSO.COM/SMS_DP_SMSPKG$/\PackageID', SourceVersion = 1, Personality = 0, State = 0, SigURL = N'http://PS1DP1.CONTOSO.COM/SMS_DP_SMSSIG$/\PackageID', SigLocation = N'MSWNET:["SMS_SITE=PS1"]\\PS1DP1.CONTOSO.COM\SMSSIG$\\PackageID.1.tar'  where ID = N'\PackageID' and Type = 2 and SiteCode = N'PS1' and PkgServer = N'["Display=\\PS1DP1.CONTOSO.COM\"]MSWNET:["SMS_SITE=PS1"]\\PS1DP1.CONTOSO.COM\'

步驟 14:套件狀態變更會透過資料庫複寫複寫複寫至其他月臺

在資料庫中更新封裝狀態之後,它會透過資料庫複寫複寫複寫到其他月臺。

將套件散發至標準 DP

下列步驟概述當套件發佈至主要站台中的 DP,且此主要月臺伺服器在內容庫中已有套件複本時的事件流程:

步驟 1:系統管理員會將套件散發給 DP。 系統管理員可以從直接連線到有問題之主要月臺或管理中心網站或不同主要月臺的管理控制台執行此動作

系統管理員從主控台將套件散發至 DP 之後,管理主控台會呼叫 AddDistributionPoints 類別的 SMS_Package 方法,將指定的 DP 新增至套件。 SMSProv.log 顯示下列專案:

SMS 提供者 4416 (0x1140) 內容:SMSAppName=Configuration Manager 系統管理員控制台~
SMS 提供者 4416 (0x1140) ExecMethodAsync : SMS_Package.PackageID=“<PackageID>”::AddDistributionPoints~
SMS 提供者 4416 (0x1140) CExtProviderClassObject::D oExecuteMethod AddDistributionPoints~
SMS 提供者 4416 (0x1140) 稽核:使用者 CONTOSO\管理員 呼叫類別實例的稽核方法 SMS_Package.~

呼叫這個方法時,SMS 提供者會在 PkgServersAction 中插入數據列,並將 設為 2 (ADD) :

insert PkgServers (PkgID, NALPath, SiteCode, SiteName, SourceSite, LastRefresh, RefreshTrigger, UpdateMask, Action) select N'<PackageID>', N'["Display=\\PS1DP2.CONTOSO.COM\"]MSWNET:["SMS_SITE=PS1"]\\PS1DP2.CONTOSO.COM\', N'PS1', Sites.SiteName, N'PS1', N'04/10/1970 06:35:00', 0, 0, 2  from Sites where SiteCode = N'PS1'
insert PkgNotification (PkgID, Priority, Type, TimeKey) values (N'<PackageID>', 2, 4, GetDate())

步驟 2:如果系統管理員從不同的主要月臺或管理中心網站散發套件,資料庫復寫服務 (DRS) 將變更復寫至有問題的網站

如果系統管理員使用聯機到管理中心網站或不同主要月臺的控制台散發此套件,DRS 會將 中的 PkgServers 變更復寫至其他網站。

步驟 3:SMSDBMON 會通知 DistMgr 處理套件

將變更復寫到 DP 所在的網站之後,SMSDBMON 會偵測數據表中的 PkgNotification 變更,並將 PKN 檔案 DistMgr.box 卸除,以指示 DistMgr 處理套件:

SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) RCV:PkgNotification 上的 INSERT PkgNotify_Add [<PackageID>][1035417]
SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) SND:Dropped E:\ConfigMgr\inboxes\distmgr.box\<PackageID>。PKN [1035417]

步驟 4:DistMgr 喚醒以處理套件

DistMgr 會在偵測到 PKN 檔案並處理封裝之後喚醒。

  1. 主要 DistMgr 線程會啟動封裝處理線程。

    主要 DistMgr 線程會將封裝新增至封裝處理佇列,並建立封裝處理線程。

    SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) 將套件 '<PackageID>' 新增至封裝處理佇列。
    SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) ~目前使用 3 個允許套件處理線程中的 0 個。
    SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) 套件 'PackageID>'< 的 ~Started 套件處理線程,線程標識碼 = 0xB58 (2904)

  2. 封裝處理線程會建立 DP 線程來處理封裝動作,然後等候它們結束。

    套件處理線程 (TID 2904) 會處理套件動作, (為 DP 新增/更新/移除) 。 在此情況下,封裝已新增至 DP,而封裝處理線程會建立 DP 線程,以將套件新增至 DP。 建立 DP 線程之後,封裝處理線程會等候所有 DP 線程結束,然後再繼續進行:

    SMS_DISTRIBUTION_MANAGER 2904 (0xb58) ~處理套件 <PackageID> (SourceVersion:1;StoredVersion:1)
    SMS_DISTRIBUTION_MANAGER 2904 (0xb58) 未指定套件 <PackageID> 的動作,但此套件可能會有套件伺服器變更。
    SMS_DISTRIBUTION_MANAGER 2904 (0xb58) 開始將套件 <PackageID> 新增至伺服器 [“Display=\\PS1DP2.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\...
    SMS_DISTRIBUTION_MANAGER 2904 (0xb58) ~針對伺服器 [“Display=\\PS1DP2.CONTOSO.COM\”] MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\ SMS_DISTRIBUTION_MANAGER 2904 (0xb58) ~等候封裝 <PackageID> 處理線程完成的所有 DP 線程,建立 DP 處理線程 3792<>。

  3. DP 線程會 (PkgXferMgr 建立套件傳輸管理員,) 作業將內容傳送至 DPS,然後結束。

    TID 3792 (DP 線程) 開始將套件新增至 DP 的工作。 DP 線程不會直接將套件內容複製到 DP,而是改為建立 PkgXferMgr 的作業,指示它將套件內容複製到 DP。 下列記錄項目顯示建立 PkgXferMgr 作業的 DP 線程。 建立作業之後,DP 線程的工作就會完成,而 DP 線程就會結束。

    SMS_DISTRIBUTION_MANAGER 3792 (0xed0) DP 線程:嘗試在 DP 上新增或更新套 <件 PackageID> [“Display=\\PS1DP2.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\
    SMS_DISTRIBUTION_MANAGER 3792 (0xed0) ~建立套件傳輸作業,將套件<PackageID> 傳送至發佈點 [“Display=\\PS1DP2.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\。
    SMS_DISTRIBUTION_MANAGER 3792 (0xed0) STATMSG: ID=2357 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=3792 GMTDATE=Mon May 16 19:26:58.642 2016 ISTR0=“<PackageID>” ISTR1=“[”Display=\\PS1DP2.CONTOSO.COM\“]MSWNET:[”SMS_SITE=PS1“]\\PS1DP2.CONTOSO.COM\” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=2 AID0=400 AVAL0=“<PackageID>” AID1=404 AVAL1=“[”Display=\\PS1DP2.CONTOSO.COM\“]MSWNET:[”SMS_SITE=PS1“]\\PS1DP2.CONTOSO.COM\”

    當 DP 線程建立 PkgXferMgr 作業時,它會藉由在數據表中 DistributionJobs 插入數據列來執行此動作。

    insert into DistributionJobs (DPID,PkgID,PackageVersion,State,CreationTime,Action) values(35,N'PackageID',1,0,N'2016/05/16 15:26:58',1)
    

    建立作業之後,DP 線程也會重設數據表中 PkgServers_L DP 的動作

    update PkgServers_L set UpdateMask = 0, Action = 0, RefreshTrigger = 0, LastRefresh = N'05/16/2016 19:26:58' where PkgID = N'PackageID' and NALPath = N'["Display=\\PS1DP2.CONTOSO.COM\"]MSWNET:["SMS_SITE=PS1"]\\PS1DP2.CONTOSO.COM\' and SiteCode = N'PS1' and Action <> 3
    
  4. 封裝處理線程會在所有 DP 線程結束之後結束。

    在所有 DP 線程結束之後,封裝處理線程也會結束。

    SMS_DISTRIBUTION_MANAGER 2904 (0xb58) 封裝 <PackageID> 的 ~DP 線程,且線程句柄0000000000002524和線程標識碼 3792 已結束。
    SMS_DISTRIBUTION_MANAGER 2904 (0xb58) ~所有 DP 線程都已完成封裝 <PackageID> 處理線程。
    SMS_DISTRIBUTION_MANAGER 2904 (0xb58) ~結束套件 PackageID> 的套件<處理線程。

步驟 5:SMSDBMON 通知 PkgXferMgr 處理作業

建立 PkgxferMgr 作業之後,SMSDBMON 這次會偵測數據表中的 DistributionJobs 變更,並將 PKN 檔案卸除, PkgTransferMgr.box 以指示 PkgXferMgr 處理作業:

SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) RCV:Update on DistributionJobs for DistributionJob_Creation [<PackageID>][1035419]
SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) SND:Dropped E:\ConfigMgr\inboxes\PkgTransferMgr.box\<PackageID>。PKN [1035419]

步驟 6:PkgXferMgr 喚醒以處理作業

  1. 主要 PkgXferMgr 線程會建立傳送線程。

    主要 PkgXferMgr 線程會建立傳送線程,以將封裝傳送至指定的 DP。

    SMS_PACKAGE_TRANSFER_MANAGER 5392 (0x1510) 找到標識符為 582、套件: <PackageID>、版本:1、優先順序:2、目的地:PS1DP2.CONTOSO.COM、DPPriority:200 的傳送要求
    SMS_PACKAGE_TRANSFER_MANAGER 5392 (0x1510) ~建立傳送線程 (線程標識碼 = 0xBCC)

  2. 傳送線程會將內容複製到 DP。

    傳送線程 (TID 3020) 開始將套件內容複製到 DP。 此程式牽涉到將封裝中的所有檔案複製到目錄中的 SMS_DP$ DP。 因為套件未轉散發給 DP,所以轉散發動作會設定為 0,這表示如果檔案已經存在於 DP 上的內容庫中,就不會重新複製。

    SMS_PACKAGE_TRANSFER_MANAGER 3020 (0xbcc) 從工作開始傳送線程:582,套件: <PackageID>,版本:1,優先順序:2,伺服器:PS1DP2.CONTOSO.COM,DPPriority:200
    SMS_PACKAGE_TRANSFER_MANAGER 3020 (0xbcc) 針對 pkg <PackageID>、第 1 版、狀態 0 和發佈點 [“Display=\\PS1DP2.CONTOSO.COM\”] MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\~ 將狀態傳送給發佈管理員
    SMS_PACKAGE_TRANSFER_MANAGER 3020 (0xbcc) 傳送套件 <PackageID 的舊版內容 <PackageID.1>>
    SMS_PACKAGE_TRANSFER_MANAGER 3020 (0xbcc) Redistribute=0, Related= SMS_PACKAGE_TRANSFER_MANAGER 3020 (0xbcc) 傳送檔案 '\\PS1DP2.CONTOSO.COM\SMS_DP$\73E055438D4731F41DB6C3BCB90919F60000226B330C73942454A174D7E26533-PackageID.1.temp'
    SMS_PACKAGE_TRANSFER_MANAGER 3020 (0xbcc) 在 PackageID.1> 中<新增 Dummy1.txt 檔案
    SMS_PACKAGE_TRANSFER_MANAGER 3020 (0xbcc) 已完成遠端 DP PS1DP2.CONTOSO.COM 的後續動作
    SMS_PACKAGE_TRANSFER_MANAGER 3020 (0xbcc) ~傳送成功完成
    SMS_PACKAGE_TRANSFER_MANAGER 3020 (0xbcc) ~已完成將 SWD 套件 <PackageID> 第 1 版傳送至發佈點 PS1DP2.CONTOSO.COM
    SMS_PACKAGE_TRANSFER_MANAGER 3020 (0xbcc) STATMSG: ID=8200 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_PACKAGE_TRANSFER_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=3020 GMTDATE=Mon May 16 19:28:12.991 2016 ISTR0=“<PackageID>” ISTR1=“1” ISTR2=“PS1DP2.CONTOSO.COM” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=2 AID0=400 AVAL0=“<PackageID>” AID1=410 AVAL1=“1”

  3. 傳送線程會將狀態消息傳送至 DistMgr。

    在傳送線程完成傳送內容 (成功/失敗) 之後,它會將狀態傳送至 DistMgr,讓 DistMgr 可以處理和更新資料庫中的狀態。 卸除目錄中DistMgr.box\incoming包含套件狀態的 STA 檔案,即可將此狀態傳送至 DistMgr:

    SMS_PACKAGE_TRANSFER_MANAGER 3020 (0xbcc) 針對 pkg PackageID、第 1 版、狀態 3 和發佈點 [“Display=\\PS1DP2.CONTOSO.COM\”] MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\~ 將狀態傳送給發佈管理員
    SMS_PACKAGE_TRANSFER_MANAGER 3020 (0xbcc) STATMSG: ID=8210 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_PACKAGE_TRANSFER_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=3020 GMTDATE=Mon May 16 19:28:13.003 2016 ISTR0=“<PackageID>” ISTR1=“1” ISTR2=“PS1DP2.CONTOSO.COM” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=3 AID0=400 AVAL0=“<PackageID>” AID1=410 AVAL1=“1” AID2=404 AVAL2=“[”Display=\\PS1DP2.CONTOSO.COM\“]MSWNET:[”SMS_SITE=PS1“]\\PS1DP2.CONTOSO.COM\”
    SMS_PACKAGE_TRANSFER_MANAGER 3020 (0xbcc) 傳送線程完成~

步驟 7:SMS DP 提供者將內容新增至內容庫

複製每個檔案之後,PkgXferMgr 會指示 DP 對 SMS DP 提供者命名空間中的 WMI 類別執行方法 SMS_DistributionPoint ,以將檔案新增至內容庫 (root\SCCMDP) 。 當內容成功新增至內容庫時, SMSDPProv.log 會顯示下列內容:

1304 (0x518) 套件 'PackageID' 的內容 '<<PackageID.1>>' 已成功新增至內容庫

步驟 8:DistMgr 會處理 PkgXferMgr 所傳送的狀態消息

若要處理步驟 6-3) 中傳送 (的傳入 STA 檔案,DistMgr 會使用復寫處理線程。 此線程會喚醒以處理 STA 檔案、更新資料庫中數據表中的 PkgStatus 類型 2 數據列,並引發標識碼為 2330 的狀態消息,這表示「散發管理員已成功將套件散發至發佈點」

SMS_DISTRIBUTION_MANAGER 6116 (0x17e4) ~處理傳入檔案 E:\ConfigMgr\inboxes\distmgr.box\INCOMING\FV8S6B6M.STA。
SMS_DISTRIBUTION_MANAGER 6116 (0x17e4) ~處理一般 DP 的 STA [“Display=\\PS1DP2.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\
SMS_DISTRIBUTION_MANAGER 6116 (0x17e4) 套件 <PackageID 的 ~處理狀態更新>
SMS_DISTRIBUTION_MANAGER 6116 (0x17e4) ~成功更新套件 PackageID 的套件伺服器狀態 [“Display=\\PS1DP2.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\ 套件 <PackageID>, 狀態 3
SMS_DISTRIBUTION_MANAGER 6116 (0x17e4) STATMSG: ID=2330 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=6116 GMTDATE=Mon May 16 19:28:16.577 2016 ISTR0=“<PackageID>” ISTR1=“[”Display=\\PS1DP2.CONTOSO.COM\“]MSWNET:[”SMS_SITE=PS1“]\\PS1DP2.CONTOSO.COM\” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=2 AID0=400 AVAL0=“<PackageID>” AID1=404 AVAL1=“[”Display=\\PS1DP2.CONTOSO.COM\“]MSWNET:[”SMS_SITE=PS1“]\\PS1DP2.CONTOSO.COM\”
SMS_DISTRIBUTION_MANAGER 6116 (0x17e4) ~成功刪除套件狀態檔案 E:\ConfigMgr\inboxes\distmgr.box\INCOMING\FV8S6B6M。Sta

此線程會執行下列查詢,以更新資料庫中的狀態。

update PkgStatus set Status = 3, UpdateTime = N'Date Time', Location = N'MSWNET:["SMS_SITE=PS1"]\\PS1DP2.CONTOSO.COM\SMSPKGC$\\PackageID\', ShareName = N'', HTTPUrl = N'http://PS1DP2.CONTOSO.COM/SMS_DP_SMSPKG$/\PackageID', SourceVersion = 1, Personality = 0, State = 0, SigURL = N'http://PS1DP2.CONTOSO.COM/SMS_DP_SMSSIG$/\PackageID', SigLocation = N'MSWNET:["SMS_SITE=PS1"]\\PS1DP2.CONTOSO.COM\SMSSIG$\\PackageID.1.tar'  where ID = N'\PackageID' and Type = 2 and SiteCode = N'PS1' and PkgServer = N'["Display=\\PS1DP2.CONTOSO.COM\"]MSWNET:["SMS_SITE=PS1"]\\PS1DP2.CONTOSO.COM\'

步驟 9:套件狀態變更會透過 DRS 複寫到其他網站

在資料庫中更新封裝狀態之後,它會透過資料庫複寫複寫複寫到其他月臺。

散發套件以提取 DP

下列步驟概述當套件發佈至主要站台中的提取 DP,且有問題的主要月台伺服器已經有內容庫中的套件複本時,事件的流程。

步驟 1:系統管理員將套件散發給 DP。 系統管理員可以從直接連線到有問題之主要月臺或管理中心網站或不同主要月臺的管理控制台執行此動作

在系統管理員從控制台將套件散發至 DP 之後,控制台會針對下列範例中的應用程式呼叫 AddDistributionPoints 適當衍生類別 SMS_Package 的 方法 (,) SMS_ContentPackage 類別將指定的 DP 新增至套件。 SMSProv.log 顯示:

SMS 提供者 22172 (0x569c) 內容:SMSAppName=Configuration Manager 系統管理員控制台~
SMS 提供者 22172 (0x569c) ExecMethodAsync : SMS_ContentPackage.PackageID='P010000F':AddDistributionPoints~
SMS 提供者 22172 (0x569c) CExtProviderClassObject::D oExecuteMethod AddDistributionPoints~
SMS 提供者 22172 (0x569c) 稽核:使用者 CONTOSO\管理員 呼叫類別實例的稽核方法 SMS_ContentPackage.~

呼叫這個方法時,SMS 提供者會在 PkgServers Action 中插入一個數據列,並將 設定為 2 (ADD) ,並在數據表中 PkgNotification 建立通知。

步驟 2:如果系統管理員從不同的主要月臺或管理中心網站散發套件,DRS 會將變更復寫至有問題的網站

如果系統管理員使用聯機到管理中心網站或不同主要月臺的控制台散發此套件,DRS 會將 PkgServers 中的變更復寫到其他月臺。

步驟 3:SMSDBMON 會通知 DistMgr 處理套件

將此變更復寫到 DP 所在的網站之後,SMSDBMON 會偵測數據表中的 PkgNotification 變更,並將 PKN 檔案 DistMgr.box 卸除,以指示 DistMgr 處理套件。

SMS_DATABASE_NOTIFICATION_MONITOR 29748 (0x7434) RCV:PkgNotification 上的 INSERT PkgNotify_Add [P010000F ][145011]
SMS_DATABASE_NOTIFICATION_MONITOR 29748 (0x7434) SND:Dropped E:\ConfigMgr\inboxes\distmgr.box\P010000F。PKN [145011]

步驟 4:DistMgr 喚醒以處理套件

DistMgr 會在偵測到 PKN 檔案並處理封裝之後喚醒。

  1. 主要 DistMgr 線程會啟動封裝處理線程。

    主要 DistMgr 線程會將封裝新增至封裝處理佇列,並建立封裝處理線程。

    SMS_DISTRIBUTION_MANAGER 5292 (0x14ac) 將套件 'P010000F' 新增至封裝處理佇列。
    SMS_DISTRIBUTION_MANAGER 5292 (0x14ac) ~目前使用 3 個允許套件處理線程中的 0 個。
    SMS_DISTRIBUTION_MANAGER 5292 (0x14ac) 套件 'P010000F' 的起始套件處理線程,線程標識元 = 0x2C44 (11332)

  2. 封裝處理線程會建立 DP 線程 () 來處理封裝動作,並等候它們結束。

    套件處理線程 (TID 11332) 處理 DP () 的新增/更新/移除) (套件動作。 在此情況下,封裝已新增至 DP,而封裝處理線程會建立 DP 線程,以將套件新增至 DP。 建立 DP 線程 (的) 之後,封裝處理線程會等候所有 DP 線程結束,然後再繼續進行。

    SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) P010000F (SourceVersion:3 處理套件;StoredVersion:3)
    SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) 未指定套件P010000F的動作,不過此套件可能會有套件伺服器變更。
    SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) 開始將套件P010000F新增至伺服器 [“Display=\\P01PDP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\...
    SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) ~針對伺服器 [“Display=\\P01PDP1.CONTOSO.COM\”] MSWNET:[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\ 上新增或更新套件P010000F建立的 DP 處理線程 22444
    SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) ~等候所有 DP 線程完成封裝P010000F處理線程。

  3. DP 線程會建立 PkgXferMgr 作業,以將內容傳送至 DPS 並結束。

    DP 線程 (TID 22444) 開始將套件新增至 DP。 DP 線程不會直接將套件內容複製到 DP,而是改為建立套件傳輸管理員 (PkgXferMgr 的作業,) 指示它將套件內容複製到 DP。 下列記錄項目顯示建立 PkgXferMgr 作業的 DP 線程。 建立作業之後,DP 線程的工作就會完成,而 DP 線程就會結束。

    SMS_DISTRIBUTION_MANAGER 22444 (0x57ac) DP 線程:嘗試在 DP [“Display=\\P01PDP1.CONTOSO.COM\”] MSWNET:[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\ 上新增或更新套件P010000F
    SMS_DISTRIBUTION_MANAGER 22444 (0x57ac) 封裝伺服器 [“Display=\\P01PDP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\ 是 PullDP。
    SMS_DISTRIBUTION_MANAGER 22444 (0x57ac) ~建立封裝傳輸作業,將套件P010000F傳送至發佈點 [“Display=\\P01PDP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\。
    SMS_DISTRIBUTION_MANAGER 22444 (0x57ac) STATMSG: ID=2357 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=P01SITE。CONTOSO.COM SITE=P01 PID=36968 TID=22444 GMTDATE=Mon Jan 07 20:05:18.665 2019 ISTR0=“P010000F” ISTR1=“[”Display=\\P01PDP1.CONTOSO.COM\“]MSWNET:[”SMS_SITE=P01“]\\P01PDP1.CONTOSO.COM\” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=2 AID0=400 AVAL0=“P010000F” AID1=404 AVAL1=“[”Display=\\P01PDP1.CONTOSO.COM\“]MSWNET:[”SMS_SITE=P01“]\\P01PDP1.CONTOSO.COM\”

    當 DP 線程建立 PkgXferMgr 作業時,它會藉由在數據表中 DistributionJobs 插入數據列來執行此動作。

    insert into DistributionJobs (DPID,PkgID,PackageVersion,State,CreationTime,Action) values(8,N'P010000F',3,0,N'2019/01/07 20:05:18',1)
    

    建立作業之後,DP 線程也會重設數據表中 PkgServers_L DP 的動作。

  4. 封裝處理線程會在所有 DP 線程結束之後結束。

    在所有 DP 線程結束之後,封裝處理線程也會結束。

    SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) 線程句柄為 0000000000003E2C 且線程標識碼為 22444 結束的封裝P010000F ~DP 線程。
    SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) ~所有 DP 線程都已完成封裝P010000F處理線程。
    SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) ~StoredPkgVersion (封裝P010000F的 3) 。 資料庫中的 StoredPkgVersion 為 3。
    SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) ~SourceVersion (封裝P010000F的 3) 。 資料庫中的SourceVersion為3。
    SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) ~結束封裝P010000F的套件處理線程。

步驟 5:SMSDBMON 通知 PkgXferMgr 處理作業

建立 PkgxferMgr 作業之後,SMSDBMON 這次會偵測數據表中的 DistributionJobs 變更,並在 中 PkgTransferMgr.box 卸除 PKN 檔案,以指示 PkgXferMgr 處理作業。

SMS_DATABASE_NOTIFICATION_MONITOR 29748 (0x7434) RCV:DistributionJob_Creation的 DistributionJobs 更新 [P010000F ][145013]
SMS_DATABASE_NOTIFICATION_MONITOR 29748 (0x7434) SND:Dropped E:\ConfigMgr\inboxes\PkgTransferMgr.box\P010000F。PKN [145013]

步驟 6:PkgXferMgr 喚醒以處理作業

  1. 主要 PkgXferMgr 線程會建立提取 DP 傳送線程,以將套件傳送至指定的 DP。

    SMS_PACKAGE_TRANSFER_MANAGER 32936 (0x80a8) 找到標識符為 190、套件:P010000F、版本:3、優先順序:2、目的地:P01PDP1.CONTOSO.COM、DPPriority:200 的傳送要求
    SMS_PACKAGE_TRANSFER_MANAGER 32936 (0x80a8) ~建立傳送線程 (線程標識碼 = 0x2B4C)

  2. 提取 DP 傳送線程會將通知傳送至提取 DP

    不同於一般傳送線程,提取 DP 傳送線程 (TID 11084) 指示提取 DP 透過傳送通知開始下載內容。 這會以 4 個階段完成。

    階段 1: 提取 DP 傳送線程檢查,以查看來源 DP (的) 上是否提供發佈至提取 DP 的內容。 如果來源 DP 上無法使用內容,提取 DP 傳送線程會在記錄檔中以下列訊息結尾,並引發 狀態消息標識碼 8212 ,這表示「此提取發佈點沒有來源可從中下載內容。我們稍後會再試一次。 稍後會根據 [軟體發佈元件組態>提取發佈點] 索引卷標中設定的重試設定嘗試重試。

    ~針對提取 DP P01PDP1,在套件P0100009下找不到一或多個內容的任何來源位置。CONTOSO.COM。 未傳送通知。
    ~ 提取DP 通知失敗。 失敗計數 = 1/30,重新啟動時間 = 1/10/2019 2:00:42 東部標準時間
    STATMSG: ID=8212 SEV=I LEV=M SOURCE='SMS Server' COMP='SMS_PACKAGE_TRANSFER_MANAGER' SYS=P01SITE。CONTOSO.COM SITE=P01 PID=2336...

    以下是執行以檢查來源 DP 上是否提供內容的查詢:

    SELECT p.SourceDPServerName FROM PullDPMap p INNER JOIN ContentDPMap c ON p.SourceDPServerName = c.ServerName WHERE c.AccessType = 1 AND p.PullDPServerName = 'P01PDP1.CONTOSO.COM' AND c.ContentID = 'P0100009' AND c.Version = 4
    

    階段 2: 提取 DP 傳送線程檢查,以查看提取 DP 是否有更多作業的容量。 根據預設,提取 DPS 可以同時處理 50 個作業。 這是由的 PullDP 使用中作業數 目 SCF 屬性 SMS_DISTRIBUTION_MANAGER 所控制,不建議增加容量,因為它可能會造成 延展性問題。 如果提取 DP 已在最大容量 (即有 50 個執行中的作業) ,則提取 DP 傳送線程會在記錄檔中以下列訊息結尾,稍後再根據 [軟體發佈元件組態>提取發佈點] 索引卷標中設定的重試設定重試。

    PullDP <DPNALPATH> 已達到容量上限 50
    PullDP 沒有容量。 重新啟動時間 = <時間戳>
    STATMSG: ID=8211 SEV=E LEV=M SOURCE=“SMS Server” COMP=“SMS_PACKAGE_TRANSFER_MANAGER” SYS=P01SITE。CONTOSO.COM SITE=P01 PID=17252 TID=4712...

    以下是用來判斷提取 DP 是否在容量中的查詢:

    SELECT COUNT(*) FROM DistributionJobs job
    JOIN DistributionPoints dp ON dp.DPID=job.DPID AND dp.NALPath='["Display=\\P01PDP1.CONTOSO.COM\"]MSWNET:["SMS_SITE=P01"]\\P01PDP1.CONTOSO.COM\'
    WHERE job.State in (2, 3, 4) AND (job.Action<>5) AND (ISNULL(job.SendAction, '') <> '')
    

    階段 3: 提取 DP 傳送線程會傳送套件資訊套件組合檔案,其中包含需要下載之檔案的元數據。 此檔案是 <PackageID>。從 月臺伺服器內容庫的套件 INI 檔案產生的 TZ 檔案,並複製到 SMS_DP$ 提取 DP 上的目錄。

    SMS_PACKAGE_TRANSFER_MANAGER 11084 (0x2b4c) 提取 DP 傳送線程從作業開始:190,套件:P010000F,版本:3,優先順序:2,伺服器:P01PDP1.CONTOSO.COM,DPPriority:200
    SMS_PACKAGE_TRANSFER_MANAGER 11084 (0x2b4c) 將套件資訊套件套件組合P010000F至 PullDP。 [“Display=\\P01PDP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\

    階段 4:提取 DP 傳送線程會在命名空間內root\SCCMDPSMS_PullDPNotification提取 DP 上建立 類別的實例,其中包含套件識別碼、套件版本和 XML 通知。 建立 類別的SMS_PullDPNotification實例之後,它會在 命名空間的 SMS_DistributionPoint 類別中root\SCCMDP執行 NotifyPullDP 方法,以指示 DP WMI 提供者通知提取 DP 元件開始下載內容。

    SMS_PACKAGE_TRANSFER_MANAGER 11084 (0x2b4c) ~已成功在提取 DP P01PDP1上執行 WMI 動作。CONTOSO.COM。
    SMS_PACKAGE_TRANSFER_MANAGER 11084 (0x2b4c) ~ 已傳送 PullDP 通知。 嘗試計數 = 1/30,重新啟動時間 = 2019 年 1 月 7 日下午 4:06:04 東部標準時間
    SMS_PACKAGE_TRANSFER_MANAGER 11084 (0x2b4c) 提取 DP 傳送線程完成~

    呼叫 會 fnGetPullDPXMLNotification產生通知 XML。 以下是產生通知 XML 查詢的範例查詢看起來像這樣,它會顯示因為內容未重新發佈而新增動作

    SELECT [dbo].[fnGetPullDPXMLNotification]('P010000F', 3, 'P01PDP1.CONTOSO.COM', 2, 'add', 1, 'O:SYG:BAD:P(A;;FA;;;BA)(A;OICIIO;GA;;;BA)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)(A;;FA;;;BA)(A;OICIIO;GA;;;BA)', 0, 32780, '3ED23B9869F7E10E19439F11341405FF76E22022E56468DCF211475899BD2914', '') AS Notification
    

    XML 通知包含內容元數據以及來源 DP 位置。 以下是範例 XML 通知的外觀:

    <PullDPNotification>
       <PullDPPackageNotification PackageID='P010000F' Version='3' Action='redist' AllowFallback='true' Priority='2' PackageType='content' PackageTypeID='8' PackageFlags='16777216' PackageSize='5532' SDDL='O:SYG:BAD:P(A;;FA;;;BA)(A;OICIIO;GA;;;BA)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)(A;;FA;;;BA)(A;OICIIO;GA;;;BA)' HashAlgorithm='32780' Hash='3ED23B9869F7E10E19439F11341405FF76E22022E56468DCF211475899BD2914' ExpandShare='0' ShareName='' ShareType='1'>
         <PullDPPackageContent ContentID='Content_3c9813ba-d7ab-4963-929c-36f90f479613.1' RelatedContentID='Content_162d6f21-176e-4e4b-a620-6e94a4b9f73e.1'>
            <DPLocation DPUrl='http://P01MP.CONTOSO.COM/SMS_DP_SMSPKG$/Content_3c9813ba-d7ab-4963-929c-36f90f479613.1' Rank='1' Type='Windows NT Server' Protocol='https' />
         </PullDPPackageContent>
       </PullDPPackageNotification>
    </PullDPNotification>
    
  3. 提取傳送線程的 DP 會更新作業,以便啟動狀態輪詢。

    不同於標準 DP 在成功完成後刪除作業的傳送線程,提取 DP 傳送線程會更新資料表中的DistributionJobs作業,SendActionPullQueryResultAction並在成功將通知傳送至提取 DP 之後將 設定為 。

    update DistributionJobs set DPID=8,SendAction = N'PullQueryResultAction', LastUpdateTime = N'2019/01/07 21:07:14' where JobID = 194
    

    狀態消息會作為從提取 DP 回報散發狀態的主要機制,而散發作業會保留在資料庫中,直到我們收到作業成功/失敗狀態的通知為止。 PkgXferMgr 會依排程的間隔開始輪詢, (可在 [軟體發佈元件內容>提取發佈點] 索引卷標) 中設定,以檢查是否已在提取 DP 上下載內容。 雖然提取 DP 會傳送包含發佈狀態的狀態消息,但 PkgXferMgr 也會執行輪詢作為備份機制,以取得發佈狀態,以防提取 DP 因故無法將狀態消息傳送至管理點。

  4. (輪詢間隔) :建立提取 DP 傳送線程,以輪詢提取 DP 的散發狀態。

    新的提取 DP 傳送線程會在 輪詢 (分鐘之前啟動,) 軟體發佈元件屬性 中指定的值來檢查發佈狀態。 在下列範例中,它會查詢提取 DP,並發現內容已成功安裝,並將狀態消息傳送至發佈管理員。

    SMS_PACKAGE_TRANSFER_MANAGER 18724 (0x4924) 提取 DP 傳送線程從作業開始:194,套件:P010000F,版本:3,優先順序:2,伺服器:P01PDP1.CONTOSO.COM,DPPriority:200
    SMS_PACKAGE_TRANSFER_MANAGER 18724 (0x4924) ~完成將 SWD 套件P010000F第 3 版傳送到發佈點 P01PDP1.CONTOSO.COM
    SMS_PACKAGE_TRANSFER_MANAGER 18724 (0x4924) 傳送狀態給發佈管理員,適用於 pkg P010000F、第 3 版、狀態 3 和發佈點 [“Display=\\P01PDP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\~
    SMS_PACKAGE_TRANSFER_MANAGER 18724 (0x4924) STATMSG: ID=8210 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_PACKAGE_TRANSFER_MANAGER” SYS=P01SITE。CONTOSO.COM SITE=P01 PID=36968 TID=18724 GMTDATE=Mon Jan 07 22:22:16.059 2019 ISTR0=“P010000F” ISTR1=“3” ISTR2=“P01PDP1.CONTOSO.COM” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“ ISTR7=”“ ISTR8=”“ ISTR9=”“ NUMATTRS=3 AID0=400 AVAL0=”P010000F“ AID1=410 AVAL1=”3“ AID2=404 AVAL2=”[“Display=\\P01PDP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\”
    SMS_PACKAGE_TRANSFER_MANAGER 18724 (0x4924) 提取 DP 傳送線程完成~

    請注意,從提取 DP 收到成功狀態消息之後,會從資料庫中刪除作業,這會導致輪詢停止。

步驟 7:SMS DP 提供者會通知提取 DP 元件 (CcmExec) 來處理作業

NotifyPullDP執行 方法時,DP WMI 提供者會通知裝載提取 DP 元件的 CcmExec。 SMSDPProv.log 顯示:

4688 (0x1250) 成功通知 PullDP

步驟 8:提取 DP 會從 WMI 載入作業 ()

收到通知時,提取 DP 元件會從 WMI 載入作業 (的) ,以及驗證 <PackageID>。 PkgxferMgr 複製的 TZ 檔案。

適用於 P010000F.3 的 PullDP 4404 (0x1134) CPullDPService::LoadJobsFromXML
PullDP 4404 (0x1134) - P010000F.3 - XML 有 1 個內容作業。
PullDP 4404 (0x1134) CPullDPPkgContJob::LoadContentJobFromXML () :Set JobState = NotStarted
PullDP 4404 (0x1134) - P010000F.3 - 已從 XML 載入內容 {C10457F9-DE3A-4B45-878C-345919AFF97E} 的內容Content_3c9813ba-d7ab-4963-929c-36f90f479613.1...
PullDP 4404 (0x1134) CPullDPPkgJob::LoadJobFromXML () 已成功載入套件P010000F.3 的作業,有 1 個內容作業。 ...
PullDP 4404 (0x1134) 成功驗證的內容資訊哈希 E:\SMS_DP$\P010000F.tz :3ED23B9869F7E10E19439F11341405FF76E22022E56468DCF211475899BD2914
PullDP 4404 (0x1134) CPullDPService::ExecuteJobs () 。 要執行的1個作業

步驟 9:提取 DP 會建立內容作業 (的) ,以下載與套件相關聯的內容

PullDP 4404 (0x1134) P010000F.3 開始下載有 1 個內容作業。
PullDP 3812 (0xee4) 執行中的內容作業 {C10457F9-DE3A-4B45-878C-345919AFF97E} 。
PullDP 3812 (0xee4) ContentExecuteJob {C10457F9-DE3A-4B45-878C-345919AFF97E} (狀態: 1 -NotStarted) Content_3c9813ba-d7ab-4963-929c-36f90f479613.1 套件 P010000F.3 內容。

在上述範例中,作業 {C10457F9-DE3A-4B45-878C-345919AFF97E} 與內容 相關聯Content_3c9813ba-d7ab-4963-929c-36f90f479613.1。 對於具有多個內容專案的套件,您會看到 (與套件相關聯的唯一標識符) 作業數目。

PullDP 1320 (0x528) P010000A.2 開始下載有 2 個內容作業。
PullDP 5012 (0x1394) ContentExecuteJob {55692006-DFE8-4357-86D9-9839C8BF79CF} (state:1-NotStarted) 套件P010000A.2 內容 2484568c-7aba-44ae-8557-05b61d62e70d。
PullDP 4112 (0x1010) ContentExecuteJob {7175CD81-CF67-48C9-AA22-010BF60B640E} (狀態:1-NotStarted) 套件P010000A.2 內容 c085b4ba-8e8f-42bf-8e2d-bc1067697722。

步驟 10: (如果適用,) 提取 DP 下載內容簽章

(如果適用) 內容作業會建立數據傳輸服務 (DTS) 作業來下載套件簽章。 簽章檔案是從來源發佈點的虛擬目錄下載 SMSSIG$ 的 TAR 檔案,並包含內容中每個檔案的 RDC 簽章。 RDC 簽章可用來判斷檔案內容是否已變更,以及是否要下載差異內容或完整內容。 此步驟僅適用於已變更的內容,因此您不一定會看到此步驟,而且會改為看到步驟 11。

適用於套件 P010000F.3 的 PullDP 3812 (0xee4) 建立的 SignatureDownload DTS 作業 {3C962758-7ABE-40F2-A585-E5B59E378BEA},內容標識符 Content_3c9813ba-d7ab-4963-929c-36f90f479613.1。 JobState = NotStarted
PullDP 3812 (0xee4) CPullDPPkgContJob::NotifyDeltaDownload。 JobState = [下載簽章] Content_3c9813ba-d7ab-4963-929c-36f90f479613.1 for package P010000F.3 content job id {C10457F9-DE3A-4B45-878C-345919AFF97E}
PullDP 752 (0x2f0) ContentExecuteJob {C10457F9-DE3A-4B45-878C-345919AFF97E} (狀態: 4 -下載套件 P010000F.3 內容Content_3c9813ba-d7ab-4963-929c-36f90f479613.1 的簽章) 。

DataTransferService.log 會顯示 DTS 作業的進度,其會建立 BITS 作業來下載簽章檔案,並在完成時通知:

DataTransferService 3812 (0xee4) DTSJob {3C962758-7ABE-40F2-A585-E5B59E378BEA} 建立以從 '<https://P01MP.CONTOSO.COM:443/SMS_DP_SMSSIG$>' 下載 至 'E:\SMS_DP$\P010000F\Content_3c9813ba-d7ab-4963-929c-36f90f479613.1'。
DataTransferService 3856 (0xf10) 開始下載 DTS 作業 '{3C962758-7ABE-40F2-A585-E5B59E378BEA}' 的 BITS 下載。
DataTransferService 3856 (0xf10) 使用者 'S-1-5-18' 下 DTS 作業 '{3C962758-7ABE-40F2-A585-E5B59E378BEA}' 的啟動 BITS 作業 '{43647077-986C-4727-A954-B327ECA50302}'。
DataTransferService 3856 (0xf10) 新增至 BITS 作業:Content_3c9813ba-d7ab-4963-929c-36f90f479613.1.tar
DataTransferService 2528 (0x9e0) DTSJob {3C962758-7ABE-40F2-A585-E5B59E378BEA} 已成功完成下載。
DataTransferService 3856 (0xf10) 針對 DTS 作業 '{3C962758-7ABE-40F2-A585-E5B59E378BEA}' 呼叫的 Execute。 目前狀態:『RetrievedData』。
DataTransferService 3856 (0xf10) 狀態為 'NotifiedComplete' 的 DTSJob {3C962758-7ABE-40F2-A585-E5B59E378BEA} 。
DataTransferService 3856 (0xf10) DTS 作業 {3C962758-7ABE-40F2-A585-E5B59E378BEA} 已完成:

提取 DP 會收到完成通知,並處理簽章以判斷是否需要完整或差異下載。

已收到內容作業 {C10457F9-DE3A-4B45-878C-345919AFF97E} 的 PullDP 4300 (0x10cc) DTS 訊息,搜尋 1 個作用中的工作,尋找任何包含此內容作業的作業。 DTS 作業為 {3C962758-7ABE-40F2-A585-E5B59E378BEA}
針對 P010000F.3 收到的 PullDP 4300 (0x10cc) DTS 成功訊息,內容作業 {C10457F9-DE3A-4B45-878C-345919AFF97E},狀態為 0x0:
PullDP 3856 (0xf10) ContentExecuteJob {C10457F9-DE3A-4B45-878C-345919AFF97E} (狀態: Content_3c9813ba-d7ab-4963-929c-36f90f479613.1 套件 P010000F.3 內容的 5-Signature 下載) 。

步驟 11:提取 DP 會建立 DataTransferService (DTS) 作業以進行內容下載

提取 DP 會建立內容的下載作業。 在此範例中,提取 DP 上沒有內容,因此會建立套件的完整下載 DTS 作業。 DTS 作業可用來追蹤下一個步驟中 DataTransferService.log 中的下載程式:

已收到內容作業 {C10457F9-DE3A-4B45-878C-345919AFF97E} 的 PullDP 4300 (0x10cc) DTS 訊息,搜尋 1 個作用中的工作,尋找任何包含此內容作業的作業。 DTS 作業為 {3C962758-7ABE-40F2-A585-E5B59E378BEA}
針對 P010000F.3 收到的 PullDP 4300 (0x10cc) DTS 成功訊息,內容作業 {C10457F9-DE3A-4B45-878C-345919AFF97E},狀態為 0x0:
PullDP 3856 (0xf10) ContentExecuteJob {C10457F9-DE3A-4B45-878C-345919AFF97E} (狀態: Content_3c9813ba-d7ab-4963-929c-36f90f479613.1 套件 P010000F.3 內容的 5-Signature 下載) 。 ...
PullDP 3856 (0xf10) 檔案下載:ConfigMgrTools.msi
PullDP 3856 (0xf10) Content_3c9813ba-d7ab-4963-929c-36f90f479613.1:已有 0 個檔案存在,1 個檔案要下載
套件 P010000F.3 的 PullDP 3856 (0xf10) 建立的完整下載 (指令清單) DTS 作業 {78635652-3D12-4A26-A51B-D553934ECB54} 內容標識符 Content_3c9813ba-d7ab-4963-929c-36f90f479613.1,內容作業標識符 {C10457F9-DE3A-4B45-878C-345919AFF97E}。

步驟 12:DTS 會建立 BITS 作業,以下載內容並傳送完成通知

DataTransferService.log 會顯示作業的進度。 啟用提取 DP 的詳細資訊記錄後, PullDP.log 也會顯示下載進度的詳細資訊。

DataTransferService 3856 (0xf10) DTSJob {78635652-3D12-4A26-A51B-D553934ECB54} 建立,以從 '' 下載至 '<https://P01MP.CONTOSO.COM:443/SMS_DP_SMSPKG$/Content_3c9813ba-d7ab-4963-929c-36f90f479613.1>' E:\SMS_DP$\P010000F\Content_3c9813ba-d7ab-4963-929c-36f90f479613.1\3'。
DataTransferService 3812 (0xee4) 啟動 BITS 作業 '{04498466-5A8E-4A22-97F2-A66306143A20}' 使用者 'S-1-5-18' 下的 DTS 作業 '{78635652-3D12-4A26-A51B-D553934ECB54}'。
DataTransferService 3812 (0xee4) 狀態為 'DownloadingData' 的 DTSJob {78635652-3D12-4A26-A51B-D553934ECB54} 。
DataTransferService 752 (0x2f0) DTS 作業 {78635652-3D12-4A26-A51B-D553934ECB54} 已完成:

步驟 13:提取 DP 會將內容移至下載狀態

DTS 作業完成之後,提取 DP 會收到通知,並將內容移至 下載 狀態:

已收到內容作業 {C10457F9-DE3A-4B45-878C-345919AFF97E} 的 PullDP 3812 (0xee4) DTS 訊息,搜尋 1 個作用中的工作,尋找任何包含此內容作業的作業。 DTS 作業為 {78635652-3D12-4A26-A51B-D553934ECB54}
針對 P010000F.3 收到的 PullDP 3812 (0xee4) DTS 成功訊息,內容作業 {C10457F9-DE3A-4B45-878C-345919AFF97E},狀態為 0x0:
PullDP 3856 (0xf10) ContentExecuteJob {C10457F9-DE3A-4B45-878C-345919AFF97E} (狀態: 1 Content_3c9813ba-d7ab-4963-929c-36f90f479613.1 套件 P010000F.3 內容的下載) 。

步驟 14:內容會移至內容庫,而狀態會移至成功

成功 下載內容之後,提取 DP 會將內容移至內容庫 (也稱為單一實例記憶體) 。 將內容移至內容庫之後,內容會移至 SIApplied 狀態,後面接著 Succeeded 狀態。

PullDP 3856 (0xf10) CPullDPPkgContJob::ApplySingleInstancing () : JobState = Downloaded
PullDP 3856 (0xf10) CPullDPPkgContJob::NotifySIApplied () 。 JobState = SIApplied
PullDP 3812 (0xee4) 執行中的內容作業 {C10457F9-DE3A-4B45-878C-345919AFF97E} 。
PullDP 3812 (0xee4) ContentExecuteJob {C10457F9-DE3A-4B45-878C-345919AFF97E} (狀態: 1 套件 P010000F.3 內容 Content_3c9813ba-d7ab-4963-929c-36f90f479613.1 的 3-SIApplied) 。
...
PullDP 3812 (0xee4) CPullDPPkgContJob::NotifySucceeded () 。 套件P010000F.3 的內容作業 {C10457F9-DE3A-4B45-878C-345919AFF97E} 和內容 Content_3c9813ba-d7ab-4963-929c-36f90f479613.1 已順利完成。 JobState = Succeeded
PullDP 3812 (0xee4) 通知套件 P010000F.3 的內容作業 {C10457F9-DE3A-4B45-878C-345919AFF97E} 已完成。

將每個內容專案新增至內容庫之後,SMSDPProv.log也會收到通知並報告下列專案:

4688 (0x1250) 套件 'P010000F' 的內容 'Content_3c9813ba-d7ab-4963-929c-36f90f479613.1' 已成功新增至內容庫

請注意,可能會有多個與單一套件相關聯的內容專案 (例如,具有多個部署類型的應用程式或軟體更新套件) 。 針對與套件相關聯的每個內容,會針對內容下載建立 DTS 作業,並在成功完成時將內容移至內容庫 (成功狀態) 。 因此,您可能會在PullDP.log中看到套件的多個內容專案 移至成功 狀態 但如果其他屬於套件一部分的內容專案仍在下載中,則整體套件狀態可能仍會保持在進行 狀態。

步驟 15:下載所有內容之後,套件會移至「成功」狀態

封裝的所有內容作業都順利完成並套用至內容庫之後,提取 DP 會將套件移至 [成功 ] 狀態。

PullDP 3812 (0xee4) P010000F.3 的所有 1 個內容工作都已完成,通知此提取 dp 作業成功。
PullDP 3812 (0xee4) P010000F.3 已順利完成,將會清除儲存的內容作業狀態。

步驟 16:提取 DP 會將狀態消息傳送至管理點 (MP)

下載完成之後,狀態消息會傳送至狀態 標識碼為1 的管理點,指出 成功

PullDP 3812 (0xee4) 針對套件 'P010000F.3' 報告狀態消息0x00000001 (1) 至 MP
PullDP 3812 (0xee4) 要求成功。
PullDP 3812 (0xee4) CPullDPResponse::ReportPackageState 傳回值0x00000000。

啟用詳細資訊和偵錯記錄後,您可以看到整個訊息本文:

提取DP 3812 (0xee4) 傳送報表
PullDP 3812 (0xee4) <ReportHeader><><Identification><Machine><ClientInstalled>0</ClientInstalled><ClientType 1</ClientType>><Unknown>0</Unknown><ClientID IDType=“0” IDFlag=“1”>925b0ab0-247b-466b-be0f-93d7cb032c87</ClientID><ClientVersion>5.00.0000.0000</ClientVersion><NetBIOSName>P01PDP1.CONTOSO.COM</NetBIOSName><CodePage>437</CodePage><SystemDefaultLCID>1033</SystemDefaultLCID></Machine></Identification><ReportDetails><ReportContent>StateMessage</ReportContent><ReportType>Full</ReportType><Date>20190107200618.000000+000</Date><Version>1.0</Version><Format>1.1</Format></ReportDetails></ReportHeader>
<ReportBody><StateMessage MessageTime=“20190107200618.000000+000” SerialNumber=“3”><Topic ID=“P010000F” Type=“902” IDType=“0”/><State ID=“1” Criticality=“0”/><UserParameters Flags=“0” Count=“ ”4“><Param>P010000F</Param><Param>[”Display=\\P01PDP1.CONTOSO.COM\“]MSWNET:[”SMS_SITE=P01“]\\P01PDP1.CONTOSO.COM\</Param><Param>{04AD1BB3-5E54-457A-9873-DFB2E8035090}</Param><Param/Param><></UserParameters></StateMessage></ReportBody>

在內容下載期間,有中繼狀態消息傳送至 MP,其中包括下載百分比。 若要查看所有可用的狀態標識符,請參閱 內容發佈進階疑難解答秘訣

步驟 17:提取 DP 會清除 WMI 中的內容作業狀態

傳送 成功 狀態訊息之後,提取 DP 會清除封裝的作業狀態。

PullDP 3812 (0xee4) 清除套件 P010000F.3 中所有 1 個內容作業的內容作業狀態。
PullDP 3812 (0xee4) CPullDPService::ClearCompletedJobs () ,移除 1 個已完成的作業。
PullDP 3812 (0xee4) 從作業數位和 WMI 移除套件 P010000F.3 的作業。
PullDP 3812 (0xee4) 清除套件 P010000F.3 中所有 1 個內容作業的內容作業狀態。

步驟 18:MP_RELAY MP 上的端點會收到狀態消息,並將其移至月台伺服器

MP_Relay 管理點上的端點會處理狀態消息,並將狀態消息 SMX 檔案路由至 auth\statesys.box\incoming 月臺伺服器上的目錄。 如果 MP 共置於月台伺服器上, (下列範例) ,則會直接傳送至 inboxes\auth\statesys.box\incoming 目錄。 如果 MP 位於遠端,則會將它移至 \mp\outboxes\StateMsg.box MP 上的目錄,而 MP 檔案分派管理員 (MPFDM) 將檔案移至 inboxes\auth\statesys.box\incoming 月臺伺服器上的目錄。

MP_RelayEndpoint 25912 (0x6538) Mp 訊息處理程式:開始轉送的訊息處理。 -----------------------
MP_RelayEndpoint 25912 (0x6538) Mp 訊息處理程式:FileType=SMX
MP_RelayEndpoint 25912 (0x6538) 訊息本文:
<ReportHeader Identification Machine ClientInstalled>0</ClientInstalled><ClientType>1</ClientType><Unknown>0</Unknown><ClientID IDType=“0” IDFlag=“1”>925b0ab0-247b-466b-be0f-93d7cb032c87</ClientID><ClientVersion>5.00.0000.0000</ClientVersion><NetBIOSName>P01PDP1.CONTOSO.COM</NetBIOSName><CodePage>437</CodePage><SystemDefaultLCID>><><><><1033/SystemDefaultLCID/Machine></Identification><ReportDetails><ReportContent>StateMessage</ReportContent><ReportType>Full</ReportType><Date>20190107200618.000000+000</Date><Version>1.0</Version><Format>1.1</Format></ReportDetails></ReportHeader><<>
<ReportBody><StateMessage MessageTime=“20190107200618.000000+000” SerialNumber=“3”><Topic ID=“P010000F” Type=“902” IDType=“0”/><State ID=“1” Criticality=“0”/><UserParameters Flags=“0” Count=“ ”4“><Param>P010000F</Param><Param>[”Display=\\P01PDP1.CONTOSO.COM\“]MSWNET:[”SMS_SITE=P01“]\\P01PDP1.CONTOSO.COM\</Param><Param>{04AD1BB3-5E54-457A-9873-DFB2E8035090}</Param><Param/Param><></UserParameters></StateMessage></ReportBody>
</報告>
MP_RelayEndpoint 25912 (0x6538) Inv-Relay 工作:處理訊息本文
MP_RelayEndpoint 25912 (0x6538) 轉送:Outbox dir: E:\ConfigMgr\inboxes\auth\statesys.box\incoming

請注意,應在 MP 上啟用詳細資訊和偵錯記錄,以查看 MP 上的上述記錄專案。 如果沒有詳細資訊和偵錯記錄, MP_Relay.log 只會記錄 “ ”。

步驟 19:站臺伺服器上的狀態系統元件會將狀態消息處理到資料庫

當狀態消息 SMX 檔案抵達 StateSys.box\incoming 目錄之後,站臺伺服器上的狀態系統元件會處理訊息。 所有狀態消息都會藉由呼叫 spProcessReport 預存程式來處理。 針對提取 DP 狀態消息, spProcessReport 呼叫 spProcessPullDPMessage 會以狀態消息詳細數據更新 PullDPResponse 數據表。

SMS_STATE_SYSTEM 23544 (0x5bf8) CMessageProcessor - 處理檔案:N_6RB4OA3A。SMX
SMS_STATE_SYSTEM 23544 (0x5bf8) CMessageProcessor - DB exec dbo.spProcessStateReport N'?<ReportHeader Identification Machine ClientInstalled>0</ClientInstalled><ClientType>1</ClientType><Unknown>0</Unknown><ClientID IDType=“0” IDFlag=“1”>925b0ab0-247b-466b-be0f-93d7cb032c87</ClientID><ClientVersion>5.00.0000.0000</ClientVersion><NetBIOSName>P01PDP1.CONTOSO.COM</NetBIOSName><CodePage>437</CodePage><SystemDefaultLCID>><><><><1033/SystemDefaultLCID/Machine/Identification ReportDetails><ReportContent>StateMessage</ReportContent><ReportType>Full</ReportType><Date>20190107200618.0000000+000</Date><Version>2 1.0</版本><格式>1.1</Format></ReportDetails></ReportHeader>~~ <ReportBody><StateMessage MessageTime=“20190107200618.000000+000” SerialNumber=“3”><<><><><主題 ID=“P010000F” Type=“902” IDType=“0”/><State ID=“1” Criticality=“0”/><UserParameters Flags=“0” Count=“4”><Param>P010000F</Param><Param>[“Display=\\P01PDP1.CONTOSO.COM\”]MSWNET:[[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\</Param><Param>{04AD1BB3-5E54-457A-9873-DFB2E8035090}</Param><Param/Param><></UserParameters></StateMessage></ReportBody>~~</Report>~'

請注意,除非已啟用 StateSys.log 的詳細資訊記錄, 否則StateSys.log 不會記錄訊息本文。 若要啟用 StateSys.log的詳細信息記錄,請參閱 啟用詳細信息記錄

以下是處理提取 DP 狀態訊息的預存程式摘錄 spProcessReport

else if @TopicType=902 -- Pull Distribution Point  
        exec @Ret=spProcessPullDPMessage @SenderID=@SenderID, @MessageTime=@tmMessageTime, @PkgID=@TopicID, @PkgVersion=@MessageSerialNumber, @StateID=@StateID, @P1=@P1, @P2=@P2, @P3=@P3, @P4=@P4, @P5=@P5, @Error=@Error OUTPUT  

步驟 20:SMSDBMON 會通知 DistMgr 更新狀態

更新資料表之後 PullDPResponse ,SMSDBMON 會偵測數據表中的變更並卸除 DIStMgr 要處理的 PUL 檔案,其中的檔名會識別插入/修改的數據列。

SMS_DATABASE_NOTIFICATION_MONITOR 29748 (0x7434) RCV:PullDPResponse 上的 INSERT for PullDPResponse_UpdIns [72057594037928008 ][145014]
SMS_DATABASE_NOTIFICATION_MONITOR 29748 (0x7434) SND:Dropped E:\ConfigMgr\inboxes\distmgr.box\incoming\72057594037928008.PUL [145014]

步驟 21:DistMgr 會更新發佈狀態

DistMgr 會處理 。PUL 檔案,並根據檔名從 PullDPResponse 數據表擷取數據列,並更新封裝狀態。 處理回應之後,DistMgr 會從數據表中刪除已處理的數據 PullDPResponse 列。

SMS_DISTRIBUTION_MANAGER 32876 (0x806c) SQL>>>選取 s.ID、s.PkgServer、s.SiteCode、p.StoredPkgVersion、s.Status、r.PkgVersion、r.ActionState、r.ActionData、 p.PkgFlags、p.ShareType、CONVERT (VARCHAR (64) 、r.MessageTime、127) 來自 PullDPResponse r 的 AS MessageTime join PkgStatus s on r.PkgStatusID = s.PKID AND r.PkgStatusID = 72057594037928008 join SMSPackages p on s.ID = p.PkgID
SMS_DISTRIBUTION_MANAGER 32876 (0x806c) ~Processing PullDP 回應 P01 - [“Display=\\P01PDP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\
SMS_DISTRIBUTION_MANAGER 32876 (0x806c) 套件P010000F、第 3 版 (3) 、ActionState 1、PkgStatus 0、ActionData =
SMS_DISTRIBUTION_MANAGER 32876 (0x806c) ~已成功更新套件P010000F的 [“Display=\\P01PDP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\ 套件伺服器狀態,狀態 3
SMS_DISTRIBUTION_MANAGER 32876 (0x806c) SQL>>>DELETE FROM PullDPResponse WHERE PkgStatusID = 72057594037928008 AND MessageTime = '2019-01-07T20:06:18'
SMS_DISTRIBUTION_MANAGER 32876 (0x806c) ~已成功處理提取DP 回應檔案 E:\ConfigMgr\inboxes\distmgr.box\INCOMING\72057594037928008.PUL

步驟 22:資料庫複寫會將狀態變更複寫到其他月臺

在資料庫中更新封裝狀態之後,它會透過資料庫複寫複寫複寫到其他月臺。

更新套件

當您更新套件時,套件內容會重新傳送至封裝發佈至的所有發佈點。 這是透過遞增套件來源版本來完成,而且只會將內容變更傳送至 DPS,而不是再次傳送所有內容。

下列步驟概述更新封裝時所發生的事件流程。 在此範例中,我們將查看在主要月臺建立之封裝的套件更新作業,並著重於封裝更新作業的特定程序變更。

步驟 1:管理主控台會針對 SMS_Package SMS 提供者命名空間中的 WMI 類別執行 RefreshPkgSource 方法

系統管理員從主控台更新套件之後,管理主控台會呼叫 RefreshPkgSource 類別的 SMS_Package 方法來更新套件。 SMSProv.log 顯示下列專案:

SMS 提供者 4716 (0x126c) 內容:SMSAppName=Configuration Manager 系統管理員控制台~
SMS 提供者 4716 (0x126c) ExecMethodAsync : SMS_Package.PackageID=“<PackageID>”::RefreshPkgSource ~
SMS 提供者 4716 (0x126c) CExtProviderClassObject::D oExecuteMethod RefreshPkgSource~
SMS 提供者 4716 (0x126c) 稽核:使用者 CONTOSO\管理員 呼叫類別SMS_Package實例的稽核方法。~

呼叫這個方法時,SMS 提供者會 SMSPackages 更新 ,將 Action 設為 1 (UPDATE) ,並在數據表中 PkgNotification 插入數據列。

update SMSPackages set Source = N'\\PS1SITE\SOURCE\Packages\200MB_1', StoredPkgVersion = 1, UpdateMask = 32, UpdateMaskEx = 8388608, Action = 1 where PkgID = N'PackageID'
insert PkgNotification (PkgID, Priority, Type, TimeKey) values (N'PackageID', 2, 1, GetDate())  

步驟 2:SMSDBMON 會通知 DistMgr 處理套件

SMSDBMON 會偵測數據表中的 PkgNotification 變更,導致其卸除 <PackageID>。中的DistMgr.box PKN 檔案,指示 DistMgr 處理套件:

SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) RCV:PkgNotification 上的 INSERT PkgNotify_Add [<PackageID>][1036610]
SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) SND:Dropped E:\ConfigMgr\inboxes\distmgr.box\<PackageID>。PKN [1036610]

步驟 3:DistMgr 會在收到 PKN 檔案之後喚醒以處理套件

  1. 主要 DistMgr 線程會啟動封裝處理線程。

    主要 DistMgr 線程會將封裝新增至封裝處理佇列,並建立封裝處理線程。

    SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) 找到套件 '<PackageID>' 的已更新套件屬性通知
    SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) 將套件 '<PackageID>' 新增至封裝處理佇列。
    SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) ~目前使用 3 個允許套件處理線程中的 0 個。
    SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) 套件 'PackageID>'< 的 ~Started 套件處理線程,線程標識碼 = 0x1690 (5776)

  2. 封裝處理線程會建立套件快照集、將內容寫入內容庫,並遞增套件版本。

    在此案例中,套件處理線程 (線程標識碼 5776,) 開始處理封裝並建立封裝快照集。 建立套件快照集之後,此線程也會將套件內容寫入月臺伺服器上的內容庫:

    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~處理套件 <PackageID> (SourceVersion:1;StoredVersion:1)
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 開始更新套件 <PackageID>...
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 從來源 \\PS1SITE\SOURCE\Packages\200MB_1擷取套 <件 PackageID> 的套件快照集
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 套件 <PackageID> 的大小,第 2 版為 204800 KB
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 為 PackageID 撰寫套件 <定義>
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~已成功建立套 <件 PackageID> 第 2 版的 RDC 簽章
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 建立演算法 32780 的哈希
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 演算法 32780 的哈希為 <HashString>
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 演算法 32780 的 RDC 簽章哈希為 79A56464F7BAC44B3D183D5EFC1160E51F95A34FECA492AAD73BC73C8B6DBA38
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) STATMSG: ID=2376 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=5776 GMTDATE=Tue May 17 18:31:23.782 2016 ISTR0=“PS100039” ISTR1=“” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=1 AID0=400 AVAL0=“PS100039”
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~套件PS100039的來源已變更,或需要重新整理套件來源
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~將這些內容新增至套件PS100039第 2 版。
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~套件動作為 1,更新遮罩為 32,UpdateMaskEx 為 0。
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~使用磁碟驅動器 E 來儲存壓縮的套件。
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~成功建立/更新套件PS100039。
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) STATMSG: ID=2311 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=5776 GMTDATE=Tue May 17 18:31:23.982 2016 ISTR0=“PS100039” ISTR1=“” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=1 AID0=400 AVAL0=“PS100039”

  3. 封裝處理線程進程會啟動 DP 線程來處理封裝動作,然後等候它們結束。

    封裝處理線程會處理封裝動作以更新封裝,這牽涉到在此套件散發的所有 DP 上更新套件。 因為有要處理的封裝動作,所以封裝處理線程會建立 DP 線程來執行這些動作,並等候 DP 線程結束再繼續。

    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 開始更新伺服器 [“Display=\\PS1SITE.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1SITE.CONTOSO.COM\... 上的套件PS100039
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~針對伺服器 [“Display=\\PS1SITE.CONTOSO.COM\”] MSWNET:[“SMS_SITE=PS1”]\\PS1SITE.CONTOSO.COM\ 上新增或更新套件PS100039建立的 DP 處理線程 920
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 開始更新伺服器 [“Display=\\PS1SYS.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1SYS.CONTOSO.COM\... 上的套件PS100039
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~針對伺服器 [“Display=\\PS1SYS.CONTOSO.COM\”] MSWNET:[“SMS_SITE=PS1”]\\PS1SYS.CONTOSO.COM\ 上新增或更新套件PS100039建立的 DP 處理線程 2060
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 開始更新伺服器 [“Display=\\PS1DP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\... 上的套件PS100039
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~針對伺服器 [“Display=\\PS1DP1.CONTOSO.COM\”] MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\ 上新增或更新套件PS100039建立的 DP 處理線程 6076
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 開始更新伺服器 [“Display=\\PS1DP2.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\... 上的套件PS100039
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~針對伺服器 [“Display=\\PS1DP2.CONTOSO.COM\”] MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\ 上新增或更新套件PS100039建立的 DP 處理線程 5948
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~等候所有 DP 線程完成封裝PS100039處理線程。

  4. DP 線程會啟動並建立 PkgXferMgr 作業,以將內容傳送至 DPS,然後結束。

    DP 線程會開始建立 PkgXferMgr 作業,以更新 DPS 上的套件。 此時,有四個 DP 線程可供四個不同的 DP 使用:

    SMS_DISTRIBUTION_MANAGER 5948 (0x173c) DP 線程:嘗試在 DP [“Display=\\PS1DP2.CONTOSO.COM\”] MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\ 上新增或更新套件PS100039
    SMS_DISTRIBUTION_MANAGER 5948 (0x173c) ~建立封裝傳輸作業,將套件PS100039傳送至發佈點 [“Display=\\PS1DP2.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\。
    SMS_DISTRIBUTION_MANAGER 5948 (0x173c) 在傳回之前執行清除。
    SMS_DISTRIBUTION_MANAGER 5948 (0x173c) 取消與 \\PS1DP2.CONTOSO.COM\ADMIN$ 的網络連線。

    當 DP 線程建立 PkgXferMgr 作業時,它會藉由在數據表中 DistributionJobs 插入數據列來執行此動作。

    insert into DistributionJobs (DPID,PkgID,PackageVersion,State,CreationTime,Action) values(35,N'PS100039',2,0,N'2016/05/17 14:31:35',1)
    
  5. (如果適用,) 封裝處理線程會建立迷你作業,以將封裝的壓縮複本傳送至其他月臺。

    在所有 DP 線程都完成運作之後,套件處理線程會建立迷你作業,以在適用時將封裝的壓縮複本傳送至其他月臺。 排程器會處理此迷你作業,以建立傳送要求,讓發件者將封裝的壓縮複本傳送到目的地月臺:

    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~所有 DP 線程都已完成封裝PS100039處理線程。
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~Package PS100039 沒有慣用的發件者。
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) STATMSG: ID=2333 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=5776 GMTDATE=Tue May 17 18:31:44.977 2016 ISTR0=“PS100039” ISTR1=“PS2” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=1 AID0=400 AVAL0=“PS100039” ...
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~需要將封裝PS100039的壓縮套件傳送至月臺 PS2
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~將套件PS100039複本傳送至網站 PS2
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~使用磁碟驅動器 E 來儲存壓縮的套件。
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~設定 CMiniJob 將根目錄傳送至 E:\SMSPKG\PS100039。DLT.1.2
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~建立的迷你Job,將封裝PS100039的壓縮複本傳送至網站 PS2。 傳送根 = E:\SMSPKG\PS100039。DLT.1.2。 ...
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~需要將封裝PS100039的壓縮套件傳送至月臺 SS1
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~將套件PS100039複本傳送至月臺 SS1
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~使用磁碟驅動器 E 來儲存壓縮的套件。
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~設定 CMiniJob 將根目錄傳送至 E:\SMSPKG\PS100039。DLT.1.2
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~建立的迷你Job,以將封裝PS100039的壓縮複本傳送至月臺 SS1。 傳送根 = E:\SMSPKG\PS100039。DLT.1.2。

  6. 封裝處理線程會在處理封裝之後結束:

    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 套件PS100039是新的或已變更,會復寫到所有適用的網站。
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~CDistributionSrcSQL::UpdateAvailableVersion PackageID=PS100039, Version=2, Status=2301
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~StoredPkgVersion (套件PS100039的 2) 。 資料庫中的 StoredPkgVersion 為 2。
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~SourceVersion (套件PS100039的 2) 。 資料庫中的SourceVersion為2。
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) STATMSG: ID=2301 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=5776 GMTDATE=Tue May 17 18:31:45.415 2016 ISTR0=“Dummy2” ISTR1=“PS100039” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=1 AID0=400 AVAL0=“PS100039”
    SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~結束套件PS100039的套件處理線程。

步驟 4:SMSDBMON 通知 PkgXferMgr 處理作業

SMSDBMON 會偵測數據表中的 DistributionJobs 變更,並在 中 PkgTransferMgr.box 卸除 PKN 檔案,以指示 PkgXferMgr 處理作業:

SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) RCV:DistributionJob_Creation的 DistributionJobs 更新 [PS100039 ][1036623]
SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) SND:Dropped E:\ConfigMgr\inboxes\PkgTransferMgr.box\PS100039。PKN [1036623]

步驟 5:PkgXferMgr 喚醒以處理作業

針對標準 DP,傳送線程會將內容複製到 DP,而其餘進程則與將 套件發佈至標準 DP 的步驟 6 中所述的程式相同。

針對提取 DPS,提取 DP 傳送線程會將通知傳送至提取 DP 以執行內容下載。 然後,提取 DP 會從來源 DP 下載內容,而其餘程式與 散發套件以提取 DP 的步驟 6 中所述的程式相同。

步驟 6:套件狀態變更會透過 DRS 複寫到其他網站

在資料庫中更新封裝狀態之後,它會透過資料庫複寫複寫複寫到其他月臺。

重新發佈套件

當您將套件轉散發至 DP 時,即使內容已存在於 DP 上的內容庫中,所有封裝內容檔案都會重新複製到 DP。

下列步驟概述將套件轉散發至 DP 時所發生的事件流程。 在此範例中,主要月臺伺服器已經有封裝的壓縮複本。 此程式與將 套件散發至標準 DP散發套件以提取 DP 中所述的程式相同,因此我們只會查看相關變更的詳細記錄代碼段。

步驟 1:系統管理員將套件轉散發給 DP

步驟 2:如果系統管理員從不同的主要月臺或管理中心網站轉散發套件,DRS 會將變更復寫至有問題的網站

步驟 3:SMSDBMON 會通知 DistMgr 處理套件

步驟 4:DistMgr 喚醒以處理套件

  1. 主要 DistMgr 線程會啟動封裝處理線程。

  2. 封裝處理線程會建立 DP 線程來處理封裝動作,並等候它們結束。

  3. DP 線程會建立 PkgXferMgr 作業,以將套件新增至 DPS,然後結束。

    DP 線程開始著手將套件新增至 DP。 DP 線程不會直接將套件內容複製到 DP,而是建立套件傳輸管理員 (PkgXferMgr 的作業,) 指示它將套件內容複製到 DP。 下列記錄項目顯示建立 PkgXferMgr 作業的 DP 線程。 建立作業之後,DP 線程的工作就會完成,而 DP 線程就會結束。

    SMS_DISTRIBUTION_MANAGER 3792 (0xed0) DP 線程:嘗試在 DP 上新增或更新套 <件 PackageID> [“Display=\\PS1DP2.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\
    SMS_DISTRIBUTION_MANAGER 3792 (0xed0) ~建立套件傳輸作業,將套件 <PackageID> 傳送至發佈點 [“Display=\\PS1DP2.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\。
    SMS_DISTRIBUTION_MANAGER 3792 (0xed0) STATMSG: ID=2357 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=3792 GMTDATE=Mon May 16 19:26:58.642 2016 ISTR0=“<PackageID>” ISTR1=“[”Display=\\PS1DP2.CONTOSO.COM\“]MSWNET:[”SMS_SITE=PS1“]\\PS1DP2.CONTOSO.COM\” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=2 AID0=400 AVAL0=“<PackageID>” AID1=404 AVAL1=“[”Display=\\PS1DP2.CONTOSO.COM\“]MSWNET:[”SMS_SITE=PS1“]\\PS1DP2.CONTOSO.COM\”

    當 DP 線程建立 PkgXferMgr 作業時,它會藉由在數據表中 DistributionJobs 插入數據列來執行此動作。 若要轉散發套件, 動作 會設定為 2

    insert into DistributionJobs (DPID,PkgID,PackageVersion,State,CreationTime,Action) values(32,N'CS100026',1,0,N'2016/05/16 16:03:49',2)
    
  4. 封裝處理線程會在所有 DP 線程結束之後結束。

步驟 5:SMSDBMON 通知 PkgXferMgr 處理作業

步驟 6:PkgXferMgr 喚醒以處理作業

  1. 主要 PkgXferMgr 線程會建立傳送線程。

  2. 傳送線程或提取 DP 傳送線程會處理作業。

    標準 DP:

    傳送線程會開始將套件內容複製到 DP。 此程式牽涉到將封裝中的所有檔案複製到目錄中的 SMS_DP$ DP。 由於套件已重新發佈,因此 PkgXferMgr 會顯示 Redistribute 設定為 1,這表示即使所有檔案都已存在於 DP 上的內容庫中,也會重新複製到 DP。

    SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) 從作業開始傳送線程:583,套件: <PackageID>,版本:1,優先順序:2,伺服器:PS1DP1.CONTOSO.COM,DPPriority:200
    SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) 針對 pkg <PackageID>、第 1 版、狀態 0 和發佈點 [“Display=\\PS1DP1.CONTOSO.COM\”] MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\~ 將狀態傳送給發佈管理員
    SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) 執行 preactions 套件 <PackageID>、發佈點 PS1DP1.CONTOSO.COM
    SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) 傳送套件 <PackageID 的舊版內容 <PackageID.1>>
    SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) Redistribute=1, Related=
    SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) 傳送檔案 '\\PS1DP1.CONTOSO.COM\SMS_DP$\73E055438D4731F41DB6C3BCB90919F60000226B330C73942454A174D7E26533-PackageID.1.temp<>'
    SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) ~傳送已啟動 [E:\SCCMContentLib\FileLib\73E0\73E055438D4731F41DB6C3BCB90919F60000226B330C73942454A174D7E26533]
    SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) ~嘗試將 983040 字節寫入至 \\PS1DP1.CONTOSO.COM\SMS_DP$\73E055438D4731F41DB6C3BCB90919F60000226B330C73942454A174D7E26533-PackageID.1.temp<> 位置208732160
    SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) ~將 983040 字節寫入至 \\PS1DP1.CONTOSO.COM\SMS_DP$\73E055438D4731F41DB6C3BCB90919F60000226B330C73942454A174D7E26533-PackageID.1.temp<>,位置208732160 344 刻度
    SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) ~傳送完成 [E:\SCCMContentLib\FileLib\73E0\73E055438D4731F41DB6C3BCB90919F60000226B330C73942454A174D7E26533]
    SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) 已完成遠端 DP PS1DP1.CONTOSO.COM 的後續動作
    SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) ~傳送成功完成
    SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) ~已完成將 SWD 套件 <PackageID> 第 1 版傳送至發佈點 PS1DP1.CONTOSO.COM
    SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) STATMSG: ID=8200 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_PACKAGE_TRANSFER_MANAGER” SYS=PS1SITE。CONTOSO.COM SITE=PS1 PID=5428 TID=5272 GMTDATE=Mon May 16 20:06:36.827 2016 ISTR0=“<PackageID>” ISTR1=“1” ISTR2=“PS1DP1.CONTOSO.COM” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=2 AID0=400 AVAL0=“<PackageID>” AID1=410 AVAL1=“1”

    擷取 DP:

    提取 DP 傳送線程會將通知傳送至提取 DP,以開始下載內容。 由於套件已轉散發,因此產生的通知 XML 會顯示 Action 設定為 可轉散發,這表示即使提取 DP 的內容庫中已經存在所有檔案,提取 DP 也會重新下載這些檔案。

    以下是產生通知 XML 查詢的範例查詢如何顯示動作在內容重新發佈后已散發:

    SELECT [dbo].[fnGetPullDPXMLNotification]('P010000F', 3, 'P01PDP1.CONTOSO.COM', 2, 'redist', 1, 'O:SYG:BAD:P(A;;FA;;;BA)(A;OICIIO;GA;;;BA)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)(A;;FA;;;BA)(A;OICIIO;GA;;;BA)', 0, 32780, '3ED23B9869F7E10E19439F11341405FF76E22022E56468DCF211475899BD2914', '') AS Notification
    

    在收到轉散發動作的通知時, PullDP.log 會顯示即使內容庫中可能存在部分/所有內容,所有內容都會重新上傳。

    PullDP 3676 (0xe5c) Content_3c9813ba-d7ab-4963-929c-36f90f479613.1:重新發佈/重載所有檔案

    完成此動作之後,剩餘的程式會與 散發套件以提取 DP 的步驟 6 中所述的程序類似。

  3. 傳送線程會將狀態消息傳送至 DistMgr。

步驟 7:SMS DP 提供者將內容新增至內容庫

步驟 8:DistMgr 會處理 PkgXferMgr 所傳送的狀態消息

步驟 9:套件狀態變更會透過 DRS 複寫到其他網站