Remover aliases duplicados do pacote de gerenciamento
Com o System Center Operations Manager 2019 UR4 e o 2022 RTM, os aliases de referência do pacote de gerenciamento do System Center Operations Manager diferenciam maiúsculas de minúsculas e criarão apenas aliases exclusivos. Como resultado, as atualizações cumulativas de atualizações ou atualizações de versão do System Center Operations Manager falharão em um ambiente em que aliases de referência de pacote de gerenciamento duplicados já estão presentes.
Este artigo ajuda a remover os aliases de referência do pacote de gerenciamento duplicados (se houver) para que as atualizações cumulativas de atualizações do System Center Operations Manager ou as atualizações de versão sejam concluídas com êxito.
Certifique-se de remover todos os aliases duplicados do pacote de gerenciamento antes de atualizar para o System Center Operations Manager 2019 UR4.
Detectar aliases de pacote de gerenciamento duplicados
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.
Script do PowerShell
############################################
#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 do 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 lacrado
Exporte o pacote de gerenciamento do console.
Abra o XML do pacote de gerenciamento usando um editor de texto.
Identifique o alias duplicado.
Renomeie um dos aliases em Referência e todos os outros locais onde o alias é usado no corpo XML.
Neste exemplo, temos dois aliases, que serão considerados como duplicatas no System Center Operations Manager 2019 UR4.Para detectar onde os aliases são usados, pesquise o XML com AliasName. Neste caso, é BADALIAS. Observe os locais onde 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 renomeados, importe novamente o pacote de gerenciamento para o System Center Operations Manager.
Se o pacote de gerenciamento estiver lacrado
- Abra o pacote de gerenciamento lacrado de acordo com a ferramenta de sua preferência.
- Identifique o alias duplicado.
- Renomeie um dos aliases em Referência e todos os outros locais onde o alias é usado no corpo XML.
- Recompile o pacote de gerenciamento e importe-o novamente no System Center Operations Manager.
- As mesmas etapas podem ser executadas editando o XML – Lacrando o pacote de gerenciamento e reimportando o pacote de gerenciamento.
- Abra o pacote de gerenciamento lacrado de acordo com a ferramenta de sua preferência.
Depois que a mitigação for concluída 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.