Geavanceerde tips voor probleemoplossing voor inhoudsdistributie
Dit artikel bevat enkele geavanceerde tips voor probleemoplossing waarmee u problemen met inhoudsdistributie kunt identificeren en oplossen.
Oorspronkelijke productversie: Configuration Manager current branch, Microsoft System Center 2012 Configuration Manager, Microsoft System Center 2012 R2 Configuration Manager
Uitgebreide logboekregistratie inschakelen
PkgXferMgr.log
Voor Package Transfer Manager biedt uitgebreide logboekregistratie meer informatie in het logboek over het kopieerproces van inhoud, bestandshashes en taakplanning. Uitgebreide logboekregistratie kan worden ingeschakeld door de volgende registerwaarde in te stellen op 0:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\SMS_PACKAGE_TRANSFER_MANAGER\LoggingLevel
Voor Package Transfer Manager biedt logboekregistratie voor foutopsporing meer informatie over het kopieerproces van inhoud. Logboekregistratie voor foutopsporing kan worden ingeschakeld door de volgende registerwaarde in te stellen op 1:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\SMS_PACKAGE_TRANSFER_MANAGER\DebugLogging
Notitie
Voor deze registerwijziging(en) is geen herstart van
SMS_Executive
de service vereist.Clientlogboeken (inclusief pull DP- en beheerpuntlogboeken)
Uitgebreide logboekregistratie kan worden ingeschakeld door de volgende registerwaarde in te stellen op 0:
HKEY_LOCAL_MACHINE\Software\Microsoft\CCM\Logging\@GLOBAL\LogLevel
Logboekregistratie voor foutopsporing kan worden ingeschakeld door de volgende registerwaarde in te stellen als REG_SZ met de waarde True:
HKEY_LOCAL_MACHINE\Software\Microsoft\CCM\Logging\DebugLogging\Enabled
De CCM-logboekgrootte kan worden verhoogd tot 5M door de volgende registerwaarde in te stellen op 5242880 (decimaal)
HKEY_LOCAL_MACHINE\Software\Microsoft\CCM\Logging\@GLOBAL\LogMaxSize
Daarnaast kunt u de DWORD-waarde voor de volgende registerwaarde bewerken om het aantal logboekbestanden voor geschiedenis te verhogen dat moet worden bewaard:
HKEY_LOCAL_MACHINE\Software\Microsoft\CCM\Logging\@GLOBAL\LogMaxHistory
Notitie
Voor deze registerwijziging(en) moet de service opnieuw worden opgestart
SMS Agent Host
.StateSys.log
Uitgebreide logboekregistratie voor StateSys.log kan worden ingeschakeld door de volgende registerwaarde in te stellen op 1:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\COMPONENTS\SMS_STATE_SYSTEM\Verbose logging
Notitie
Deze wijziging van de registersleutel vereist geen herstart van
SMS_Executive
de service.(Algemeen - alleen siteserver) SQL-query's
Voor informatie over SQL-query's die worden uitgevoerd door
ConfigMgr
onderdelen, kan SQL-tracering worden ingeschakeld door de volgende registerwaarde in te stellen op 1:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\SqlEnabled
Deze registerwaarde voegt SQL-traceerlogboeken toe voor alle siteserverlogboeken. Dit moet alleen tijdelijk worden gedaan tijdens het oplossen van problemen en moet worden uitgeschakeld na het ophalen van de relevante logboeken.
Notitie
Deze registerwijziging vereist geen herstart van
SMS_Executive
de service.(Algemeen - alleen siteserver) Logboekarchivering inschakelen
Er zijn situaties waarin het probleem niet op aanvraag wordt gereproduceerd en terwijl wordt gewacht tot het probleem wordt gereproduceerd, bestaat het risico dat er logboeken worden overgerold. In dergelijke situaties kan het inschakelen van logboekarchivering handig zijn, omdat u hiermee meer historische logboeken kunt hebben. Dit is alleen relevant voor siteserverlogboeken.
Logboekarchivering kan worden ingeschakeld door de volgende registerwaarden in te stellen:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\ArchiveEnabled
= 1HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\ArchivePath
= <ArchiveLocation>Nadat logboekarchivering is ingeschakeld, archiveert ConfigMgr de rolled over logboeken naar ArchiveLocation <>en bewaart 10 kopieën van elk logboek.
Stel de volgende registerwaarde in op 20 om het aantal kopieën dat voor een specifiek onderdeel wordt bewaard, te verhogen wanneer logboekarchivering is ingeschakeld:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\COMPONENT_NAME\LogMaxHistory
Notitie
Voor deze registerwijziging(en) moet de service opnieuw worden opgestart
SMS_Executive
.(Per logboek - alleen siteserver) De grootte van logboekbestanden vergroten
Als u de grootte van een logboekbestand voor een afzonderlijk logboek wilt vergroten naar 50 MB, stelt u de onderdeelspecifieke registerwaarde in op 52428800 (decimaal):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\COMPONENT_NAME\MaxFileSize
Notitie
Voor deze registerwijziging moet de service opnieuw worden opgestart
SMS_Executive
.
Gecomprimeerde kopie van een pakket opnieuw verzenden naar een site
Wanneer een pakket voor het eerst naar een site wordt gedistribueerd, verzendt DistMgr een gecomprimeerde kopie van het pakket naar de site. Nadat het pakket is geëxtraheerd in de inhoudsbibliotheek op de site, wordt de lokale kopie van de inhoud gebruikt om het pakket naar DPs te verzenden zolang dezelfde pakketversie wordt gedistribueerd naar de DPs op de site.
Er zijn enkele gevallen waarin het nodig is om een site te dwingen de gecomprimeerde kopie van een pakket opnieuw te verzenden naar een opgegeven site. Dit is met name vereist wanneer:
- Inhoud ontbreekt in de inhoudsbibliotheek (
PkgLib
ofFileLib
DataLib
) op een primaire of secundaire siteserver zelf. - DistMgr.log klaagt consequent over de inhoud die niet afkomstig is van de bovenliggende site (bijvoorbeeld: 'De inhoud voor het pakket CS100026 nog niet vanaf site CS1 is aangekomen, zal het later opnieuw proberen').
In de meeste gevallen wordt het bericht 'De inhoud voor het pakket CS100026 nog niet is aangekomen vanaf site CS1, later opnieuw geprobeerd' wordt vastgelegd terwijl de pakketinhoud wordt verzonden. Als u dit bericht ziet, controleert u de logboeken van afzender/despooler om ervoor te zorgen dat er geen problemen zijn met sitecommunicatie. Bekijk Distribueer een pakket naar DP op alle sites om inzicht te hebben in de logboekstroom.
Hoe weet DistMgr of op de huidige site een kopie van het pakket is geïnstalleerd
DistMgr controleert of er een Type 1-rij is voor PkgStatus
het pakket voor de betreffende pakketversie. Als er een type 1-rij voor de site is geïnstalleerd = , wordt de lokale kopie van de pakketinhoud gebruikt om naar de DPs te verzenden. Als er geen Type 1-rij is, PkgStatus
betekent dit dat de pakketinhoud nog niet op de siteserver is geïnstalleerd.
Wordt het pakket opnieuw gedistribueerd naar DP op de siteserver, waardoor de gecomprimeerde kopie van het pakket opnieuw wordt verzonden
Nee Het opnieuw distribueren van het pakket is afhankelijk van de site die al de pakketinhoud in de pakketbronmap heeft. Als het pakket op een bepaald moment naar de site is verzonden en is gemarkeerd als Geïnstalleerd, doet een herdistributieactie op de DP-punt op de siteserver niets omdat DistMgr denkt dat de inhoud al is geïnstalleerd en dat de volgende regel wordt aangemeld DistMgr.log:
Het distributiepunt bevindt zich op de siteserver en het pakket is een inhoudstypepakket. Er is niets te kopiëren.
Wat als de inhoud ontbreekt in de inhoudsbibliotheek op de pakketbronsite
Als de inhoud ontbreekt in de inhoudsbibliotheek op de pakketbronsite, helpt het opnieuw instellen van de SourceVersion
inhoudsbibliotheek niet. De enige manier om de ontbrekende inhoud opnieuw te vullen, is door het pakket bij te werken. Het bijwerken van het pakket zorgt ervoor dat de pakketbronsite een momentopname van het pakket maakt vanaf de bronlocatie van het pakket en de inhoud naar de inhoudsbibliotheek schrijft.
Hoe kan ik afdwingen dat de pakketbronsite de gecomprimeerde kopie van het pakket opnieuw verzendt naar een specifieke site
Nadat u hebt bevestigd dat de pakketbronsite de vereiste inhoud heeft, kunt u afdwingen dat de pakketbronsite het PCK-pakketbestand opnieuw naar een specifieke site verzendt door in te stellen SourceVersion
op 0 voor de rij PkgStatus
Type 1 voor de betreffende site. Deze rij kan worden geïdentificeerd door de volgende SQL-query uit te voeren op de database van de pakketbronsite nadat u de PACKAGEID en SITECODE van het gewenste pakket en de gewenste site hebt vervangen:
SELECT * FROM PkgStatus WHERE Type = 1 AND ID = 'PACKAGEID' AND SiteCode = 'SITECODE'
Nadat u hebt bevestigd dat deze query een unieke en juiste rij retourneert, wordt de onderstaande query opnieuw ingesteld SourceVersion
op 0:
UPDATE PkgStatus SET SourceVersion = 0 WHERE Type = 1 AND ID = 'PACKAGEID' AND SiteCode = 'SITECODE'
Na het opnieuw instellen van de SourceVersion
naar 0 voor de rij Type 1, wordt het opnieuw distribueren van het pakket naar een DP op de betreffende site afgedwongen dat de pakketbronsite de gecomprimeerde kopie van het pakket opnieuw verzendt naar de betreffende site.
Notitie
Het is erg belangrijk om de bovenstaande query uit te voeren op de site die eigenaar is van het pakket, d.w.z. de pakketbronsite.
Relevante tabellen voor inhoudsdistributie
SMSPackages
- Bevat een lijst met alle pakkettenInteressante kolommen:
Kolom Waarden Actie 0 - GEEN
1 - UPDATE
2 - TOEVOEGEN
3 - VERWIJDEREN
4 - VALIDEREN
5 - ANNULERENPackageType 0 - Normaal pakket
3 - Stuurprogrammapakket
4 - Takenreeks
5 - Software-updatespakket
6 - Apparaatinstellingenpakket
7 - Virtueel app-pakket
8 - Inhoudspakket (toepassing)
257 - Installatiekopieën van besturingssysteem
258 - Opstartinstallatiekopie
259 - Installatiepakket voor besturingssysteem
260 - VHD-pakketPkgServers
- Bevat een lijst met alle pakketten, samen met de DPs waarop ze momenteel zijn gericht.Interessante kolommen:
Kolom Waarden Actie 0 - GEEN
1 - UPDATE
2 - TOEVOEGEN
3 - VERWIJDEREN
4 - VALIDEREN
5 - ANNULERENPkgStatus
- Bevat een lijst met de huidige pakketstatus voor elk pakket voor elke DP.Interessante kolommen:
Kolom Waarden Type 1 - SITE (MASTER)
2 - DP (COPY)
Type 1 rijen worden gemaakt voor elke site waarop het pakket is gericht. PkgServer voor deze rij is de FQDN van de siteserver.
Type 2 rijen worden gemaakt voor elke DP waarop het pakket is gericht. PkgServer is the DP NALPATH.Status 0 - GEEN
1 - VERZONDEN
2 - ONTVANGEN
3 - GEÏNSTALLEERD
4 - OPNIEUW PROBEREN
5 - MISLUKT
6 - VERWIJDERD
7 - VERWIJDEREN IN BEHANDELING (niet gebruikt)
8 - VERWIJDEREN MISLUKT
9 - VERWIJDEREN OPNIEUW PROBERENDistributionJobs
- Bevat een lijst met Package Transfer Manager-taken samen met hun huidige status.Interessante kolommen:
Kolom Waarden Actie 0 - GEEN
1 - UPDATE
2 - TOEVOEGEN
3 - VERWIJDEREN
4 - VALIDEREN
5 - ANNULERENProvincie 0 - IN BEHANDELING
1 - GEREED
2 - GESTART
3 - INPROGRESS
4 - OPNIEUW OPSTARTEN IN BEHANDELING
5 - VOLTOOID
6 - MISLUKT
7 - GEANNULEERD
8 - ONDERBROKENDistributionPoints
- Bevat een lijst met alle distributiepunten.Interessante kolommen:
Kolom Waarden Actie 0 - GEEN
1 - UPDATE
2 - TOEVOEGEN
3 - VERWIJDEREN
4 - VALIDEREN
5 - ANNULERENPullDPResponse
- Bevat tijdelijk het antwoord van de pakketstatus dat is verzonden vanuit de pull-DPs. DistMgr verwerkt het antwoord en de updatesPkgStatus
.Interessante kolommen:
Kolom Waarden ActionState 1 - SUCCES
2 - WAARSCHUWING
4 - FOUT
8 - DOWNLOADEN GESTART
16 - DOWNLOADEN WORDT UITGEVOERD
32 - GEDOWNLOAD
64 - GEANNULEERD
128 - ANNULERING AANGEVRAAGDPkgNotification
- Meldingstabel bewaakt door SMSDBMON om DistMgr te activeren om een pakket te verwerken. De kolom Type definieert het type pakketmelding. Rijen in deze tabel worden verwijderd nadat SMSDBMON DistMgr activeert.Interessante kolommen:
Kolom Waarden Type 0 - ONBEKEND
1 - PAKKET
2 - PROGRAMMA
4 - PAKKETSERVER (DP)
8 - TOEGANGSACCOUNT VOOR PAKKETTEN
15 - ALLDP-statusberichten ophalen - Lijst met statusbericht-id's gegenereerd door pull DP
Interessante kolommen:
Kolom Waarden Status-id 1 - SUCCES
2 - WAARSCHUWING
4 - FOUT
8 - DOWNLOADEN GESTART
16 - DOWNLOADEN WORDT UITGEVOERD
32 - GEDOWNLOAD
64 - GEANNULEERDVoorbeeldrapport van statusbericht:
<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> <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/> </UserParameters> </StateMessage> </ReportBody> </Report>
Nuttige SQL-query's
Hier volgen enkele SQL-query's die nuttig kunnen zijn bij het oplossen van verschillende problemen met betrekking tot inhoudsdistributie.
Pakket-/DP-statusquery's
Alle mislukte pakketten/IP-adressen
SELECT distinct DPSD.DPName, DPSD.PackageID, SP.Name, DPSD.MessageState, DPSD.LastStatusTime, DPSD.SiteCode FROM vSMS_DPStatusDetails DPSD JOIN SMSPackages_All SP ON DPSD.PackageID = SP.PkgID WHERE MessageState = 4
Alle in uitvoering pakketten/IP's
SELECT distinct DPSD.DPName, DPSD.PackageID, SP.Name, DPSD.MessageState, DPSD.LastStatusTime, DPSD.SiteCode FROM vSMS_DPStatusDetails DPSD JOIN SMSPackages_All SP ON DPSD.PackageID = SP.PkgID WHERE MessageState = 2
Alle geslaagde pakketten/IP's
SELECT distinct DPSD.DPName, DPSD.PackageID, SP.Name, DPSD.MessageState, DPSD.LastStatusTime, DPSD.SiteCode FROM vSMS_DPStatusDetails DPSD JOIN SMSPackages_All SP ON DPSD.PackageID = SP.PkgID WHERE MessageState = 1
Alle pakket/IP's in de status Wordt uitgevoerd gedurende meer dan drie dagen
SELECT distinct DPSD.DPName, DPSD.PackageID, SP.Name, DPSD.MessageState, DPSD.LastStatusTime, DPSD.SiteCode FROM vSMS_DPStatusDetails DPSD JOIN SMSPackages_All SP ON DPSD.PackageID = SP.PkgID WHERE DPSD.LastStatusTime < DATEAdd(dd,-3,GETDate()) AND MessageState = 2
Alle pakket-/DPs met de status Mislukt gedurende meer dan drie dagen
SELECT distinct DPSD.DPName, DPSD.PackageID, SP.Name, DPSD.MessageState, DPSD.LastStatusTime, DPSD.SiteCode FROM vSMS_DPStatusDetails DPSD JOIN SMSPackages_All SP ON DPSD.PackageID = SP.PkgID WHERE DPSD.LastStatusTime < DATEAdd(dd,-3,GETDate()) AND MessageState = 4
Telling van alle statussen
SELECT MessageState, COUNT(MessageState) AS [Count] FROM vSMS_DPStatusDetails WHERE PackageID <> '' GROUP BY MessageState
Aantal pakketstatussen per DP
SELECT DPName, CASE WHEN MessageState = 1 THEN 'Success' WHEN MessageState = 2 THEN 'InProgress' WHEN MessageState = 4 THEN 'Failed' END AS [State], COUNT(MessageState) AS [Count] FROM vSMS_DPStatusDetails WHERE PackageID <> '' AND DPName = 'PS1DP1.CONTOSO.COM' GROUP BY DPName, MessageState ORDER BY DPName
Status van alle DP's voor een bepaald pakket
SELECT DPName, CASE WHEN MessageState = 1 THEN 'Success' WHEN MessageState = 2 THEN 'InProgress' WHEN MessageState = 4 THEN 'Failed' END AS [State] FROM vSMS_DPStatusDetails WHERE PackageID = '<PackageID>' GROUP BY DPName, MessageState ORDER BY State
Aantal DP-statussen per pakket
SELECT CASE WHEN MessageState = 1 THEN 'Success' WHEN MessageState = 2 THEN 'InProgress' WHEN MessageState = 4 THEN 'Failed' END AS [State], COUNT(MessageState) AS [Count] FROM vSMS_DPStatusDetails WHERE PackageID = '<PackageID>' GROUP BY MessageState
Huidige status van pakket/DP
SELECT distinct DPSD.DPName, DPSD.PackageID, SP.Name, DPSD.LastStatusTime, DPSD.SiteCode, DPSD.MessageState, CASE WHEN MessageState = 1 THEN 'Success' WHEN MessageState = 2 THEN 'InProgress' WHEN MessageState = 4 THEN 'Failed' END AS [State] FROM vSMS_DPStatusDetails DPSD JOIN SMSPackages_All SP ON DPSD.PackageID = SP.PkgID WHERE DPName = 'PS1DP1.CONTOSO.COM' AND DPSD.PackageID = '<PackageID>'
Zwevende DP-verwijzingen zoeken
De onderstaande query kan worden gebruikt om te bepalen of er zwevende rijen in de database staan voor een DP die zich niet meer in de omgeving bevindt. Er kunnen zwevende rijen zijn als de DP niet goed is verwijderd.
DECLARE @DPName NVARCHAR(100)
SET @DPName = 'PS1DP.CONTOSO.COM'
SELECT * FROM ContentDPMap WHERE ServerName = @DPName
SELECT * FROM DistributionPoints WHERE ServerName = @DPName
SELECT * FROM DPInfo WHERE ServerName = @DPName
SELECT * FROM PkgServers_G WHERE NALPath like '%' + @DPName + '%'
SELECT * FROM PkgServers_L WHERE NALPath like '%' + @DPName + '%'
SELECT * FROM PkgStatus_G WHERE PkgServer like '%' + @DPName + '%'
SELECT * FROM PkgStatus_L WHERE PkgServer like '%' + @DPName + '%'
SELECT * FROM SysResList WHERE RoleName = 'SMS Distribution Point' AND ServerName = @DPName
SELECT * FROM SC_SysResUse WHERE NALPath like '%' + @DPName + '%' AND RoleTypeID = 3
Vergelijkbare query voor een specifieke DP op een specifieke site:
DECLARE @DPName NVARCHAR(100)
DECLARE @DPSiteCode NVARCHAR(3)
SET @DPName = 'DPNAME.CONTOSO.COM'
SET @DPSiteCode = 'PS1'
SELECT * FROM ContentDPMap WHERE ServerName = @DPName AND SiteCode = @DPSiteCode
SELECT * FROM DistributionPoints WHERE ServerName = @DPName AND SMSSiteCode = @DPSiteCode
SELECT * FROM DPInfo WHERE ServerName = @DPName AND SiteCode = @DPSiteCode
SELECT * FROM PkgServers_L WHERE NALPath like '%' + @DPName + '%' AND SiteCode = @DPSiteCode
SELECT * FROM PkgServers_G WHERE NALPath like '%' + @DPName + '%' AND SiteCode = @DPSiteCode
SELECT * FROM PkgStatus_L WHERE PkgServer like '%' + @DPName + '%' AND SiteCode = @DPSiteCode
SELECT * FROM PkgStatus_G WHERE PkgServer like '%' + @DPName + '%' AND SiteCode = @DPSiteCode
SELECT * FROM SysResList WHERE RoleName = 'SMS Distribution Point' AND ServerName = @DPName AND SiteCode = @DPSiteCode
SELECT * FROM SC_SysResUse WHERE NALPath like '%' + @DPName + '%SMS_SITE=' + @DPSiteCode + '%' AND RoleTypeID = 3
SCF-eigenschappen (Site Control File)
SCF-eigenschappen voor DistMgr voor huidige site
SELECT SD.SiteCode, SC.ComponentName, SCP.Name, SCP.Value1, SCP.Value2, SCP.Value3 FROM SC_Component SC JOIN SC_SiteDefinition SD ON SD.SiteNumber = SC.SiteNumber JOIN SC_Component_Property SCP ON SCP.ComponentID = SC.ID WHERE SD.SiteCode = dbo.fnGetSiteCode() AND SC.ComponentName = 'SMS_DISTRIBUTION_MANAGER'
SCF-eigenschappen voor een DP
SELECT SRU.RoleName, SRU.ServerName, SRUP.* FROM vSMS_SC_SysResUse SRU JOIN vSMS_SC_SysResUse_Properties SRUP ON SRU.ID = SRUP.ID WHERE SRU.RoleName = 'SMS Distribution Point' AND SRU.ServerName = 'PS1DP1.CONTOSO.COM'
Pakketten met opgegeven software-update
Vermeld alle pakketten met de opgegeven unieke update-id.
SELECT distinct UI.ArticleID, CI.CI_UniqueID, CP.PkgID, P.Name FROM v_UpdateInfo UI
JOIN v_ConfigurationItems CI ON UI.CI_ID = CI.CI_ID
JOIN v_CIContents_All CIC ON CI.CI_ID = CIC.CI_ID
JOIN CI_ContentPackages CP ON CP.Content_ID = CIC.Content_ID
JOIN v_Package P ON CP.PkgID = P.PackageID
WHERE CI.CI_UniqueID = '<UniqueID>'