Auf Englisch lesen

Freigeben über


NewSID v4.10

Von Mark Russinovich

Veröffentlicht am: 1. November 2006

Hinweis: NewSID wurde eingestellt und steht nicht mehr zum Download zur Verfügung. Bitte lesen Sie Mark Russinovichs Blogbeitrag: NewSID Retirement and the Machine SID Duplication Myth

WICHTIG

In Bezug auf SIDs unterstützt Microsoft keine mit NewSID erstellten Images, sondern nur Images, die mit SysPrep vorbereitet wurden. Microsoft hat NewSID nicht für alle Optionen zum Klonen von Bereitstellungen getestet.

Weitere Informationen zur offiziellen Microsoft-Richtlinie finden Sie im folgenden Knowledge Base-Artikel:

Einführung

Viele Organisationen verwenden das Klonen von Datenträgerimages, um Massenrollouts von Windows durchzuführen. Diese Technik umfasst das Kopieren der Datenträger eines vollständig installierten und konfigurierten Windows-Computers auf die Datenträger anderer Computer. Diese anderen Computer scheinen tatsächlich den gleichen Installationsprozess durchlaufen zu haben und stehen zur sofortigen Verwendung zur Verfügung.

Diese Methode spart zwar Arbeitsstunden und Aufwand gegenüber anderen Rolloutansätzen, weist jedoch das große Problem auf, dass jedes geklonte System über eine identische Computersicherheits-ID (SID) verfügt. Diese Tatsache gefährdet die Sicherheit in Arbeitsgruppenumgebungen, und die Sicherheit von Wechselmedien kann auch in Netzwerken mit mehreren identischen Computer-SIDs gefährdet werden.

Die Nachfrage aus der Windows-Community hat mehrere Unternehmen dazu geführt, Programme zu entwickeln, die die SID eines Computers ändern können, nachdem ein System geklont wurde. SID Changer und Ghost Walker von Symantec werden jedoch nur als Teil von High-End-Produkten eines Unternehmens verkauft. Darüber hinaus werden beide über eine DOS-Eingabeaufforderung ausgeführt (der Changer von Altiris ähnelt NewSID).

NewSID ist ein von uns entwickeltes Programm, das die SID eines Computers ändert. Es ist ein kostenloses Win32-Programm, das bedeutet, es kann leicht auf Systemen ausgeführt werden, die zuvor geklont wurden.

Bitte lesen Sie den kompletten Artikel, bevor Sie dieses Programm verwenden.

Versionsinformationen:

  • Version 4.0 führt Unterstützung für Windows XP und .NET Server ein, eine Schnittstelle im Stile eines Assistenten, mit der Sie die SID angeben können, die angewendet werden soll, bietet Registrierungskomprimierung sowie die Option zum Umbenennen eines Computers (was zu einer Änderung von NetBIOS- und DNS-Namen führt).
  • Version 3.02 behebt einen Fehler, bei dem NewSid Standardwerte mit ungültigen Werttypen nicht ordnungsgemäß kopiert, wenn ein Schlüssel mit einer alten SID in eine neue SID umbenannt wird. NT verwendet solche ungültigen Werte tatsächlich zu bestimmten Zeiten im SAM. Das Symptom dieses Fehlers waren Fehlermeldungen über den verweigerten Zugriff, wenn Kontoinformationen von einem autorisierten Benutzer aktualisiert wurden.
  • Version 3.01 fügt eine Problembegehung für einen nicht zugänglichen Registrierungsschlüssel hinzu, der von Microsoft Transaction Server erstellt wird. Ohne die Problemumgehung würde NewSID vorzeitig beendet.
  • Version 3.0 führt ein SID-Synchronisierungsfeature ein, das NewSID anweist, eine anzuwendende SID von einem anderen Computer abzurufen.
  • Version 2.0 verfügt über eine Option im automatisierten Modus, und Sie können auch den Computernamen ändern.
  • Version 1.2 behebt einen Fehler, der mit Version 1.1 eingeführt wurde, bei dem einige Dateisystem-Sicherheitsbeschreibungen nicht aktualisiert wurden.
  • Version 1.1 korrigiert einen relativ kleinen Fehler, der nur bestimmte Installationen betrifft. Zudem ermöglichte das Update, die den Berechtigungseinstellungen von Datei- und Druckerfreigaben zugeordneten SIDs zu ändern.

Klonen und alternative Rolloutmethoden

