Zaawansowane porady dotyczące rozwiązywania problemów z dystrybucją zawartości
Ten artykuł zawiera kilka zaawansowanych wskazówek dotyczących rozwiązywania problemów, które ułatwiają identyfikowanie i rozwiązywanie problemów z dystrybucją zawartości.
Oryginalna wersja produktu: Configuration Manager current branch, Microsoft System Center 2012 Configuration Manager, Microsoft System Center 2012 R2 Configuration Manager
Włączanie pełnego rejestrowania
PkgXferMgr.log
W przypadku Menedżera transferu pakietów pełne rejestrowanie zawiera więcej informacji w dzienniku dotyczącym procesu kopiowania zawartości, skrótów plików i planowania zadań. Pełne rejestrowanie można włączyć, ustawiając następującą wartość rejestru na 0:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\SMS_PACKAGE_TRANSFER_MANAGER\LoggingLevel
W przypadku Menedżera transferu pakietów rejestrowanie debugowania zawiera więcej informacji na temat procesu kopiowania zawartości. Rejestrowanie debugowania można włączyć, ustawiając następującą wartość rejestru na 1:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\SMS_PACKAGE_TRANSFER_MANAGER\DebugLogging
Uwaga 16.
Te zmiany rejestru nie wymagają ponownego
SMS_Executive
uruchomienia usługi.Dzienniki klienta (w tym dzienniki ściągania programu DP i punktu zarządzania)
Pełne rejestrowanie można włączyć, ustawiając następującą wartość rejestru na 0:
HKEY_LOCAL_MACHINE\Software\Microsoft\CCM\Logging\@GLOBAL\LogLevel
Rejestrowanie debugowania można włączyć, ustawiając następującą wartość rejestru jako REG_SZ z wartością True:
HKEY_LOCAL_MACHINE\Software\Microsoft\CCM\Logging\DebugLogging\Enabled
Rozmiar dziennika PROGRAMU CCM można zwiększyć do 5M, ustawiając następującą wartość rejestru na 5242880 (dziesiętne)
HKEY_LOCAL_MACHINE\Software\Microsoft\CCM\Logging\@GLOBAL\LogMaxSize
Ponadto można edytować wartość DWORD dla następującej wartości rejestru, aby zwiększyć liczbę plików dziennika historii do przechowywania:
HKEY_LOCAL_MACHINE\Software\Microsoft\CCM\Logging\@GLOBAL\LogMaxHistory
Uwaga 16.
Te zmiany rejestru wymagają ponownego
SMS Agent Host
uruchomienia usługi.StateSys.log
Pełne rejestrowanie dla StateSys.log można włączyć, ustawiając następującą wartość rejestru na 1:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\COMPONENTS\SMS_STATE_SYSTEM\Verbose logging
Uwaga 16.
Ta zmiana klucza rejestru nie wymaga ponownego
SMS_Executive
uruchomienia usługi.(Globalny — tylko serwer lokacji) Zapytania SQL
Aby uzyskać informacje o zapytaniach SQL wykonywanych przez
ConfigMgr
składniki, śledzenie SQL można włączyć, ustawiając następującą wartość rejestru na 1:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\SqlEnabled
Ta wartość rejestru dodaje rejestrowanie śledzenia SQL dla wszystkich dzienników serwera lokacji. Należy to zrobić tylko tymczasowo podczas rozwiązywania problemów i należy je wyłączyć po otrzymaniu odpowiednich dzienników.
Uwaga 16.
Ta zmiana rejestru nie wymaga ponownego
SMS_Executive
uruchomienia usługi.(Globalny — tylko serwer lokacji) Włączanie archiwizowania dzienników
Występują sytuacje, gdy problem nie jest odtwarzany na żądanie i podczas oczekiwania na odtworzenie problemu, istnieje ryzyko przewracania dzienników. W takich sytuacjach włączenie archiwizacji dzienników może być przydatne, ponieważ pozwala mieć więcej dzienników historycznych. Dotyczy to tylko dzienników serwera lokacji.
Archiwizowanie dzienników można włączyć, ustawiając następujące wartości rejestru:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\ArchiveEnabled
= 1HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\ArchivePath
= <ArchiveLocation>Po włączeniu archiwizacji dzienników program ConfigMgr zarchiwizuje przerzucane dzienniki do lokalizacji <ArchiveLocation> i będzie przechowywać 10 kopii każdego dziennika.
Aby zwiększyć liczbę kopii obsługiwanych dla określonego składnika po włączeniu archiwizacji dzienników, ustaw następującą wartość rejestru na 20:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\COMPONENT_NAME\LogMaxHistory
Uwaga 16.
Te zmiany rejestru wymagają ponownego
SMS_Executive
uruchomienia usługi.(Na dziennik — tylko serwer lokacji) Zwiększanie rozmiaru pliku dziennika
Aby zwiększyć rozmiar pliku dziennika dla pojedynczego dziennika na 50 MB, ustaw wartość rejestru specyficzną dla składnika na 52428800 (dziesiętne):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\COMPONENT_NAME\MaxFileSize
Uwaga 16.
Ta zmiana rejestru wymaga ponownego
SMS_Executive
uruchomienia usługi.
Wyślij ponownie skompresowaną kopię pakietu do witryny
Gdy pakiet jest najpierw dystrybuowany do lokacji, program DistMgr wysyła skompresowaną kopię pakietu do lokacji. Po wyodrębnieniu pakietu w bibliotece zawartości w witrynie lokalna kopia zawartości jest używana do wysyłania pakietu do dostawców usług w chmurze, o ile ta sama wersja pakietu jest dystrybuowana do adresów IP w witrynie.
Istnieje kilka przypadków, w których należy wymusić ponowne wysłanie skompresowanej kopii pakietu do określonej lokacji przez witrynę. W szczególności jest to wymagane w przypadku:
- Brak zawartości z biblioteki zawartości (
PkgLib
,DataLib
lubFileLib
) na samym serwerze lokacji głównej lub dodatkowej. - DistMgr.log konsekwentnie narzeka na zawartość, która nie dotarła z witryny nadrzędnej (na przykład: "Zawartość pakietu CS100026 nie dotarła jeszcze z witryny CS1, ponów próbę później".
W większości przypadków komunikat "Zawartość pakietu CS100026 nie dotarła jeszcze z witryny CS1, zostanie ona zarejestrowana tymczasowo podczas przesyłania zawartości pakietu. Po wyświetleniu tego komunikatu przejrzyj dzienniki Nadawca/Despooler, aby upewnić się, że nie ma problemów z komunikacją lokacji. Zapoznaj się z artykułem Dystrybucja pakietu do programu DP między lokacjami , aby zrozumieć przepływ dziennika.
Jak program DistMgr wie, czy bieżąca witryna ma zainstalowaną kopię pakietu
Program DistMgr sprawdza, czy w pakiecie znajduje się wiersz PkgStatus
Typu 1 dla danej wersji pakietu. Jeśli istnieje wiersz Typu 1 dla lokacji ze stanem = Zainstalowany, lokalna kopia zawartości pakietu jest używana do wysyłania do adresów IP. Jeśli w programie nie ma wiersza PkgStatus
typu 1, oznacza to, że zawartość pakietu nie jest jeszcze zainstalowana na serwerze lokacji.
Czy redystrybucja pakietu do programu DP colocated na serwerze lokacji powoduje skompresowaną kopię pakietu w celu ponownego wysłania
L.p. Ponowne dystrybuowanie pakietu opiera się na witrynie, która ma już zawartość pakietu w katalogu źródłowym pakietu. Jeśli pakiet został wysłany do lokacji w pewnym momencie i oznaczony jako Zainstalowany, wówczas akcja redystrybucji w programie DP kolokowanym na serwerze lokacji nie wykonuje żadnych czynności, ponieważ program DistMgr uważa, że zawartość jest już zainstalowana, a następujący wiersz zostanie zarejestrowany w DistMgr.log:
Punkt dystrybucji znajduje się na serwerze lokacji, a pakiet jest pakietem typu zawartości. Nie ma nic do skopiowania.
Co zrobić, jeśli w bibliotece zawartości w witrynie źródłowej pakietu brakuje zawartości
Jeśli w bibliotece zawartości w witrynie źródłowej pakietu brakuje zawartości, zresetowanie SourceVersion
elementu nie pomoże. Jedynym sposobem ponownego wypełniania brakującej zawartości jest zaktualizowanie pakietu. Zaktualizowanie pakietu powoduje, że lokacja źródłowa pakietu tworzy migawkę pakietu z lokalizacji źródłowej pakietu i zapisuje zawartość w bibliotece zawartości.
Jak mogę wymusić ponowne wysłanie skompresowanej kopii pakietu do określonej lokacji w lokacji źródłowej pakietu
Po potwierdzeniu, że lokacja źródłowa pakietu ma wymaganą zawartość, można wymusić ponowne wysłanie pliku PCK pakietu do określonej lokacji, ustawiając SourceVersion
wartość 0 dla wiersza PkgStatus
Typu 1 dla witryny, której dotyczy problem. Ten wiersz można zidentyfikować, uruchamiając następujące zapytanie SQL w bazie danych lokacji źródłowej pakietu po zastąpieniu identyfikatora PACKAGEID i SITECODE żądanego pakietu i lokacji:
SELECT * FROM PkgStatus WHERE Type = 1 AND ID = 'PACKAGEID' AND SiteCode = 'SITECODE'
Po potwierdzeniu, że to zapytanie zwraca unikatowy i poprawny wiersz, uruchomienie poniższego zapytania spowoduje zresetowanie SourceVersion
tego wiersza do wartości 0:
UPDATE PkgStatus SET SourceVersion = 0 WHERE Type = 1 AND ID = 'PACKAGEID' AND SiteCode = 'SITECODE'
Po zresetowaniu SourceVersion
wartości 0 dla wiersza typu 1 ponowne dystrybuowanie pakietu do dowolnego programu DP w lokacji, której dotyczy problem, wymusi ponowne wysłanie skompresowanej kopii pakietu do witryny, której dotyczy problem.
Uwaga 16.
Bardzo ważne jest, aby uruchomić powyższe zapytanie w witrynie, która jest właścicielem pakietu, tj. lokacji źródłowej pakietu.
Odpowiednie tabele dystrybucji zawartości
SMSPackages
— Zawiera listę wszystkich pakietówInteresujące kolumny:
Kolumna Wartości Akcja 0 — BRAK
1 — AKTUALIZACJA
2 — DODAWANIE
3 — USUWANIE
4 — WERYFIKACJA
5 — ANULUJTyp pakietu 0 — Zwykły pakiet
3 — Pakiet sterowników
4 — Sekwencja zadań
5 — Pakiet aktualizacji oprogramowania
6 — Pakiet ustawień urządzenia
7 — Pakiet aplikacji wirtualnej
8 — Pakiet zawartości (aplikacja)
257 — Obraz systemu operacyjnego
258 — Obraz rozruchowy
259 — Pakiet instalacyjny systemu operacyjnego
260 — Pakiet dysku VHDPkgServers
— Zawiera listę wszystkich pakietów wraz z adresami DPS, do których są obecnie przeznaczone.Interesujące kolumny:
Kolumna Wartości Akcja 0 — BRAK
1 — AKTUALIZACJA
2 — DODAWANIE
3 — USUWANIE
4 — WERYFIKACJA
5 — ANULUJPkgStatus
— Zawiera listę bieżącego stanu pakietu dla każdego pakietu dla każdego programu DP.Interesujące kolumny:
Kolumna Wartości Typ 1 — WITRYNA (MASTER)
2 — DP (KOPIOWANIE)
Typ 1 wierszy jest tworzony dla każdej lokacji, do której jest przeznaczony pakiet. PkgServer dla tego wiersza to nazwa FQDN serwera lokacji.
Dla każdego programu DP tworzony jest typ 2 wierszy przeznaczonych dla pakietu. PkgServer to DP NALPATH.Stan 0 — BRAK
1 — WYSŁANE
2 — ODEBRANE
3 — ZAINSTALOWANE
4 — PONÓW PRÓBĘ
5 — NIEPOWODZENIE
6 — USUNIĘTE
7 — OCZEKIWANIE NA USUNIĘCIE (nieużytne)
8 — USUWANIE NIE POWIODŁO SIĘ
9 — PONÓW PRÓBĘ USUNIĘCIADistributionJobs
— Zawiera listę zadań Menedżera transferu pakietów wraz z ich bieżącym stanem.Interesujące kolumny:
Kolumna Wartości Akcja 0 — BRAK
1 — AKTUALIZACJA
2 — DODAWANIE
3 — USUWANIE
4 — WERYFIKACJA
5 — ANULUJStan 0 — OCZEKUJĄCE
1 — GOTOWE
2 — ROZPOCZĘTO
3 — RUCH PRZYCHODZĄCY
4 — OCZEKIWANIE NA PONOWNE URUCHOMIENIE
5 — UKOŃCZONO
6 — NIEPOWODZENIE
7 — ANULOWANE
8 — ZAWIESZONEDistributionPoints
— Zawiera listę wszystkich punktów dystrybucji.Interesujące kolumny:
Kolumna Wartości Akcja 0 — BRAK
1 — AKTUALIZACJA
2 — DODAWANIE
3 — USUWANIE
4 — WERYFIKACJA
5 — ANULUJPullDPResponse
— Tymczasowo zawiera odpowiedź stanu pakietu wysłaną z ściągniętych adresów IP. Program DistMgr przetwarza odpowiedź i aktualizujePkgStatus
element .Interesujące kolumny:
Kolumna Wartości ActionState 1 — POWODZENIE
2 — OSTRZEŻENIE
4 — BŁĄD
8 — ROZPOCZĘTO POBIERANIE
16 — POBIERANIE W TOKU
32 — POBRANE
64 — ANULOWANE
128 — ZAŻĄDANO ANULOWANIAPkgNotification
— Tabela powiadomień monitorowana przez program SMSDBMON w celu wyzwolenia programu DistMgr w celu przetworzenia pakietu. Kolumna typu definiuje typ powiadomienia o pakiecie. Wiersze w tej tabeli są usuwane po wyzwoleniu programu DistMgr przez program SMSDBMON.Interesujące kolumny:
Kolumna Wartości Typ 0 — NIEZNANY
1 — PAKIET
2 — PROGRAM
4 — SERWER PAKIETÓW (DP)
8 — KONTO DOSTĘPU DO PAKIETÓW
15 — WSZYSTKIEŚciąganie komunikatów o stanie programu DP — lista identyfikatorów komunikatów o stanie zgłaszanych przez ściąganie programu DP
Interesujące kolumny:
Kolumna Wartości Identyfikator stanu 1 — POWODZENIE
2 — OSTRZEŻENIE
4 — NIEPOWODZENIE
8 — ROZPOCZĘTO POBIERANIE
16 — POBIERANIE W TOKU
32 — POBRANE
64 — ANULOWANEPrzykładowy raport komunikatu o stanie:
<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>
Przydatne zapytania SQL
Poniżej przedstawiono niektóre zapytania SQL, które mogą być przydatne podczas rozwiązywania różnych problemów związanych z dystrybucją zawartości.
Zapytania o stan pakietu/programu DP
Wszystkie nieudane pakiety/dostawcy danych
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
Wszystkie pakiety w toku /dostawcy danych
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
Wszystkie pakiety powodzenia /DPs
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
Wszystkie pakiety/dostawcy danych w stanie W toku przez ponad trzy dni
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
Wszystkie pakiety/dostawcy danych w stanie Niepowodzenie przez ponad trzy dni
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
Liczba wszystkich stanów
SELECT MessageState, COUNT(MessageState) AS [Count] FROM vSMS_DPStatusDetails WHERE PackageID <> '' GROUP BY MessageState
Liczba stanów pakietów na 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
Stan wszystkich dostawców danych dla danego pakietu
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
Liczba stanów programu DP na pakiet
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
Bieżący stan pakietu/programu 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>'
Znajdowanie oddzielonych odwołań dp
Poniższe zapytanie może służyć do określenia, czy w bazie danych nie ma już żadnych oddzielonych wierszy w bazie danych dla programu DP, który nie znajduje się już w środowisku. Jeśli program DP nie został poprawnie usunięty, może istnieć oddzielone wiersze.
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
Podobne zapytanie dotyczące określonego programu DP w określonej lokacji:
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
Właściwości pliku kontroli lokacji (SCF)
Właściwości programu SCF dla programu DistMgr dla bieżącej lokacji
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'
Właściwości SCF dla programu 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'
Pakiety zawierające określoną aktualizację oprogramowania
Wyświetl listę wszystkich pakietów zawierających daną aktualizację Unikatowy identyfikator.
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>'