Partilhar via


Remover aliases de pacote de gerenciamento duplicado

Com o System Center Operations Manager 2019 UR4 e 2022 RTM, os aliases de referência do pacote de gerenciamento do System Center Operations Manager são sensíveis a casos e criarão apenas aliases exclusivos. Como resultado, as atualizações de atualização ou atualizações de versão do System Center Operations Manager falharão em um ambiente em que os aliases de referência do pacote de gerenciamento duplicado já estão presentes.

Este artigo ajuda a remover os aliases de referência do pacote de gerenciamento duplicado (se estiverem presentes) para que as atualizações de rollup ou atualizações de versão do System Center Operations Manager estejam concluídas com êxito.

Certifique-se de remover todos os aliases de pacote de gerenciamento duplicados antes de atualizar para o System Center Operations Manager 2019 UR4.

Detectar aliases do pacote de gerenciamento duplicado

Para detectar pacotes de gerenciamento com aliases de pacote de gerenciamento duplicados, faça o seguinte:

Inicie o ISE do PowerShell em um Servidor de Gerenciamento ou execute o T-SQL no Banco de Dados de Operações do System Center Operations Manager.

PowerShell Script

############################################
#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

Cenário 1

Se a saída do script do PowerShell ou T-SQL não retornar nenhum valor, não haverá aliases de pacote de gerenciamento duplicados. Prossiga com a atualização da UR4.

Cenário 2

Se a saída retornar uma ou mais linhas, faça o seguinte:

  1. Se o pacote de gerenciamento não estiver selado

    1. Exporte o pacote de gerenciamento do console.

    2. Abra o pacote de gerenciamento XML usando um editor de texto.

    3. Identifique o alias duplicado.

    4. Renomeie um dos aliases em Referência e todos os outros locais em que o alias é usado no corpo XML.
      Neste exemplo, temos dois aliases, que serão considerados duplicados no System Center Operations Manager 2019 UR4.

      Captura de tela mostrando o exemplo de aliases.

      Para detectar onde os aliases são usados, pesquise o XML com AliasName. Nesse caso, é BADALIAS. Observe os locais em que a referência é usada.

      Renomeie um desses aliases para um nome exclusivo em Referência e substitua todas as ocorrências do nome antigo pelo novo nome, conforme detectado na etapa acima.

    5. Depois que os aliases duplicados forem renomeado, reimporte o pacote de gerenciamento para o System Center Operations Manager.

  2. Se o pacote de gerenciamento estiver selado

    1. Abra o pacote de gerenciamento selado de acordo com a ferramenta de preferência.
    2. Identifique o alias duplicado.
    3. Renomeie um dos aliases em Referência e todos os outros locais em que o alias é usado no corpo XML.
    4. Recompile o pacote de gerenciamento e reimporte no System Center Operations Manager.
    5. As mesmas etapas podem ser feitas editando o XML – Selando o pacote de gerenciamento e reimportando o pacote de gerenciamento.

Depois que a mitigação for feita em todos os pacotes de gerenciamento, execute novamente o script do PowerShell ou o script T-SQL para garantir que ele não retorne nenhuma saída.

Siga as etapas acima para cada pacote de gerenciamento retornado como saída.