Eine der beliebtesten Methoden zum Durchführen von Windows-Massenrollouts (in der Regel Hunderte von Computern) in Unternehmensumgebungen basiert auf der Technik des Klonens von Datenträgern. Ein Systemadministrator installiert das Basisbetriebssystem und die im Unternehmen verwendete Add-On-Software auf einem Vorlagencomputer. Nach dem Konfigurieren des Computers für den Betrieb im Unternehmensnetzwerk werden automatisierte Datenträger- oder Systemduplizierungstools (z. B. Ghost von Symantec, Image Drive von PowerQuest und RapiDeploy von Altiris) verwendet, um die Laufwerke des Vorlagencomputers auf Dutzende oder Hunderte von Computern zu kopieren. Diese Klone erhalten dann letzte Optimierungen, z. B. die Zuweisung eindeutiger Namen, und werden dann von den Mitarbeitern des Unternehmens verwendet.

Eine weitere beliebte Möglichkeit zum Rollout ist die Verwendung des Microsoft-Hilfsprogramms sysdiff (Teil des Windows Resource Kit). Dieses Tool erfordert, dass der Systemadministrator eine vollständige Installation (in der Regel eine unbeaufsichtigte Skriptinstallation) auf jedem Computer ausführt, und sysdiff automatisiert dann die Anwendung von Add-On-Softwareinstallationsimages.

Da die Installation übersprungen wird und das Kopieren des Datenträgersektors effizienter ist als das Kopieren von Dateien, kann ein geklonter Rollout Dutzende von Stunden gegenüber einer vergleichbaren sysdiff-Installation sparen. Darüber hinaus muss der Systemadministrator nicht lernen, wie die unbeaufsichtigte Installation oder sysdiff verwendet werden, und keine Skripts für die Installation erstellen und debuggen. Allein das spart Arbeitsstunden.

Das SID-Duplizierungsproblem

Das Problem beim Klonen besteht darin, dass es von Microsoft nur in sehr eingeschränkter Hinsicht unterstützt wird. Microsoft hat erklärt, dass das Klonen von Systemen nur unterstützt wird, wenn es vor dem GUI-Teil von Windows Setup erfolgt. Wenn die Installation diesen Punkt erreicht, werden dem Computer ein Name und eine eindeutige Computer-SID zugewiesen. Wird ein System nach diesem Schritt geklont, verfügen alle geklonten Computer über identische Computer-SIDs. Beachten Sie, dass die Computer-SID nicht geändert wird, wenn nur der Computername geändert wird oder der Computer lediglich zu einer anderen Domäne hinzugefügt wird. Wenn Sie den Namen oder die Domäne ändern, ändert sich die Domänen-SID nur, wenn der Computer zuvor einer Domäne zugeordnet war.

Um das Problem zu verstehen, das das Klonen verursachen kann, müssen Sie zunächst verstehen, wie einzelnen lokalen Konten auf einem Computer SIDs zugewiesen werden. Die SIDs lokaler Konten bestehen aus der SID des Computers und einer angefügten RID (Relative Identifier). Die RID beginnt bei einem festen Wert und wird für jedes erstellte Konto um eins erhöht. Dies bedeutet, dass das zweite Konto auf einem Computer beispielsweise dieselbe RID erhält wie das zweite Konto auf einem Klon. Das Ergebnis ist, dass beide Konten über die gleiche SID verfügen.

Doppelte SIDs sind in einer domänenbasierten Umgebung kein Problem, da Domänenkonten über SIDs verfügen, die auf der Domänen-SID basieren. Laut Microsoft Knowledge Base-Artikel Q162001 „Do Not Disk Duplicate Installed Versions of Windows NT“ basiert die Sicherheit in einer Arbeitsgruppenumgebung jedoch auf lokalen Konto-SIDs. Wenn also zwei Computer über Benutzer mit derselben SID verfügen, kann die Arbeitsgruppe nicht zwischen den Benutzern unterscheiden. Alle Ressourcen, einschließlich der Dateien und Registrierungsschlüssel, auf die ein Benutzer Zugriff hat, sind auch für den anderen Benutzer zugänglich.

Eine weitere Situation, in der doppelte SIDs Probleme verursachen können, ist, wenn mit NTFS formatierte Wechselmedien existieren und lokale Kontosicherheitsattribute auf Dateien und Verzeichnisse angewendet werden. Wird ein solches Medium an einen anderen Computer mit derselben SID angeschlossen, können lokale Konten, die eigentlich nicht auf die Dateien zugreifen könnten, möglicherweise doch zugreifen, wenn die Konto-IDs mit denen in den Sicherheitsattributen übereinstimmen. Dies ist nicht möglich, wenn Computer über unterschiedliche SIDs verfügen.

Ein Artikel von Mark mit dem Titel „NT Rollout Options wurde in der Juni-Ausgabe des Windows NT Magazine veröffentlicht. Er behandelt das Problem der doppelten SID ausführlicher und stellt die offizielle Haltung von Microsoft zum Thema Klonen dar. Verwenden Sie PsGetSid zum Anzeigen von Computer-SIDs, um festzustellen, ob in Ihrem Netzwerk ein Problem mit einer doppelten SID vorliegt.

