UniqueIdentifier – zwei unterschiedliche Formate

Hilmar82

Benutzer
Beiträge
6
Hallo Zusammen,
ich habe mal wieder eine Frage.
Aus zwei unterschiedlichen Systemen erhalte ich für ein Device (Laptop) unterschiedliche UniqueIdentifier Angaben:

Einmal habe ich:
41C41442-5FC3-0FFF-6F81-39499B565718
Und das andere Mal:
4214C441-C35F-FF0F-6F81-39499B565718
Ich hatte bereits erfahren, dass die unterschiedliche Darstellung etwas mit der Art des UniqueIdentifier zu tun hat und ein Wert entsprechend konvertiert werden müsste… .
Dazu habe ich leider in meinen Internetrecherchen nichts finden können.
Somit wäre meine Frage, kennt Jemand das Thema?
Falls ja, wie müsste der Convert-aufgebaut werden, damit ich die Werte mittels JOIN-vergleich kann?
 
Werbung:
Das SIND unterschiedliche Werte, sowohl in textform als auch umgewandelt als UUID:

Code:
postgres=# select '41C41442-5FC3-0FFF-6F81-39499B565718'::uuid = '4214C441-C35F-FF0F-6F81-39499B565718'::uuid;
 ?column? 
----------
 f
(1 row)

postgres=#

Du solltest den Tatsachen tief ins Auge schauen ...
 
Naja, die Frage wäre ja vielleicht, welches System dir diese "Unique Identifier" liefert?
Und was hat das mit MS SQL Server zu tun?

Ein handgestrickter Algo, der aus irgendwelchen MAC Adressen oder so einen solchen Wert zusammenbastelt?
Vielleicht ist der Mechnismus Müll und verdreht bei 32 und 64 bit Systemen, -Client.., .. irgendwelche High Low, Links Rechts, Endianess Werte?
 
Ok... bei der einen Datenquelle handelt es sich um Empirum, Inventory-Scanner, (M42 - ist eine MS SQL DB) und bei der anderen Datenquelle um VM vCenter, mittels Powershell-Modul, PowerCLI, abgefragt. Das gescannte System ist einen virtuellen Server. Der UniqueIdentifier enthält die eindeutige System UUID. Eine Vermutung war noch, dass die erste Datenquelle den "falschen" Bereich gescannt hat, in welchem der UniqueIdentifier "verdreht" hinterlegt ist. Interessant war nur, dass ich dieses bei ca. 400 Virtuellen Servern habe... . Somit waren wir von unterschiedlichen Formaten ausgegangen... .
 
Deine beiden Quellen verwenden schlicht verschieden (interne?) Werte. Das ist auch nichts Anderes als wenn das eine System 42 verwendet und das andere 46.
 
Es gibt tatsächlich eine "maschinelle Repräsentation" der GUID, (ohne Bindestriche und mit 0x vorgestellt) die ein paar Stellen anders sortiert. So ganz verstehen tue ich das Thema auch noch nicht aber ich bin da mal in einem anderen Forum drauf gestoßen. Hier mal eine Funktion, die in unserem CRM "die selbe formatierte Ausgabe" eine GUID liefern soll, wie sie auch das SSMS liefert:
SQL:
CREATE FUNCTION [dbo].[xxxx_fct_UnformatGUID](@formattedGUID nvarchar(36))
RETURNS nvarchar(32)
AS
BEGIN
SET @formattedGUID = LOWER(SUBSTRING(@formattedGUID, 7, 2) +
SUBSTRING(@formattedGUID, 5, 2) +
SUBSTRING(@formattedGUID, 3, 2) +
SUBSTRING(@formattedGUID, 1, 2) +
SUBSTRING(@formattedGUID, 12, 2) +
SUBSTRING(@formattedGUID, 10, 2) +
SUBSTRING(@formattedGUID, 17, 2) +
SUBSTRING(@formattedGUID, 15, 2) +
SUBSTRING(@formattedGUID, 20, 4) +
SUBSTRING(@formattedGUID, 25, 12))
return cast (@formattedGUID as nvarchar(32))
END
 
Werbung:
Wenn ich das richtig verstehe soll es die selbe ID sein, nur in unterschiedlichen Formatierungen dargestellt. Aber wie gesagt das verstehe ich auch nur bedingt. Die Wahrscheinlichkeit 2 GUIDs wie die oben zu erzeugen scheint mir aber auch gering. Das müsste dann wirklich irgendwo abgeleitet sein.

Hier mal der Link zu dem Thread, wo ich mal drüber gestolpert bin:
Kann aber sein das der nur für registrierte Nutzer zugänglich ist.
 
Zurück
Oben