Udostępnij za pośrednictwem


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 = 1

    HKEY_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:

  1. Brak zawartości z biblioteki zawartości (PkgLib, DataLiblub FileLib) na samym serwerze lokacji głównej lub dodatkowej.
  2. 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 PkgStatustypu 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ów

    Interesujące kolumny:

    Kolumna Wartości
    Akcja 0 — BRAK
    1 — AKTUALIZACJA
    2 — DODAWANIE
    3 — USUWANIE
    4 — WERYFIKACJA
    5 — ANULUJ
    Typ 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 VHD
  • PkgServers — 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 — ANULUJ
  • PkgStatus — 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ĘCIA
  • DistributionJobs — 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 — ANULUJ
    Stan 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 — ZAWIESZONE
  • DistributionPoints — Zawiera listę wszystkich punktów dystrybucji.

    Interesujące kolumny:

    Kolumna Wartości
    Akcja 0 — BRAK
    1 — AKTUALIZACJA
    2 — DODAWANIE
    3 — USUWANIE
    4 — WERYFIKACJA
    5 — ANULUJ
  • PullDPResponse — Tymczasowo zawiera odpowiedź stanu pakietu wysłaną z ściągniętych adresów IP. Program DistMgr przetwarza odpowiedź i aktualizuje PkgStatuselement .

    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 ANULOWANIA
  • PkgNotification — 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 — ANULOWANE

    Przykł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>'