NewSID

NewSID ist ein von uns entwickeltes Programm, mit dem die SID eines Computers geändert werden kann. Zunächst wird eine zufällige SID für den Computer generiert und dann werden die in der Registrierung und in den Sicherheitsbeschreibungen der Dateien gefunden Instanzen der bestehenden Computer-SID aktualisiert, indem die Vorkommen durch die neue SID ersetzt werden. NewSID benötigt zum Ausführen Administratorrechte. Es verfügt über zwei Funktionen: „SID ändern“ und „Computernamen ändern“.

Um die Option für die automatische Ausführung von NewSID zu verwenden, geben Sie „/a“ in der Befehlszeile an. Sie können NewSID auch anweisen, den Namen des Computers automatisch zu ändern, indem Sie den neuen Namen nach dem Switch „/a“ einfügen. Beispiel:

newsid /a [newname]

Würde NewSID ohne Aufforderung ausführen, den Computernamen in „newname“ ändern und den Computer neu starten, wenn alles in Ordnung ist.

Hinweis: Wenn auf dem System, auf dem NewSID ausgeführt werden soll, IISAdmin ausgeführt wird, müssen Sie den IISAdmin-Dienst beenden, bevor Sie NewSID ausführen. Verwenden Sie diesen Befehl, um den IISAdmin-Dienst zu beenden: net stop iisadmin /y

Das SID-Synchronisierungsfeature von NewSID, mit dem Sie angeben können, dass die neue SID nicht zufällig generiert, sondern von einem anderen Computer abgerufen werden soll. Diese Funktion ermöglicht es, einen Sicherungsdomänencontroller (Backup Domain Controller, BDC) in eine neue Domäne zu verschieben, da die Beziehung eines BDC zu einer Domäne dadurch identifiziert wird, dass er dieselbe Computer-SID wie die anderen Domänencontroller (DCs) aufweist. Wählen Sie einfach die Schaltfläche „SID synchronisieren“ aus, und geben Sie den Namen des Zielcomputers ein. Sie müssen über Berechtigungen zum Ändern der Sicherheitseinstellungen der Registrierungsschlüssel des Zielcomputers verfügen. Das bedeutet in der Regel, dass Sie als Domänenadministrator angemeldet sein müssen, um dieses Feature verwenden zu können.

Beachten Sie, dass bei der Ausführung von NewSID die Registrierung größer wird. Stellen Sie daher sicher, dass dabei die maximale Registrierungsgröße nicht überschritten wird. Wir haben festgestellt, dass dieses Wachstum keine spürbaren Auswirkungen auf die Systemleistung hat. Der Grund, warum die Registrierung wächst, ist, dass sie während der Anwendung temporärer Sicherheitseinstellungen von NewSID fragmentiert wird. Nach dem Entfernen der Einstellungen wird die Registrierung nicht komprimiert.

Wichtig: Beachten Sie, dass wir NewSID zwar gründlich getestet haben, Sie es jedoch auf eigenes Risiko verwenden. Wie bei jeder Software, die Datei- und Registrierungseinstellungen ändert, wird dringend empfohlen, dass Sie Ihren Computer vollständig sichern, bevor Sie NewSID ausführen.

Verschieben eines BDC

Führen Sie die folgenden Schritte aus, wenn Sie einen BDC aus einer Domäne in eine andere verschieben möchten:

  1. Starten Sie den BDC, den Sie verschieben und möchten, und melden Sie sich an. Verwenden Sie NewSID, um die SID des BDC mit dem PDC der Domäne zu synchronisieren, in die Sie den BDC verschieben möchten.
  2. Starten Sie das System neu, für das Sie die SID (BDC) geändert haben. Da die Domäne, der der BDC jetzt zugeordnet ist, bereits über einen aktiven PDC verfügt, wird sie als BDC in der neuen Domäne gestartet.
  3. Der BDC wird im Server-Manager als Arbeitsstation angezeigt. Verwenden Sie daher die Schaltfläche „Zur Domäne hinzufügen“, um den BDC seiner neuen Domäne hinzuzufügen. Achten Sie darauf, beim Hinzufügen das BDC-Optionsfeld anzugeben.

Funktionsweise

NewSID beginnt mit dem Lesen der vorhandenen Computer-SID. Die SID eines Computers ist in der SECURITY-Struktur der Registrierung unter SECURITY\SAM\Domains\Account gespeichert. Dieser Schlüssel verfügt über einen Wert namens „F“ und einen Wert namens „V“. Der V-Wert ist ein binärer Wert, in den die Computer-SID am Ende der Daten eingebettet ist. NewSID stellt sicher, dass diese SID in einem Standardformat vorliegt (drei 32-Bit-Unterautoritäten, denen drei 32-Bit-Autoritätsfelder vorangestellt sind).

