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:
Se o pacote de gerenciamento não estiver selado
Exporte o pacote de gerenciamento do console.
Abra o pacote de gerenciamento XML usando um editor de texto.
Identifique o alias duplicado.
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.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.
Depois que os aliases duplicados forem renomeado, reimporte o pacote de gerenciamento para o System Center Operations Manager.
Se o pacote de gerenciamento estiver selado
- Abra o pacote de gerenciamento selado de acordo com a ferramenta de preferência.
- Identifique o alias duplicado.
- Renomeie um dos aliases em Referência e todos os outros locais em que o alias é usado no corpo XML.
- Recompile o pacote de gerenciamento e reimporte no System Center Operations Manager.
- As mesmas etapas podem ser feitas editando o XML – Selando o pacote de gerenciamento e reimportando o pacote de gerenciamento.
- Abra o pacote de gerenciamento selado de acordo com a ferramenta de preferência.
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.