Ich suche nach einer eindeutigen GUID, die in der Windows-Registrierung gespeichert ist und mir hilft, eine Windows-Installation oder einen Windows-PC zu identifizieren.
Die GUID muss;
- Immer existieren
- Seien Sie für eine bestimmte Windows-Installation eindeutig, dh kein anderer Computer hat dieselbe ID
- Nie ändern
Danke vielmals
Antworten:
Erwarten Sie, dass sich diese Nummer ändert oder gleich bleibt, wenn das Laufwerk für diese Installation auf ein anderes System verschoben wird?
Erwarten Sie, dass diese Nummer geändert wird, wenn die Installation mit Ghost oder etwas anderem geklont wird? Können Sie sich darauf verlassen, dass geklonte Systeme immer gemäß den Empfehlungen von Microsoft sysprepiert werden? Die SID sollte in Ordnung sein, wenn Sie sicher sein können, dass Ihre Installationen niemals geklont werden.
Müssen Sie bei einem Multi-Boot-System (dh das System hat Windows 7 und eine Windows XP-Installation) die beiden Installationen als eindeutig oder verwandt identifizieren oder was?
Warum muss dies Teil der Windows-Installation sein und nicht die Hardware, möglicherweise die Seriennummer des Prozessors ?
Ich gehe davon aus, dass Sie diesbezüglich nach einem Skript oder Tool fragen, das Sie für Inventarisierungszwecke verwenden.
Warum generieren Sie nicht einfach Ihre eigene Nummer, wenn Sie das Tool zum ersten Mal ausführen, und speichern es in der Registrierungsstruktur LOCAL_MACHINE? Verwenden Sie möglicherweise sogar eine RFC4122-Nummer vom Typ 1, die die Hardwareadresse für eine der Netzwerkschnittstellen enthalten sollte. Auf diese Weise können Sie überprüfen, ob die UUID noch zu diesem System gehört, indem Sie die UUID mit den aktuellen Netzwerkadaptern vergleichen.
quelle
Sie können die GUID aus der Windows-Registrierung abrufen, zum Beispiel:
quelle
Sie möchten die Windows-Produkt-ID verwenden. Dies ist eine eindeutige Nummer, die teilweise aus dem installierten Produktschlüssel und teilweise aus der Hardwarekonfiguration generiert (gehasht) wird, einschließlich der Seriennummer des Prozessors und der MAC-Adresse der ersten Netzwerkkarte. Sie können darüber in diesem (etwas veralteten, aber immer noch gültigen) TechNet-Artikel lesen . Die Produkt-ID kann auf dem Bildschirm Systeminformationen oder programmgesteuert über verschiedene Methoden abgerufen werden.
quelle
Angenommen, es handelt sich um einen Windows-Server, gibt es einen Knowledge Base-Artikel, in dem erläutert wird, wie Sie ihn aus Win2k herausholen können: KB224544 .
Ich weiß nicht, ob LDP.exe noch so funktioniert, aber es kann sein.
quelle
Ich bin mir nicht sicher, ob ein GUID-Wert wie der von Ihnen beschriebene tatsächlich existiert. Es ist üblich, CPU- oder Motherboard-ID-Informationen zu verwenden.
Hier ist ein Link zu einem Forumsbeitrag, der relevanten WMI-Skriptcode enthält: http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework/topic59274.aspx
quelle
Wenn Sie eine Windows-Installation identifizieren möchten, haben Sie möglicherweise kein Glück. In Unternehmensumgebungen werden Workstations häufig eher abgebildet als installiert. Jeder aus diesem Image erstellte Computer ist identisch.
Das, was Sie beschrieben haben, ist die SID des Geräts am nächsten. Dies funktioniert jedoch aus zwei Gründen nicht:
Wofür benötigen Sie diese Kennung? Am besten generieren Sie Ihre eigenen, wenn dies möglich ist.
quelle
Sie können die MAC-Adresse ausprobieren, die zumindest global eindeutig und dauerhaft sein soll. Dies hätte auch den schönen Vorteil, dass Sie die IP-Adresse und den Hostnamen eines Computers ohne allzu große Mühe erhalten könnten (und dies wäre auch nicht auf Windows beschränkt). Es würde Ihre Anforderung, in der Registrierung zu sein, nicht erfüllen, aber Sie können stattdessen WMI dafür verwenden.
Beispielskripte hier: http://www.winforums.com/showthread.php?t=8842
quelle
Wie wäre es mit der DriveId des Systemvolumes? Sie können die ID aus der
Win32_Volume
WMI-Klasse abrufen, indem Sie mit SystemVolume True nach Einträgen suchen.In PowerShell:
(Dies kann natürlich entfernt werden.)
quelle
Es gibt eine von Windows Update verwendete SID, die Sie möglicherweise verwenden können. Auch hier gibt es keine Garantie dafür, dass es jedes Mal einzigartig ist oder sich nicht ändert.
Ich denke, dass die MAC-Adresse am ehesten Ihren Anforderungen entspricht, die sich jedoch ändern könnte, wenn die Netzwerkkarte ersetzt würde.
Am besten schreiben Sie Ihre eigene GUID in die Registrierung und verwenden diese.
quelle
Um die Computer-SID auf einem bestimmten Computer zu bestätigen, können Sie SysInternals PSGETSID% COMPUTERNAME% $ ausführen. (Domain SID).
http://blogs.msdn.com/aaron_margosis/archive/2009/11/05/machine-sids-and-domain-sids.aspx
BEARBEITEN: Verweise auf die Computer-SID in der Registrierung wurden entfernt, die möglicherweise nicht eindeutig (oder sogar korrekt) sind.
quelle
Warum nicht einfach den Computernamen verwenden? Es wird innerhalb Ihrer Domäne eindeutig sein, alle Windows-Installationen haben eine und werden sich nur ändern, wenn ein Domänenadministrator sie ändert, was ohne eine Korrektur niemals erforderlich sein sollte.
quelle
Auch ich muss einen Weg finden, um Windows-Installationen global eindeutig zu identifizieren. Erstens, um Backup-Images richtig zu klassifizieren und zu identifizieren und festzustellen, welche auf welchen Computern wiederhergestellt werden. Zweitens, um Synchronisationspaare zum Synchronisieren von Dateien zu benennen und zu bestimmen, welches Synchronisationspaar in Abhängigkeit von den an der Synchronisation beteiligten Maschinen verwendet werden soll.
Nachdem ich mehrere Beiträge gelesen habe, einschließlich der auf dieser Website, komme ich zu dem Schluss, dass es keine einfache Möglichkeit gibt, eine global eindeutige Kennung einer Windows-Installation zu finden. Das ist zu schade. Wie die Hardware sollte auch die Software eine eigene Seriennummer haben. Naja! Dies ist meine Problemumgehung: Anstatt eine einzige global eindeutige Kennung zu finden, habe ich eine sylisierte Anweisung erstellt, die sich an der Art und Weise orientiert, wie Microsoft Netzwerklaufwerke unter Windows benennt und wie freigegebene Ordner in Virtual PC benannt werden: "[WINDOWS PRODUKT-ID ( als Variable )] Installiert auf [COMPUTER SERIAL NUMBER ( als Variable))]. "Obwohl eine Windows-Produktionsidentifikationsnummer nur insoweit eindeutig ist, als der entsprechende Produktschlüssel vorhanden ist, kann sie dennoch für mehrere Installationen gleich sein, insbesondere auf Seriencomputern mit werkseitig installiertem Windows, jedoch einer Seriennummer Die Nummer ist eindeutig und unterscheidet sich von einem Computer zum anderen. Die oben genannte Formel ist alles, was ich für meine Zwecke benötige. Ich benötige die SID nicht (ich gehe davon aus, dass sie die Sicherheitskennung bedeutet) oder etwas anderes Komplexeres, weil die Kombination beider Variablen genau auf die Windows-Installation verweist, die ich identifizieren muss, während jede einzelne Variable für sich genommen für mich keinen Nutzen hat. Insbesondere und erstens ist die Windows-Produktidentifikation auf Computern desselben Herstellers identisch, die in derselben Produktlinie enthalten sind, und das hat keinen Zweck, da ich mehrere identische Computer besitze. Zweitens ist die Seriennummer nicht eindeutig genug, da ich mehrere Windows-Installationen auf einem Computer habe, die von einer Computerseriennummer nicht adressiert werden. Ich schlage daher meine Methode vor.
Außerdem und bevor Sie sich danach erkundigen: Ich habe mich entschieden, meine Methode nicht auf den Computernamen zu stützen. Die Informationen sind benutzerbasiert und müssen daher inventarisiert werden. Die Windows-Produktidentifikation und die Seriennummer des Computers sind jedoch bereits identifiziert, inventarisiert und ausnahmslos mit zwei bestimmten Produkten verbunden, sodass sie nicht erneut inventarisiert werden müssen. Ich würde mich auch nicht dafür entscheiden, eine Windows-Installation mit einer eindeutigen Kennung von Festplatten zu identifizieren, da ich in der Lage und durchaus geeignet bin, sie von einem Computer auf einen anderen umzuschalten, insbesondere wenn die Laufwerkskapazitäten in einem Zustand ständigen Flusses sind. Aus dem gleichen Grund würde ich die identifizierende Nomenklatur entweder der Zentraleinheit oder des Motherboards viel weniger verwenden, wie dies bereits in einer früheren Antwort von Shoeless vorgeschlagen wurde. Schließlich lehne ich auch die naheliegendste Möglichkeit ab, eine Windows-Installation zu identifizieren (obwohl sie von niemand anderem erwähnt wurde): Verwenden des Produktschlüssels. Obwohl es einzigartig ist, ist es nur eine Lizenz zum Installieren einer bestimmten Windows-Version. Es ist nicht mit einer bestimmten Windows-Installation verbunden und unterscheidet sich nicht von der Installation auf einem bestimmten Computer, obwohl die Lizenz aufgrund des Kaufs eines bestimmten Computers erteilt wurde.
quelle