Aracılığıyla paylaş


Yinelenen Yönetim paketi diğer adlarını kaldırma

System Center Operations Manager 2019 UR4 ve 2022 RTM ile System Center Operations Manager yönetim paketi başvuru diğer adları büyük/küçük harfe duyarlıdır ve yalnızca benzersiz diğer adlar oluşturur. Sonuç olarak, System Center Operations Manager güncelleştirme paketi yükseltmeleri veya sürüm yükseltmeleri, yinelenen yönetim paketi başvuru diğer adlarının zaten bulunduğu bir ortamda başarısız olur.

Bu makale, System Center Operations Manager güncelleştirme paketi yükseltmelerinin veya sürüm yükseltmelerinin başarıyla tamamlanması için yinelenen yönetim paketi başvuru diğer adlarının (varsa) kaldırılmasına yardımcı olur.

System Center Operations Manager 2019 UR4'e yükseltmeden önce tüm yinelenen yönetim paketi diğer adlarını kaldırdığınızdan emin olun.

Yinelenen yönetim paketi diğer adlarını algılama

Yinelenen yönetim paketi diğer adlarına sahip yönetim paketlerini algılamak için aşağıdakileri yapın:

Bir Yönetim Sunucusunda PowerShell ISE'yi başlatın veya System Center Operations Manager İşletim Veritabanı'nda T-SQL'i çalıştırın.

PowerShell Betiği

############################################
#Identify MPs imported with duplicate Aliases
Import-Module OperationsManager
$mps = Get-SCOMManagementPack
foreach ($mp in $mps)
{
  	$hashTable = @{}
 	 foreach ($ref in $mp.References)
  	{
   	 try {$hashTable.Add($ref.Key, $ref.Value)}
    	catch
    	{
     	 $MPName = $mp.Name
     	 $MPDisplayName = $mp.DisplayName
     	 $MPVersion = $mp.Version
        "MP contains duplicate aliases: Name=($MPName) DiplayName=($MPDisplayName) Version=($MPVersion)"
    	}
  	}
}
############################################ 

T-SQL

-- LIST ALL MPs that have a duplicate Alias reference
DECLARE @mpFriendlyName NVARCHAR(255),
        @mpName         NVARCHAR(255),
        @mpId           UNIQUEIDENTIFIER,
        @mpXml          AS XML

CREATE TABLE #badmptable
  (
     mpid           UNIQUEIDENTIFIER,
     mpname         NVARCHAR(255),
     mpfriendlyname NVARCHAR(255)
  )

DECLARE mp_cursor CURSOR local forward_only read_only FOR
  SELECT mpfriendlyname,
         mpname,
         managementpackid,
         CONVERT(XML, mpxml)
  FROM   managementpack

OPEN mp_cursor

FETCH next FROM mp_cursor INTO @mpFriendlyName, @mpName, @mpId, @mpXml

WHILE @@FETCH_STATUS = 0
  BEGIN
      SELECT n.value('@Alias', 'nvarchar(255)') AS mpRef
      INTO   #temprefs
      FROM   @mpXml.nodes('/ManagementPack/Manifest/References/Reference') AS a(
             n)

      IF EXISTS (SELECT Count(*)
                 FROM   #temprefs
                 GROUP  BY mpref
                 HAVING Count(*) > 1)
        BEGIN
            INSERT INTO #badmptable
                        (mpid,
                         mpname,
                         mpfriendlyname)
            VALUES      ( @mpId,
                          @mpName,
                          @mpFriendlyName )
        END

      DROP TABLE #temprefs

      FETCH next FROM mp_cursor INTO @mpFriendlyName, @mpName, @mpId, @mpXml
  END

CLOSE mp_cursor

DEALLOCATE mp_cursor

SELECT *
FROM   #badmptable

DROP TABLE #badmptable
--End

Senaryo 1

PowerShell veya T-SQL betiğinin çıkışı değer döndürmezse, yinelenen yönetim paketi diğer adları yoktur. UR4 yükseltmesine devam edin.

Senaryo 2

Çıkış bir veya daha fazla satır döndürüyorsa aşağıdakileri yapın:

  1. Yönetim paketi korumasızsa

    1. Yönetim paketini konsolundan dışarı aktarın.

    2. Bir metin düzenleyicisi kullanarak yönetim paketi XML'sini açın.

    3. Yinelenen diğer adı belirleyin.

    4. Başvuru altındaki diğer adlardan birini ve diğer adın XML gövdesinde kullanıldığı diğer tüm yerleri yeniden adlandırın.
      Bu örnekte, System Center Operations Manager 2019 UR4'te yinelenen olarak kabul edilecek iki diğer adımız vardır.

      Diğer adlar örneğini gösteren ekran görüntüsü.

      Diğer adların nerede kullanıldığını algılamak için AliasName ile XML'de arama gerçekleştirin. Bu durumda badalias. Başvurunun kullanıldığı yerleri not edin.

      Bu diğer adlardan birini Başvuru altında benzersiz bir adla yeniden adlandırın ve eski adın tüm oluşumlarını yukarıdaki adımda algılanan yeni adla değiştirin.

    5. Yinelenen diğer adlar yeniden adlandırıldıktan sonra yönetim paketini System Center Operations Manager'a yeniden aktarın.

  2. Yönetim paketi korumalıysa

    1. Tercih aracına göre korumalı yönetim paketini açın.
    2. Yinelenen diğer adı belirleyin.
    3. Başvuru altındaki diğer adlardan birini ve diğer adın XML gövdesinde kullanıldığı diğer tüm yerleri yeniden adlandırın.
    4. System Center Operations Manager'da yönetim paketini yeniden oluşturun ve yeniden içeri aktarın.
    5. Aynı adımlar, XML düzenlemesi - Yönetim paketini mühürleme ve yönetim paketini yeniden içeri aktarma yoluyla da yapılabilir.

Tüm yönetim paketlerinde azaltma işlemi yapıldıktan sonra PowerShell betiğini veya T-SQL betiğini yeniden çalıştırarak çıkış döndürmediğinden emin olun.

Çıktı olarak döndürülen her yönetim paketi için yukarıdaki adımları izleyin.