Als Nächstes generiert NewSID eine neue zufällige SID für den Computer. Die NewSID-Generierung geht sehr sorgfältig vor, um einen wirklich zufälligen 96-Bit-Wert zu erstellen, der die 96-Bits der drei Unterautoritätswerte ersetzt, aus denen eine Computer-SID besteht.

Es folgen drei Phasen zum Ersetzen der Computer-SID. In der ersten Phase werden die Strukturen SECURITY und SAM der Registrierung auf Vorkommen der alten Computer-SID in Schlüsselwerten und in den Namen der Schlüssel überprüft. Wird die SID in einem Wert gefunden, wird sie durch die neue Computer-SID ersetzt. Wird die SID in einem Namen gefunden, werden der Schlüssel und die zugehörigen Unterschlüssel in einen neuen Unterschlüssel mit demselben Namen kopiert, wobei die alte SID durch die neue SID ersetzt wird.

Die letzten beiden Phasen umfassen das Aktualisieren von Sicherheitsbeschreibungen. Registrierungsschlüssel und NTFS-Dateien verfügen über zugeordnete Sicherheit. Sicherheitsbeschreibungen bestehen aus einem Eintrag, der angibt, welches Konto die Ressource besitzt, welche Gruppe der primäre Gruppenbesitzer ist, einer optionalen Liste von Einträgen, die Aktionen angeben, die von Benutzern oder Gruppen ausgeführt werden dürfen (auch als „Discretionary Access Control List – DACL“ bezeichnet) und einer optionalen Liste von Einträgen, die angeben, durch welche von bestimmten Benutzern oder Gruppen ausgeführten Aktionen Einträge im Systemereignisprotokoll (System Access Control Liste – SACL) generiert werden. Benutzer oder Gruppen werden in diesen Sicherheitsbeschreibungen mit den jeweiligen SIDs identifiziert, und wie bereits erwähnt, verfügen lokale Benutzerkonten (mit Ausnahme der integrierten Konten wie Administrator, Gast usw.) über eigene, aus der Computer-SID und einer RID bestehende SIDs.

Der erste Teil der Aktualisierung der Sicherheitsbeschreibungen erfolgt für alle NTFS-Dateisystemdateien auf dem Computer. Jede Sicherheitsbeschreibung wird auf Vorkommen der Computer-SID überprüft. Wenn NewSID eine SID findet, wird sie durch die neue Computer-SID ersetzt.

Der zweite Teil der Aktualisierung der Sicherheitsbeschreibungen wird für die Registrierung ausgeführt. Zunächst muss NewSID sicherstellen, dass alle Strukturen überprüft werden, nicht nur die geladenen. Jedes Benutzerkonto verfügt über eine Registrierungsstruktur, die als HKEY_CURRENT_USER geladen wird, wenn der Benutzer sich anmeldet, aber auf dem Datenträger im Profilverzeichnis des Benutzers verbleibt, wenn er nicht angemeldet ist. NewSID identifiziert die Speicherorte aller Benutzerstrukturen, indem der Schlüssel HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList aufgezählt wird, der auf die Verzeichnisse zeigt, in denen sie gespeichert sind. Anschließend werden sie mithilfe von „RegLoadKey“ unter HKEY_LOCAL_MACHINE in die Registrierung geladen, und die gesamte Registrierung wird überprüft, wobei jede Sicherheitsbeschreibung nach der alten Computer-SID durchsucht wird. Updates werden genauso ausgeführt wie für Dateien, und nach Abschluss der Aktualisierungen werden die von NewSID geladenen Benutzerstrukturen wieder entladen. Als letzten Schritt scannt NewSID den HKEY_USERS-Schlüssel, der die Struktur des derzeit angemeldeten Benutzers sowie die .Default-Struktur enthält. Dies ist erforderlich, da eine Struktur nicht zweimal geladen werden kann, sodass die angemeldete Benutzerstruktur nicht in HKEY_LOCAL_MACHINE geladen wird, wenn NewSID andere Benutzerstrukturen lädt.

Schließlich muss NewSID die ProfileList-Unterschlüssel so aktualisieren, dass sie auf die neuen Konto-SIDs verweisen. Dieser Schritt ist erforderlich, damit die Profile von Windows NT ordnungsgemäß den Benutzerkonten zuordnet werden, nachdem die Konto-SIDs mit den neuen Computer-SIDs aktualisiert wurden.

NewSID stellt sicher, dass es auf jede Datei und jeden Registrierungsschlüssel im System zugreifen und diese ändern kann, indem es sich selbst die folgenden Berechtigungen gewährt: „System“, „Sichern“, „Wiederherstellen“und „Besitz übernehmen“.