Entfernen doppelter Management Pack-Aliase
Mit System Center Operations Manager 2019 UR4 und 2022 RTM wird bei System Center Operations Manager Management Pack-Referenzaliasen die Groß-/Kleinschreibung beachtet und nur eindeutige Aliase erstellt. Daher schlägt system Center Operations Manager Updaterollupups oder Versionsupgrades in einer Umgebung fehl, in der doppelte Management Pack-Referenzalias bereits vorhanden sind.
In diesem Artikel werden die doppelten Management Pack-Referenzaliasen (sofern vorhanden) entfernt, damit Updaterollupups oder Versionsupgrades von System Center Operations Manager erfolgreich abgeschlossen werden.
Stellen Sie sicher, dass alle doppelten Management Pack-Aliase entfernt werden, bevor Sie ein Upgrade auf System Center Operations Manager 2019 UR4 durchführen.
Erkennen doppelter Management Pack-Aliase
Gehen Sie wie folgt vor, um Management Packs mit doppelten Management Pack-Aliasen zu erkennen:
Starten Sie Entweder PowerShell ISE auf einem Verwaltungsserver, oder führen Sie die T-SQL für System Center Operations Manager Operations Database aus.
PowerShell-Skript
############################################
#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
Szenario 1
Wenn die Ausgabe des PowerShell- oder T-SQL-Skripts keinen Wert zurückgibt, gibt es keine doppelten Management Pack-Aliase. Fahren Sie mit dem UR4-Upgrade fort.
Szenario 2
Wenn die Ausgabe eine oder mehrere Zeilen zurückgibt, gehen Sie wie folgt vor:
Wenn das Management Pack nicht gesiegelt ist
Exportieren Sie das Management Pack aus der Konsole.
Öffnen Sie das Management Pack-XML mit einem Text-Editor.
Identifizieren Sie den doppelten Alias.
Benennen Sie einen der Aliase unter "Referenz " und alle anderen Stellen um, an denen der Alias im XML-Textkörper verwendet wird.
In diesem Beispiel haben wir zwei Aliase, die in System Center Operations Manager 2019 UR4 als Duplikate betrachtet werden.Um zu erkennen, wo die Aliase verwendet werden, durchsuchen Sie den XML-Code mit AliasName. In diesem Fall ist es BADALIAS. Beachten Sie die Stellen, an denen der Verweis verwendet wird.
Benennen Sie einen dieser Aliase unter "Verweis" in einen eindeutigen Namen um, und ersetzen Sie alle Vorkommen des alten Namens durch den neuen Namen, wie im obigen Schritt erkannt.
Nachdem die doppelten Aliase umbenannt wurden, importieren Sie das Management Pack erneut in System Center Operations Manager.
Wenn das Management Pack versiegelt ist
- Öffnen Sie das versiegelte Management Pack gemäß dem Tool der Voreinstellung.
- Identifizieren Sie den doppelten Alias.
- Benennen Sie einen der Aliase unter "Referenz " und alle anderen Stellen um, an denen der Alias im XML-Textkörper verwendet wird.
- Erstellen Sie das Management Pack neu, und importieren Sie es in System Center Operations Manager erneut.
- Die gleichen Schritte können sie ausführen, indem Sie das XML bearbeiten – Versiegeln des Management Packs und erneutes Importieren des Management Packs.
- Öffnen Sie das versiegelte Management Pack gemäß dem Tool der Voreinstellung.
Nachdem die Entschärfung für alle Management Packs durchgeführt wurde, führen Sie das PowerShell-Skript oder das T-SQL-Skript erneut aus, um sicherzustellen, dass keine Ausgabe zurückgegeben wird.
Führen Sie die obigen Schritte für jedes Als Ausgabe zurückgegebene Management Pack aus.