內容發佈中的套件動作
本文可協助您了解內容發佈中的套件動作。
原始產品版本: Configuration Manager 最新分支、Microsoft System Center 2012 Configuration Manager、Microsoft System Center 2012 R2 Configuration Manager
簡介
內容發佈中的套件動作分成下列各項:
散佈
與內容發佈相關的第一個主要動作是發佈動作。 這是指套件的初始發佈至發佈點。 這是由 Configuration Manager 控制台中的 [發佈內容] 精靈所觸發。 這會將套件中的所有檔案傳送至目標發佈點,但不包括已存在於 DP 內容庫中作為另一個套件一部分的檔案。 如果套件包含發佈點上內容庫中已有的任何檔案,這些檔案會在多個套件之間共用。
更新
第二個主要動作是更新動作。 當套件已變更,且發佈至該套件的所有發佈點都需要更新的內容時,通常會使用此方式。 這會在 控制台中使用 [更新發佈點 ] 動作來觸發。 這會將變更的檔案傳輸至所有發佈點。 不會傳輸未變更的檔案。 如果檔案已從更新版本中的套件中移除,則會從發佈點上的套件中刪除該檔案(只要沒有共用檔案的其他套件位於 DP 上)。
分配
第三個主要動作是使用 Configuration Manager 控制台中的 [轉散發] 觸發 的 [轉 散發] 動作。 這會將整個內容傳輸到特定發佈點。 即使檔案已存在於發佈點上的內容庫中,也會傳輸和覆寫檔案。 重新發佈動作的主要目的是更正內容庫中可能存在的任何不一致。
建立套件
下列步驟說明當您從系統管理員控制台建立尚未散發至任何 DPS 的新套件時,事件的流程:
步驟 1:管理主控台會建立 類別的 SMS_PackageWMI
實例
系統管理員在控制台中建立套件之後,管理主控台會在新建立套件的 SMS 提供者命名空間內建立 WMI 類別的實例 SMS_Package
。 SMSProv.log顯示下列專案:
SMS Provider 4680 (0x1248) CExtProviderClassObject::D oPutInstanceInstance~
SMS 提供者 4680 (0x1248) 稽核:使用者 CONTOSO\Admin 已建立類別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 會偵測變更,並通知 DistMgr 卸除 <PackageID> 來處理封裝。PKN 檔案
SMSDBMON 會偵測數據表中的PkgNotification
變更,這會導致它卸除 <PackageID。>中的 DistMgr.box
PKN 檔案,指示 DistMgr 處理套件:
SMS_DATABASE_NOTIFICATION_MONITOR 3240 (0xca8) RCV: PkgNotification 上的 INSERT for PkgNotify_Add [<PackageID>][850902]
SMS_DATABASE_NOTIFICATION_MONITOR 3240 (0xca8) SND:Dropd E:\ConfigMgr\inboxes\distmgr.box\<PackageID>。PKN [850902]
步驟 3:DistMgr 處理套件來源網站上的套件
DistMgr 會在 中 DistMgr.box
偵測到 PKN 檔案之後處理套件。 DistMgr 處理是由多個線程執行。
主要 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' 的已啟動封裝處理線程,線程標識碼 = 0x16A8 (5800)封裝處理線程會建立套件快照集,並在內容庫中寫入內容。
封裝處理線程 (在此案例中為線程標識碼 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 KBytes
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>”封裝處理線程會將封裝複寫至其他月臺。
接著,封裝處理線程會將封裝複寫至階層中的其他月臺。 套件元數據資訊會透過資料庫複寫複寫複寫至其他月臺,而封裝檔案則使用檔案復寫進行複寫。 不過,只有在該站台中至少有一個 DP 新增至套件時,才會將套件檔案傳送至月臺。 封裝檔案會在傳送至另一個月臺之前壓縮。 在此情況下,由於沒有將 DP 設為目標,因此只會將套件元數據復寫到其他網站,但不會復寫套件檔案。
SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) ~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 (1) 套件 <PackageID>。 資料庫中的 StoredPkgVersion 為 1。
套件 PackageID> SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) ~SourceVersion (1) <。 資料庫中的SourceVersion為1。
SMS_DISTRIBUTION_MANAGER 5800 (0x16a8) ~將這些內容新增至套件 <PackageID> 第 1 版。封裝處理線程會結束。
封裝處理線程會在封裝處理完成之後結束,並引發標識碼為 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 for PkgNotify_Add [<PackageID> ][1035019]
SMS_DATABASE_NOTIFICATION_MONITOR 3120 (0xc30) SND: Dropd E:\ConfigMgr\inboxes\distmgr.box\<PackageID>。PKN [1035019]
步驟 6:(如果適用) 接收站臺上的 DistMgr 會處理套件
在接收站臺上,在收到 之後。PKN 檔案 DistMgr 會喚醒以處理套件。
主要 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>' 的已啟動封裝處理線程,線程標識碼 = 0x1378 (4984)封裝處理線程會處理封裝。
在此情況下,此線程不會執行任何動作,因為沒有目標 DPS。
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) ~為標識符 <PackageID 建立的原則提供者觸發程式>
SMS_DISTRIBUTION_MANAGER 4984 (0x1378) ~PackageID <> 沒有慣用的發件者。
SMS_DISTRIBUTION_MANAGER 4984 (0x1378) ~CDistributionSrcSQL::UpdateAvailableVersion PackageID=<PackageID>, Version=1, Status=2301
SMS_DISTRIBUTION_MANAGER 4984 (0x1378) ~PackageID> 的 <StoredPkgVersion (0) 。 資料庫中的 StoredPkgVersion 為 0。
套件 PackageID> SMS_DISTRIBUTION_MANAGER 4984 (0x1378) ~SourceVersion (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:管理主控台會呼叫 AddDistributionPoints
類別上的 SMS_PackageWMI
方法,將 DP 新增至套件
系統管理員從主控台將套件散發至 DP 之後,管理主控台會呼叫 AddDistributionPoints
類別的 SMS_Package
方法,將指定的 DP 新增至套件。 SMSProv.log顯示下列專案:
SMS 提供者 4616 (0x1208) 內容: SMSAppName=Configuration Manager 系統管理員控制台~
SMS 提供者 4616 (0x1208) ExecMethodAsync : SMS_Package.PackageID=“<PackageID>”::AddDistributionPoints~
SMS Provider 4616 (0x1208) CExtProviderClassObject::D oExecuteMethod AddDistributionPoints~
SMS 提供者 4616 (0x1208) 稽核:使用者 CONTOSO\Admin 呼叫類別實例的稽核方法SMS_Package。~
呼叫此方法時,SMS 提供者會在 中 PkgServers
插入數據列,並將 Action
設定為 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 for PkgNotify_Add [<PackageID> ][850967]
SMS_DATABASE_NOTIFICATION_MONITOR 4944 (0x1350) SND: Dropd E:\ConfigMgr\inboxes\distmgr.box\<PackageID>。PKN [850967]
步驟 3:接收 PKN 檔案之後,DistMgr 會喚醒以處理套件
主要 DistMgr 線程會建立封裝處理線程。
主要 DistMgr 線程會將封裝新增至封裝處理佇列,並建立封裝處理線程。
SMS_DISTRIBUTION_MANAGER 2496 (0x9c0) 將套件 '<PackageID>' 新增至封裝處理佇列。
SMS_DISTRIBUTION_MANAGER 2496 (0x9c0) ~目前使用 3 個允許的封裝處理線程中的 0 個。
SMS_DISTRIBUTION_MANAGER 2496 (0x9c0) ~套件 '<PackageID>' 的已啟動封裝處理線程,線程標識碼 = 0x1164 (4452)封裝處理線程會處理封裝動作。
封裝處理線程會處理封裝動作,以新增/更新/移除 DP 中的套件。 在此情況下,套件來源月臺是管理中心網站,而且沒有要處理的套件動作,因為管理中心網站不包含任何 DP。 在有封裝動作要處理的站臺上,封裝處理線程會建立 DP 線程來執行這些動作,並等候 DP 線程結束,再移至步驟 3-3。
SMS_DISTRIBUTION_MANAGER 4452 (0x1164) ~處理封裝 <PackageID> (SourceVersion:1;StoredVersion:1)
SMS_DISTRIBUTION_MANAGER 4452 (0x1164) 未指定套件 <PackageID> 的動作,不過此套件可能會有套件伺服器變更。封裝處理線程會建立迷你作業,以將封裝的壓縮複本傳送至目的地月臺。
此迷你作業會由排程器處理,以建立傳送者的傳送要求,以將封裝壓縮的複本傳送至目的地網站:
SMS_DISTRIBUTION_MANAGER 4452 (0x1164) ~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,count = 1
SMS_DISTRIBUTION_MANAGER 4452 (0x1164) ~已建立迷你工作,以將套件 <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處理封裝之後,封裝處理線程就會結束:
SMS_DISTRIBUTION_MANAGER 4452 (0x1164) ~StoredPkgVersion (1) 套件 <PackageID>。 資料庫中的 StoredPkgVersion 為 1。
套件 PackageID> SMS_DISTRIBUTION_MANAGER 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 Remaining:204864k 活動訊號:12:23 開始時間:12:00 完成:12:00 重試:SWD PkgID:PackageID> SWD Pkg 版本:<1
步驟 5:寄件者元件開始處理傳送要求
傳送者元件會處理傳送要求,並將封裝的壓縮複本傳送至目的地月臺。
主要傳送者線程會啟動傳送線程,這是將執行此傳送要求之所有工作的線程。
SMS_LAN_SENDER 6700 (0x1a2c) 找到傳送要求。 標識碼: 202SQCS1, Dest Site: PS1~
SMS_LAN_SENDER 6700 (0x1a2c) 檢查網站特定的傳送容量。 已使用 0/3。~
SMS_LAN_SENDER 6700 (0x1a2c) ~已建立傳送線程 (線程標識符 = 1150)傳送線程會處理傳送要求,並將壓縮套件檔案 (PCK 檔案) 複製到目的地月臺,以及套件指令檔案 (SNI 檔案)。
SMS_LAN_SENDER 4432 (0x1150) ~嘗試 1 號位址 (1)
SMS_LAN_SENDER 4432 (0x1150) ~通過 xmit 檔案測試,請使用現有的連線
SMS_LAN_SENDER 4432 (0x1150) ~套件檔案 = E:\SMSPKG\<PackageID>。PCK.1
SMS_LAN_SENDER 4432 (0x1150) ~指令檔 = 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。位於位置的 PCK 209398784
SMS_LAN_SENDER 4432 (0x1150) ~將380731個字節寫入 \\PS1SITE.CONTOSO.COM\SMS_SITE\202SQCS1。位於位置 的 PCK 209398784
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 completed [\\PS1SITE.CONTOSO.COM\SMS_SITE\202SQCS1。TMP]
SMS_LAN_SENDER 4432 (0x1150) ~傳送成功完成傳送線程會將這些檔案
SMS_SITE
複製到接收網站上的共用。提示
sender.log檔案會持續記錄寫入的位置。 例如,位置在 上述記錄檔 中209398784。 這個位置是寫入其中的位元組位移,而您可以藉由轉換此值來找出已複製的數據量。 例如,209398784個字節 = 199.69 MB。
步驟 6:排程器元件會將作業標示為已完成,並刪除傳送要求
排程器元件會監視傳送要求,並在 Sender 完成處理傳送要求之後,排程器會將作業標示為完成,並刪除傳送要求:
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) 已刪除的工作 JOBID。~
在此步驟之後,傳送月臺就沒有其他工作要做,而接收月臺會開始處理封裝。
在目的地網站上
步驟 7:Despooler 處理 PCK 和 SNI 檔案
在步驟 5 期間, PCK 和 SNI 檔案會複製到 SMS_SITE
接收網站上的共用。 在每個 Configuration Manager 站臺上 ,\inboxes\despoolr.box\receive 資料夾會共用為 SMS_SITE
。 當這些檔案抵達 despoolr.box\receive 資料夾時, despooler
元件會喚醒以處理 SNI 檔案,也就是指令檔。
主要還原緩衝處理線程會建立還原緩衝處理線程。
主要 Despooler 會尋找指令檔案,並建立還原緩衝處理線程來處理指令檔案:
SMS_DESPOOLER 6128 (0x17f0) ~找到就緒指示 202sqcs1.sni
SMS_DESPOOLER 6128 (0x17f0) ~在 3 個還原緩衝處理線程中使用了 0 個
SMS_DESPOOLER 6128 (0x17f0) ~建立新的還原緩衝處理線程 EE8(偶爾)還原緩衝處理線程有時無法在第一次嘗試時處理指示,並在 5 分鐘後重試。
還原緩衝處理線程會處理指令檔案,不過在許多情況下,第一次還原緩衝處理器會嘗試處理套件的指令檔案,因為套件元數據資訊尚未復寫到接收月臺,所以「套件資訊尚未送達」訊息而失敗。 發生這種情況時,despooler.log顯示「錯誤碼 = 12」,但在五分鐘后重試此指令,因為套件資訊會在這段期間複寫時成功。 步驟 7-3 顯示重試時指令的成功處理。
SMS_DESPOOLER 3816 (0xee8) ~確認指示 E:\ConfigMgr\inboxes\despoolr.box\receive\ds_s76nc.ist MICROSOFT 類型的簽章|SMS|MINIJOBINSTRUCTION|包
SMS_DESPOOLER 3816 (0xee8) ~簽章取出 [確定] 以取得來自網站 CS1 的指示,請繼續進行指令執行。
SMS_DESPOOLER 3816 (0xee8) ~執行類型MICROSOFT|SMS|MINIJOBINSTRUCTION|包
SMS_DESPOOLER 3816 (0xee8) ~已接收的套件 PackageID 第 1 版。 壓縮檔 - E:\SMSPKG\<PackageID>。PCK.1 作為 E:\ConfigMgr\inboxes\despoolr.box\receive\ds_s76nc.pkg
SMS_DESPOOLER 3816 (0xee8) ~舊套件預存UNC 路徑為 。
SMS_DESPOOLER 3816 (0xee8) ~此套件[<PackageID>]的資訊尚未抵達此版本 [1]。稍後 再試一次...
SMS_DESPOOLER 3816 (0xee8) ~建立作業 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 PM 東部日光時間如果發生這種情況,DistMgr 會嘗試處理封裝,不過由於封裝的壓縮複本尚未處理並解壓縮到內容庫,封裝處理線程會記錄下列內容並結束:
SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) ~套件 '<PackageID>' 的已啟動封裝處理線程,線程標識碼 = 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> 的結束封裝處理線程。還原緩衝處理線程會處理指令,並將內容寫入內容庫。
還原緩衝處理線程會處理指令、將 PCK 檔案解壓縮到暫存位置,然後將內容寫入內容庫。
SMS_DESPOOLER 4072 (0xfe8) ~已接收的套件 <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) ~套件 <套件標識符> (版本 0) 存在於散發來源中,請儲存較新版本 (第 1 版)。
SMS_DESPOOLER 4072 (0xfe8) ~預存套件 <PackageID>。 預存套件版本 = 1成功將內容擷取至內容庫之後,會將數據表中的
SMSPackages_L
還原緩衝處理器更新StoredPkgVersion
並插入數據表中的數據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())
還原緩衝處理線程會更新 中
PkgStatus
接收月臺的 Type 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
變更,並在 中 DistMgr.box
卸除 PKN 檔案,以指示 DistMgr 處理封裝。
SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) RCV: PkgNotification 上的 INSERT for PkgNotify_Add [<PackageID> ][1035289]
SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) SND: Dropd E:\ConfigMgr\inboxes\distmgr.box\<PackageID>。PKN [1035289]
步驟 9:DistMgr 喚醒以處理套件
DistMgr 會在偵測 PKN 檔案並處理套件之後喚醒。
主要 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>' 的已啟動封裝處理線程, 線程標識符 = 0x93C (2364)封裝處理線程會建立 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) ~已建立 DP 處理線程 5204 以在<>伺服器 [“Display=\\PS1DP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\ ...
SMS_DISTRIBUTION_MANAGER 2364 (0x93c) ~等候所有 DP 線程完成 套件 <PackageID> 處理線程。DP 線程會建立 PkgXferMgr 作業,以將內容傳輸到 DPS,然後結束。
DP 線程 (TID 5204) 開始著手將套件新增至 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
封裝進程線程會在所有 DP 線程結束之後結束。
所有 DP 線程結束之後,封裝處理線程也會結束:
SMS_DISTRIBUTION_MANAGER 2364 (0x93c) 封裝 <PackageID> 的 ~DP 線程,線程句柄000000000000218C和線程標識碼 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: Dropd E:\ConfigMgr\inboxes\PkgTransferMgr.box\<PackageID>。PKN [1035292]
步驟 11:PkgXferMgr 喚醒以處理作業
主要 PkgXferMgr 線程會建立傳送線程至指定的 DP:
SMS_PACKAGE_TRANSFER_MANAGER 5392 (0x1510) 找到標識符為 577 的傳送要求、套件: <PackageID>、版本:1、優先順序:2、目的地:PS1DP1.CONTOSO.COM、DPPriority:200
SMS_PACKAGE_TRANSFER_MANAGER 5392 (0x1510) ~已建立傳送線程 (線程標識碼 = 0x12EC)傳送線程會將內容複製到 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) 轉散發套件=0,相關=
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)正在從網站提交 SDK 變更(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”傳送線程會將狀態消息傳送至 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=“” 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.1' 的內容 '<<PackageID.1>>' 已成功新增至內容庫
步驟 13:DistMgr 會處理步驟 11-3 中傳送的狀態消息
若要處理傳入 的 STA 檔案(在步驟 11-3 中傳送),DistMgr 會使用復寫處理線程。 此線程會喚醒以處理 STA 檔案、更新資料庫中數據表中的 PkgStatus
Type 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 的套件伺服器狀態 [“Display=\\PS1DP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.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 16:34:31.679 2016 ISTR0=“<PackageID>” ISTR1=“[”Display=\\PS1DP1.CONTOSO.COM\“]MSWNET:[”SMS_SITE=PS1“]\\PS1DP1.CONTOSO.COM” ISTR2=“” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” 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 Provider 4416 (0x1140) ExecMethodAsync : SMS_Package.PackageID=“<PackageID>”::AddDistributionPoints~
SMS Provider 4416 (0x1140) CExtProviderClassObject::D oExecuteMethod AddDistributionPoints~
SMS 提供者 4416 (0x1140) 稽核:使用者 CONTOSO\Admin 呼叫類別實例SMS_Package的稽核方法。~
呼叫此方法時,SMS 提供者會在 中 PkgServers
插入數據列,並將 Action
設定為 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 for PkgNotify_Add [<PackageID>][1035417]
SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) SND: Dropd E:\ConfigMgr\inboxes\distmgr.box\<PackageID>。PKN [1035417]
步驟 4:DistMgr 喚醒以處理套件
DistMgr 會在偵測 PKN 檔案並處理套件之後喚醒。
主要 DistMgr 線程會啟動封裝處理線程。
主要 DistMgr 線程會將封裝新增至封裝處理佇列,並建立封裝處理線程。
SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) 將套件 '<PackageID>' 新增至封裝處理佇列。
SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) ~目前使用 3 個允許的封裝處理線程中的 0 個。
SMS_DISTRIBUTION_MANAGER 4824 (0x12d8) ~套件 '<PackageID>' 的已啟動封裝處理線程,線程標識元 = 0xB58 (2904)封裝處理線程會建立 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) 開始將 package <PackageID> 新增至伺服器 [“Display=\\PS1DP2.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\...
SMS_DISTRIBUTION_MANAGER 2904 (0xb58) ~已建立 DP 處理線程 3792 以在><伺服器 [“Display=\\PS1DP2.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\ SMS_DISTRIBUTION_MANAGER 2904 (0xb58) ~等候所有 DP 線程完成封裝 <PackageID> 處理線程。DP 線程會建立套件傳輸管理員 (PkgXferMgr) 作業,以將內容傳輸至 DP,然後結束。
DP 線程 (TID 3792) 會開始將套件新增至 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=“” 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
封裝處理線程會在所有 DP 線程結束之後結束。
在所有 DP 線程結束之後,封裝處理線程也會結束。
SMS_DISTRIBUTION_MANAGER 2904 (0xb58) 封裝 PackageID> 的 ~DP 線程<,線程句柄0000000000002524和線程標識碼 3792 已結束。
SMS_DISTRIBUTION_MANAGER 2904 (0xb58) ~封裝 PackageID> 處理線程已完成<所有 DP 線程。
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:Dropd E:\ConfigMgr\inboxes\PkgTransferMgr.box\<PackageID>。PKN [1035419]
步驟 6:PkgXferMgr 喚醒以處理作業
主要 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)傳送線程會將內容複製到 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) 轉散發套件=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” ISTR2=“PS1DP2.CONTOSO.COM” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=2 AID0=400 AVAL0=“<PackageID>” AID1=410 AVAL1=“1”傳送線程會將狀態消息傳送至 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 提供者命名空間 (root\SCCMDP) 中的 WMI 類別執行方法 SMS_DistributionPoint
,以將檔案新增至內容庫。 成功將內容新增至內容庫時, SMSDPProv.log 顯示下列內容:
1304 (0x518) 套件 'PackageID.1' 的內容 '<<PackageID.1>>' 已成功新增至內容庫
步驟 8:DistMgr 會處理 PkgXferMgr 所傳送的狀態消息
若要處理傳入 的 STA 檔案(在步驟 6-3 中傳送),DistMgr 會使用複寫處理線程。 此線程會喚醒以處理 STA 檔案、更新資料庫中數據表中的 PkgStatus
Type 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_ContentPackage
針對下列範例中的應用程式)類別SMS_Package
,將指定的 DP 新增至封裝。 SMSProv.log顯示:
SMS Provider 22172 (0x569c) 內容:SMSAppName=Configuration Manager 系統管理員控制台~
SMS Provider 22172 (0x569c) ExecMethodAsync : SMS_ContentPackage.PackageID='P010000F'::AddDistributionPoints~
SMS Provider 22172 (0x569c) CExtProviderClassObject::D oExecuteMethod AddDistributionPoints~
SMS 提供者 22172 (0x569c) 稽核:使用者 CONTOSO\Admin 呼叫類別實例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 for PkgNotify_Add [P010000F ][145011]
SMS_DATABASE_NOTIFICATION_MONITOR 29748 (0x7434) SND: Dropd E:\ConfigMgr\inboxes\distmgr.box\P010000F。PKN [145011]
步驟 4:DistMgr 喚醒以處理套件
DistMgr 會在偵測 PKN 檔案並處理套件之後喚醒。
主要 DistMgr 線程會啟動封裝處理線程。
主要 DistMgr 線程會將封裝新增至封裝處理佇列,並建立封裝處理線程。
SMS_DISTRIBUTION_MANAGER 5292 (0x14ac) 將套件 'P010000F' 新增至封裝處理佇列。
SMS_DISTRIBUTION_MANAGER 5292 (0x14ac) ~目前使用 3 個允許的封裝處理線程中的 0 個。
SMS_DISTRIBUTION_MANAGER 5292 (0x14ac) ~套件 'P010000F' 的已啟動封裝處理線程,線程標識符 = 0x2C44 (11332)封裝處理線程會建立 DP 線程來處理封裝動作,並等候它們結束。
封裝處理線程 (TID 11332) 會處理 DP(s) 的套件動作(新增/更新/移除)。 在此情況下,封裝已新增至 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) ~已建立 DP 處理線程 22444,以在伺服器上新增或更新套件P010000F [“Display=\\P01PDP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\
SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) ~等候所有 DP 線程完成封裝P010000F處理線程。DP 線程會建立 PkgXferMgr 作業,以將內容傳送至 DP 並結束。
DP 線程 (TID 22444) 開始著手將套件新增至 DP。 DP 線程不會直接將套件內容複製到 DP,而是為套件傳輸管理員 (PkgXferMgr) 建立作業,指示其將套件內容複製到 DP。 下列記錄項目會顯示建立 PkgXferMgr 作業的 DP 線程。 建立作業之後,DP 線程的工作就會完成,DP 線程就會結束。
SMS_DISTRIBUTION_MANAGER 22444 (0x57ac) DP 線程:嘗試在 DP 上新增或更新套件P010000F [“Display=\\P01PDP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\
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 的動作。封裝處理線程會在所有 DP 線程結束之後結束。
所有 DP 線程結束之後,封裝處理線程也會結束。
SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) 封裝P010000F的 ~DP 線程,線程句柄為 0000000000003E2C 和線程標識符 22444 結束。
SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) ~所有 DP 線程都已完成封裝P010000F處理線程。
SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) ~StoredPkgVersion (3) 套件P010000F。 資料庫中的 StoredPkgVersion 為 3。
SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) ~sourceVersion (3) 套件P010000F。 資料庫中的SourceVersion為3。
SMS_DISTRIBUTION_MANAGER 11332 (0x2c44) ~封裝P010000F的結束封裝處理線程。
步驟 5:SMSDBMON 通知 PkgXferMgr 處理作業
建立 PkgxferMgr 作業之後,SMSDBMON 這次會偵測數據表中的 DistributionJobs
變更,並卸除 PKN 檔案 PkgTransferMgr.box
,以指示 PkgXferMgr 處理作業。
SMS_DATABASE_NOTIFICATION_MONITOR 29748 (0x7434) RCV: update on DistributionJobs for DistributionJob_Creation [P010000F ][145013]
SMS_DATABASE_NOTIFICATION_MONITOR 29748 (0x7434) SND: Dropd E:\ConfigMgr\inboxes\PkgTransferMgr.box\P010000F。PKN [145013]
步驟 6:PkgXferMgr 喚醒以處理作業
主要 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)提取 DP 傳送線程會將通知傳送至提取 DP
不同於一般傳送線程,提取 DP 傳送線程 (TID 11084) 會指示提取 DP 透過傳送通知開始下載內容。 這會在 4 個階段中完成。
階段 1: 提取 DP 傳送線程會檢查,以查看發佈至提取 DP 的內容是否可在來源 DP 上取得。 如果來源 DP 上無法使用內容,提取 DP 傳送線程會在記錄中以下列訊息結尾,並引發 狀態消息標識碼 8212 ,這表示「此提取發佈點沒有可從中下載內容的來源。我們稍後會再試一次。 稍後會根據 [軟體發佈元件組態>提取發佈點] 索引卷標中設定的重試設定,嘗試重試。
~找不到套件P0100009下一或多個內容的任何來源位置,適用於提取 DP P01PDP1。CONTOSO.COM。 未傳送通知。
~ PullDP 通知失敗。 失敗計數 = 1/30,重新啟動時間 = 1/10/2019 2:00:42 AM 東部標準時間
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 是否有更多作業的容量。 根據預設,提取 DP 可以同時處理 50 個作業。 這是由 的 PullDP Number Of Active Jobs 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) 將套件資訊套件組合傳送至 PullDP P010000F。 [“Display=\\P01PDP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\階段 4:提取 DP 傳送線程會在命名空間內的
root\SCCMDP
提取 DP 上建立 類別的SMS_PullDPNotification
實例,其中包含套件識別碼、套件版本和 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,重新啟動時間 = 1/7/2019 4:06:04 PM 東部標準時間
SMS_PACKAGE_TRANSFER_MANAGER 11084 (0x2b4c) 提取 DP 傳送線程完成~通知 XML 是藉由呼叫
fnGetPullDPXMLNotification
來產生。 以下是產生通知 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>
提取 DP 傳送線程會更新作業,讓狀態輪詢可以啟動。
不同於標準 DP 的傳送線程會在成功完成後刪除作業,提取 DP 傳送線程會更新資料表中的
DistributionJobs
作業,並將成功將通知傳送至提取 DP 之後設定SendAction
PullQueryResultAction
為 。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 因為某些原因無法將狀態消息傳送至管理點。
(輪詢間隔時):會建立提取 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:從 WMI 提取 DP 載入作業
在收到通知時,提取 DP 元件會從 WMI 載入作業,並驗證 <PackageID>。PkgxferMgr 複製的 TZ 檔案。
PullDP 4404 (0x1134) CPullDPService::LoadJobsFromXML for P010000F.3
PullDP 4404 (0x1134) - P010000F.3 - XML 有 1 個內容作業。
PullDP 4404 (0x1134) CPullDPPkgContJob::LoadContentJobFromXML(): Set JobState = NotStarted
提取DP 4404 (0x1134) - P010000F.3 - 載入的內容作業 {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} (state: 1 套件P010000F.3 內容的 1-NotStarted)Content_3c9813ba-d7ab-4963-929c-36f90f479613.1。
在上述範例中,作業 {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} (7175CD81-CF67-48C9-AA22-010BF60B640E} state: 1-NotStarted) 套件P010000A.2 內容 c085b4ba-8e8f-42bf-8e2d-bc1067697722。
步驟 10:(如果適用)提取 DP 下載內容簽章
(如果適用)內容作業會建立數據傳輸服務 (DTS) 作業,以下載套件簽章。 簽章檔案是從來源發佈點從虛擬目錄下載 SMSSIG$
的 TAR 檔案,其中包含內容中每個檔案的 RDC 簽章。 RDC 簽章可用來判斷檔案內容是否已變更,以及是否要下載差異內容或完整內容。 此步驟僅適用於已變更的內容,因此您可能不一定會看到此步驟,而是會看到步驟 11。
Package 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} (state: 套件P010000F.3 內容的 4-下載簽章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'。
DTS 作業 '{3C9627 0xf10 58-7ABE-40F2-A585-E5B59E378BEA}' 的起始 BITS 下載。
DataTransferService 3856 (0xf10) 啟動 BITS 作業 '{43647077-986C-4727-A954-B327ECA50302}' 使用者 'S-1-5-18' 底下的 DTS 作業 '{3C962758-7ABE-40F2-A585-E5B59E378BEA}'。
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}' 呼叫。 目前狀態:『RetrievedData』。
DataTransferService 3856 (0xf10) DTSJob {3C962758-7ABE-40F2-A585-E5B59E378BEA} 狀態為 'NotifiedComplete'。
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}
提取DP 4300 (0x10cc) DTS 成功接收P010000F.3 訊息,內容作業 {C10457F9-DE3A-4B45-878C-345919AFF97E},狀態為 0x0:
PullDP 3856 (0xf10) ContentExecuteJob {C10457F9-DE3A-4B45-878C-345919AFF97E} (state: 5-Signature Downloaded) 套件P010000F.3 內容Content_3c9813ba-d7ab-4963-929c-36f90f479613.1。
步驟 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}
提取DP 4300 (0x10cc) DTS 成功接收P010000F.3 訊息,內容作業 {C10457F9-DE3A-4B45-878C-345919AFF97E},狀態為 0x0:
PullDP 3856 (0xf10) ContentExecuteJob {C10457F9-DE3A-4B45-878C-345919AFF97E} (state: 5-Signature Downloaded) 套件P010000F.3 內容Content_3c9813ba-d7ab-4963-929c-36f90f479613.1。 ...
PullDP 3856 (0xf10) 檔案 待辦事項 wnload: ConfigMgrTools.msi
PullDP 3856 (0xf10) Content_3c9813ba-d7ab-4963-929c-36f90f479613.1:已有 0 個檔案,1 個要下載的檔案
Package P010000F.3 的 PullDP 3856 (0xf10) Created FullDownload(Manifest) DTS 作業 {78635652-3D12-4A26-A51B-D553934ECB54} content id Content_3c9813ba-d7ab-4963-929c-36f90f479613.1, content job id {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) DTSJob {78635652-3D12-4A26-A51B-D553934ECB54} 狀態為 'DownloadingData'。
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} (state :9-Downloaded) 套件P010000F.3 內容 Content_3c9813ba-d7ab-4963-929c-36f90f479613.1。
步驟 14:內容移至內容庫,狀態會移至 [成功]
成功 下載內容之後,提取 DP 會將內容移至內容庫(也稱為「單一實例記憶體」)。 將內容移至內容庫之後,內容會移至 SIApplied 狀態,後面接著 [成功 ] 狀態。
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} (state: 1 套件P010000F.3 內容的 SIApplied) Content_3c9813ba-d7ab-4963-929c-36f90f479613.1。
...
PullDP 3812 (0xee4) CPullDPPkgContJob::NotifySucceeded()。 套件P010000F.3和內容Content_3c9813ba-d7ab-4963-929c-36f90f479613.1 的內容作業 {C10457F9-DE3A-4963-929c-36f90f479613.1 已順利完成。 JobState = 成功
提取DP 3812 (0xee4) 通知內容作業 {C10457F9-DE3A-4B45-878C-345919AFF97E} 套件P010000F.3 已完成。
將每個內容專案新增至內容庫之後,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) 報告狀態消息 0x00000001 (1) 封裝 'P010000F.3' 的 MP
PullDP 3812 (0xee4) 要求成功。
PullDP 3812 (0xee4) CPullDPResponse::ReportPackageState 傳回值0x00000000。
啟用詳細資訊和偵錯記錄後,您可以看到整個訊息本文:
PullDP 3812 (0xee4) 傳送報告
PullDP 3812 (0xee4) 報告報表Header 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=“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><><></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) 訊息本文:
<Report 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>><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=“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><><></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 狀態消息,呼叫spProcessPullDPMessage
會spProcessReport
使用狀態消息詳細數據來更新PullDPResponse
數據表。
SMS_STATE_SYSTEM 23544 (0x5bf8) CMessageProcessor - 處理檔案:N_6RB4OA3A。SMX
SMS_STATE_SYSTEM 23544 (0x5bf8) CMessageProcessor - DB exec dbo.spProcessStateReport N'的 Cmdline?<Report 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><版本>1 .0</Version><Format>1.1</Format></ReportDetails></ReportHeader>~~ <ReportBody><StateMessage MessageTime=“20190107200618.00000+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>~~</Report>~~'
請注意,除非啟用StateSys.log的詳細資訊記錄,否則StateSys.log不會記錄訊息本文。 若要啟用 StateSys.log的詳細信息記錄,請參閱 啟用詳細信息記錄。
以下是預存程式的摘錄 spProcessReport
,其會處理提取 DP 狀態消息:
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 上插入 PullDPResponse_UpdIns [72057594037928008 ][145014]
SMS_DATABASE_NOTIFICATION_MONITOR 29748 (0x7434) SND: Dropd 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) AS MessageTime from PullDPResponse r 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) ~處理 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) ~已成功更新封裝伺服器狀態 [“Display=\\P01PDP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=P01”]\\P01PDP1.CONTOSO.COM\ 封裝P010000F狀態 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) ~已成功處理 PullDP 回應檔 E:\ConfigMgr\inboxes\distmgr.box\INCOMING\72057594037928008.PUL
步驟 22:資料庫複寫會將狀態變更複寫至其他月臺
在資料庫中更新封裝狀態之後,它會透過資料庫複寫至其他月臺。
更新套件
當您更新套件時,套件內容會重新傳送至套件發佈至的所有發佈點。 這會藉由遞增套件來源版本來完成,而且只會將內容變更傳送至 DP,而不是再次傳送所有內容。
下列步驟概述更新封裝時所發生的事件流程。 在此範例中,我們將查看在主要月臺建立之套件的套件更新作業,並著重於套件更新作業的特定程序變更。
步驟 1:管理主控台會針對 SMS_Package
SMS 提供者命名空間中的 WMI 類別執行 RefreshPkgSource
方法
系統管理員從主控台更新套件之後,管理主控台會呼叫 RefreshPkgSource
類別的 SMS_Package
方法來更新套件。 SMSProv.log顯示下列專案:
SMS 提供者 4716 (0x126c) 內容: SMSAppName=Configuration Manager 系統管理員控制台~
SMS Provider 4716 (0x126c) ExecMethodAsync : SMS_Package.PackageID=“<PackageID>”::RefreshPkgSource ~
SMS Provider 4716 (0x126c) CExtProviderClassObject::D oExecuteMethod RefreshPkgSource~
SMS 提供者 4716 (0x126c) 稽核:使用者 CONTOSO\Admin 呼叫類別實例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 for PkgNotify_Add [<PackageID>][1036610]
SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) SND: Dropd E:\ConfigMgr\inboxes\distmgr.box\<PackageID>。PKN [1036610]
步驟 3:接收 PKN 檔案之後,DistMgr 會喚醒以處理套件
主要 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>' 的已啟動封裝處理線程, 線程標識符 = 0x1690 (5776)封裝處理線程會建立套件快照集、將內容寫入內容庫,並遞增套件版本。
封裝處理線程 (在此案例中為線程標識碼 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擷擷套件標識符>擷取套件<快照集
SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 套件 <PackageID> 的大小,版本 2 是 204800 KBytes
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”封裝處理線程進程會啟動 DP 線程來處理封裝動作,然後等候它們結束。
封裝處理線程會處理封裝動作來更新封裝,這牽涉到更新此套件散發所在之所有 DP 上的套件。 由於有封裝動作要處理,封裝處理線程會建立 DP 線程來執行這些動作,並等候 DP 線程在繼續前結束。
SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 開始 PS100039更新伺服器 [“Display=\\PS1SITE.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1SITE.CONTOSO.COM\...
SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~已建立 DP 處理線程 920 ,用於在伺服器上新增或更新套件PS100039 [“Display=\\PS1SITE.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1SITE.CONTOSO.COM\
SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 開始 PS100039更新伺服器 [“Display=\\PS1SYS.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1SYS.CONTOSO.COM\...
SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~已建立 DP 處理線程 2060 ,用於 PS100039在伺服器 [“Display=\\PS1SYS.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1SYS.CONTOSO.COM\
SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 開始 PS100039更新伺服器 [“Display=\\PS1DP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\...
SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~已建立 DP 處理線程 6076 ,以在伺服器上新增或更新套件PS100039 [“Display=\\PS1DP1.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP1.CONTOSO.COM\
SMS_DISTRIBUTION_MANAGER 5776 (0x1690) 開始更新伺服器上的套件PS100039 [“Display=\\PS1DP2.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\...
SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~已建立 DP 處理線程 5948 以 PS100039在伺服器 [“Display=\\PS1DP2.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\
SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~等候所有 DP 線程完成封裝PS100039處理線程。DP 線程會啟動並建立 PkgXferMgr 作業,以將內容傳輸至 DP,然後結束。
DP 線程開始建立 PkgXferMgr 作業,以更新 DPS 上的套件。 此時,四個不同的 DP 有四個 DP 線程:
SMS_DISTRIBUTION_MANAGER 5948 (0x173c) DP 線程:嘗試在 DP 上新增或更新套件PS100039 [“Display=\\PS1DP2.CONTOSO.COM\”]MSWNET:[“SMS_SITE=PS1”]\\PS1DP2.CONTOSO.COM\
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)
(如果適用)封裝處理線程會建立迷你作業,以將封裝的壓縮複本傳送至其他月臺。
所有 DP 線程都完成工作之後,封裝處理線程會建立迷你作業,以視需要將封裝的壓縮複本傳送至其他月臺。 排程器會處理此迷你作業,以建立傳送者的傳送要求,以將封裝壓縮的複本傳送至目的地月臺:
SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~所有 DP 線程都已完成封裝PS100039處理線程。
SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~套件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) ~已建立迷你工作,以將 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) ~已建立迷你工作,以將 PS100039封裝的壓縮副本傳送至月臺 SS1。 傳輸根目錄 = E:\SMSPKG\PS100039。DLT.1.2。封裝處理線程會在處理封裝之後結束:
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 (2) 套件PS100039。 資料庫中的 StoredPkgVersion 為 2。
SMS_DISTRIBUTION_MANAGER 5776 (0x1690) ~sourceVersion (2) 套件PS100039。 資料庫中的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: update on DistributionJobs for DistributionJob_Creation [PS100039 ][1036623]
SMS_DATABASE_NOTIFICATION_MONITOR 1792 (0x700) SND: Dropd E:\ConfigMgr\inboxes\PkgTransferMgr.box\PS100039。PKN [1036623]
步驟 5:PkgXferMgr 喚醒以處理作業
對於標準 DP,傳送線程會將內容複製到 DP,而其餘進程與將套件散發至標準 DP 步驟 6 中所述的程式相同。
針對提取 DP,提取 DP 傳送線程會將通知傳送至提取 DP 以執行內容下載。 提取 DP 接著會從來源 DP 下載內容,其餘程式與將套件散發至提取 DP 步驟 6 中所述的程式相同。
步驟 6:套件狀態變更會透過 DRS 複寫至其他月臺
在資料庫中更新封裝狀態之後,它會透過資料庫複寫至其他月臺。
重新發佈套件
當您將套件重新發佈至 DP 時,即使 DP 上的內容連結庫已有內容,所有套件內容檔案都會重新複製到 DP。
下列步驟概述封裝轉散發至 DP 時所發生的事件流程。 在此範例中,主要月臺伺服器已經有封裝的壓縮複本。 此程式與將套件散發至標準 DP 或將套件散發至提取 DP 中所述的程式相同,因此我們在這裡只會查看相關變更的詳細記錄代碼段。
步驟 1:系統管理員會將套件重新發佈至 DP
步驟 2:如果系統管理員從不同的主要月臺或管理中心網站轉散發套件,DRS 會將變更復寫到有問題的月臺
步驟 3:SMSDBMON 通知 DistMgr 處理套件
步驟 4:DistMgr 喚醒以處理套件
主要 DistMgr 線程會啟動封裝處理線程。
封裝處理線程會建立 DP 線程來處理封裝動作,並等候它們結束。
DP 線程會建立 PkgXferMgr 作業,以將套件新增至 DP,然後結束。
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=“” 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)
封裝處理線程會在所有 DP 線程結束之後結束。
步驟 5:SMSDBMON 通知 PkgXferMgr 處理作業
步驟 6:PkgXferMgr 喚醒以處理作業
主要 PkgXferMgr 線程會建立傳送的線程。
傳送線程或提取 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) 轉散發套件=1,相關=
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\73E0\73E05438D4731F41DB6C3BCB90919F60000226B330C73942454A174D7E26533]
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<> 在 344 刻度的位置208732160
SMS_PACKAGE_TRANSFER_MANAGER 5272 (0x1498) ~傳送完成 [E:\SCCMContentLib\FileLib\73E0\73E05438D4731F41DB6C3BCB90919F60000226B330C73942454A174D7E26533]
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” 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 已設定為 redist,這表示即使所有檔案已存在於提取 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 中所述的程式。
傳送線程會將狀態消息傳送至 DistMgr。