Dubbele management pack-aliassen verwijderen
Met System Center Operations Manager 2019 UR4 en 2022 RTM zijn referentiealiassen van System Center Operations Manager management pack hoofdlettergevoelig en worden alleen unieke aliassen gemaakt. Als gevolg hiervan mislukken upgrades of versie-upgrades van System Center Operations Manager-updatepakketten in een omgeving waarin dubbele management pack-referentiealiassen al aanwezig zijn.
In dit artikel worden de dubbele management pack-referentiealiassen (indien aanwezig) verwijderd, zodat de updatepakketten van System Center Operations Manager of versie-upgrades zijn voltooid.
Zorg ervoor dat u alle dubbele management pack-aliassen verwijdert voordat u een upgrade uitvoert naar System Center Operations Manager 2019 UR4.
Dubbele management pack-aliassen detecteren
Ga als volgt te werk om management packs met dubbele management pack-aliassen te detecteren:
Start PowerShell ISE op een beheerserver of voer de T-SQL uit op System Center Operations Manager Operations Database.
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
Scenario 1
Als de uitvoer van het PowerShell- of T-SQL-script geen waarde retourneert, zijn er geen dubbele management pack-aliassen. Ga verder met de UR4-upgrade.
Scenario 2
Als de uitvoer een of meer rijen retourneert, gaat u als volgt te werk:
Als het management pack niet is verzegeld
Exporteer het management pack vanuit de console.
Open het management pack XML met behulp van een teksteditor.
Identificeer de dubbele alias.
Wijzig de naam van een van de aliassen onder Verwijzing en alle andere plaatsen waar de alias wordt gebruikt in de XML-hoofdtekst.
In dit voorbeeld hebben we twee aliassen, die worden beschouwd als duplicaten in System Center Operations Manager 2019 UR4.Als u wilt detecteren waar de aliassen worden gebruikt, zoekt u in de XML met AliasName. In dit geval is het BADALIAS. Let op de plaatsen waar de verwijzing wordt gebruikt.
Wijzig de naam van een van deze aliassen in een unieke naam onder Verwijzing en vervang alle exemplaren van de oude naam door de nieuwe naam, zoals is gedetecteerd in de bovenstaande stap.
Zodra de naam van de dubbele aliassen is gewijzigd, moet u het management pack opnieuw importeren in System Center Operations Manager.
Als het management pack is verzegeld
- Open het verzegelde management pack op basis van het hulpprogramma van de voorkeur.
- Identificeer de dubbele alias.
- Wijzig de naam van een van de aliassen onder Verwijzing en alle andere plaatsen waar de alias wordt gebruikt in de XML-hoofdtekst.
- Bouw het management pack opnieuw en import opnieuw in System Center Operations Manager.
- Dezelfde stappen kunnen worden uitgevoerd door het XML-bestand te bewerken: het management pack verzegelen en het management pack opnieuw importeren.
- Open het verzegelde management pack op basis van het hulpprogramma van de voorkeur.
Zodra de beperking op alle management packs is uitgevoerd, voert u het PowerShell-script of het T-SQL-script opnieuw uit om ervoor te zorgen dat er geen uitvoer wordt geretourneerd.
Volg de bovenstaande stappen voor elk management pack dat als uitvoer wordt geretourneerd.