Lezen in het Engels

Delen via


NewSID v4.10

Door Mark Russinovich

Gepubliceerd: 1 november 2006

Opmerking: NewSID is buiten gebruik gesteld en is niet meer beschikbaar voor downloaden. Zie het blogbericht van Mark Russinovich: NewSID Retirement and the Machine SID Duplicate Myth

BELANGRIJK

Met betrekking tot SID's biedt Microsoft geen ondersteuning voor installatiekopieën die zijn voorbereid met Behulp van NewSID, ondersteunen we alleen installatiekopieën die zijn voorbereid met SysPrep. Microsoft heeft NewSID niet getest voor alle opties voor het klonen van implementaties.

Zie het volgende Knowledge Base-artikel voor meer informatie over het officiële beleid van Microsoft:

Introductie

Veel organisaties gebruiken het klonen van schijfinstallatiekopieën om massa-implementaties van Windows uit te voeren. Deze techniek omvat het kopiëren van de schijven van een volledig geïnstalleerde en geconfigureerde Windows-computer op de schijfstations van andere computers. Deze andere computers lijken in feite hetzelfde installatieproces te hebben doorlopen en zijn onmiddellijk beschikbaar voor gebruik.

Hoewel deze methode uren werk en gedoe bespaart ten opzichte van andere implementatiemethoden, is het grootste probleem dat elk gekloond systeem een identieke SID (Computer Security Identifier) heeft. Dit feit is een inbreuk op de beveiliging in werkgroepomgevingen en verwisselbare mediabeveiliging kan ook worden aangetast in netwerken met meerdere identieke computer-SID's.

De vraag van de Windows-community leidt ertoe dat verschillende bedrijven programma's ontwikkelen die de SID van een computer kunnen wijzigen nadat een systeem is gekloond. De SID Changer en Ghost Walker van Symantec worden echter alleen verkocht als onderdeel van het hoogwaardige product van elk bedrijf. Verder worden ze beide uitgevoerd vanaf een DOS-opdrachtprompt (Altiris's changer is vergelijkbaar met NewSID).

NewSID is een programma dat we hebben ontwikkeld waarmee de SID van een computer wordt gewijzigd. Het is gratis en is een Win32-programma, wat betekent dat het eenvoudig kan worden uitgevoerd op systemen die eerder zijn gekloond.

Lees dit hele artikel voordat u dit programma gebruikt.

Versie-informatie:

  • Versie 4.0 introduceert ondersteuning voor Windows XP en .NET Server, een interface in wizardstijl, waarmee u de SID kunt opgeven die u wilt toepassen, registercompressie en ook de optie om de naam van een computer te wijzigen (wat resulteert in een wijziging van zowel NetBIOS- als DNS-namen).
  • Versie 3.02 corrigeert een fout waarbij NewSid standaardwaarden met ongeldige waardetypen niet correct zou kopiëren bij het wijzigen van de naam van een sleutel met een oude SID naar een nieuwe SID. NT maakt daadwerkelijk gebruik van dergelijke ongeldige waarden op bepaalde momenten in de SAM. Het symptoom van deze fout is dat foutberichten melden dat de toegang is geweigerd wanneer accountgegevens zijn bijgewerkt door een geautoriseerde gebruiker.
  • Versie 3.01 voegt een work-around toe voor een niet-toegankelijke registersleutel die is gemaakt door Microsoft Transaction Server. Zonder de work-around NewSID zou voortijdig worden afgesloten.
  • Versie 3.0 introduceert een SID-synchronisatiefunctie waarmee NewSID wordt omgestuurd om een SID te verkrijgen die moet worden toegepast op een andere computer.
  • Versie 2.0 heeft een optie voor geautomatiseerde modus en we gaan ook de computernaam wijzigen.
  • Versie 1.2 lost een fout op die is geïntroduceerd in 1.1, waarbij sommige bestandssysteembeveiligingsdescriptors niet zijn bijgewerkt.
  • Versie 1.1 corrigeert een relatief kleine fout die alleen bepaalde installaties heeft beïnvloed. Het is ook bijgewerkt om SID's te wijzigen die zijn gekoppeld aan de machtigingsinstellingen van bestands- en printershares.

Methoden voor klonen en alternatieve implementatie

Een van de populairste manieren om massa-Windows-implementaties (meestal honderden computers) uit te voeren in bedrijfsomgevingen is gebaseerd op de techniek van schijfklonen. Een systeembeheerder installeert het basisbesturingssysteem en de invoegtoepassingssoftware die in het bedrijf wordt gebruikt op een sjablooncomputer. Na het configureren van de machine voor gebruik in het bedrijfsnetwerk worden geautomatiseerde hulpprogramma's voor schijf- of systeemduplicatie (zoals Symantec'sGhost, PowerQuest'sImage Drive en Altiris'RapiDeploy) gebruikt om de stations van de sjablooncomputer naar tientallen of honderden computers te kopiëren. Deze kloons krijgen vervolgens definitieve aanpassingen, zoals de toewijzing van unieke namen en vervolgens gebruikt door werknemers van het bedrijf.

Een andere populaire manier om uit te rollen is het gebruik van het Microsoft Sysdiff-hulpprogramma (onderdeel van de Windows Resource Kit). Voor dit hulpprogramma moet de systeembeheerder een volledige installatie uitvoeren (meestal een installatie zonder toezicht) op elke computer, waarna sysdiff de toepassing van installatiekopieën van invoegtoepassingssoftware automatiseert.

Omdat de installatie wordt overgeslagen en omdat het kopiëren van schijfsector efficiënter is dan het kopiëren van bestanden, kan een gekloonde implementatie tientallen uren besparen op een vergelijkbare sysdiff-installatie. Daarnaast hoeft de systeembeheerder niet te leren hoe u installatiescripts zonder toezicht of sysdiff gebruikt, of scripts voor installatie maken en fouten opsporen. Dit bespaart alleen uren werk.

Het probleem met duplicatie van sid's

Het probleem met klonen is dat het alleen wordt ondersteund door Microsoft in een zeer beperkte zin. Microsoft heeft verklaard dat kloonsystemen alleen worden ondersteund als dit wordt gedaan voordat het GUI-gedeelte van Windows Setup is bereikt. Wanneer de installatie dit punt bereikt, krijgt de computer een naam en een unieke computer-SID toegewezen. Als een systeem na deze stap wordt gekloond, hebben de gekloonde computers allemaal identieke computer-SID's. Houd er rekening mee dat alleen het wijzigen van de computernaam of het toevoegen van de computer aan een ander domein de computer-SID niet wijzigt. Als u de naam of het domein wijzigt, wordt alleen de domein-SID gewijzigd als de computer eerder aan een domein was gekoppeld.

Om inzicht te krijgen in het probleem dat klonen kan veroorzaken, is het eerst nodig om te begrijpen hoe afzonderlijke lokale accounts op een computer worden toegewezen SID's. De SID's van lokale accounts bestaan uit de SID van de computer en een toegevoegde RID (Relatieve id). De RID begint bij een vaste waarde en wordt verhoogd met één voor elk account dat is gemaakt. Dit betekent dat het tweede account op één computer, bijvoorbeeld, dezelfde RID krijgt als het tweede account op een kloon. Het resultaat is dat beide accounts dezelfde SID hebben.

Dubbele SID's zijn geen probleem in een omgeving op basis van een domein, omdat domeinaccounts SID's hebben op basis van de domein-SID. Maar volgens het Microsoft Knowledge Base-artikel Q162001: 'Geen geïnstalleerde versies van Windows NT schijf dupliceren', is beveiliging in een werkgroepomgeving gebaseerd op lokale account-SID's. Als twee computers dus gebruikers met dezelfde SID hebben, kan de werkgroep geen onderscheid maken tussen de gebruikers. Alle resources, inclusief bestanden en registersleutels, waartoe de ene gebruiker toegang heeft, ook de andere.

Een ander exemplaar waarbij dubbele SID's problemen kunnen veroorzaken, is wanneer er verwisselbare media zijn geformatteerd met NTFS en beveiligingskenmerken van het lokale account worden toegepast op bestanden en mappen. Als een dergelijke media wordt verplaatst naar een andere computer met dezelfde SID, kunnen lokale accounts die anders geen toegang hebben tot de bestanden, mogelijk ook als hun account-id's overeenkomen met die in de beveiligingskenmerken. Dit is niet mogelijk als computers verschillende SID's hebben.

Een artikel dat Mark heeft geschreven, getiteld "NT Rollout Options", is gepubliceerd in de uitgave van juni van Windows NT Magazine. Het beschrijft het dubbele SID-probleem in meer detail en presenteert de officiële houding van Microsoft bij het klonen. Als u wilt zien of er een dubbel SID-probleem op uw netwerk is, gebruikt u PsGetSid om computer-SID's weer te geven.

NewSID

NewSID is een programma dat we hebben ontwikkeld om de SID van een computer te wijzigen. Het genereert eerst een willekeurige SID voor de computer en gaat verder met het bijwerken van exemplaren van de bestaande computer-SID die wordt gevonden in het register en in bestandsbeveiligingsdescriptors, waarbij exemplaren worden vervangen door de nieuwe SID. NewSID vereist beheerdersbevoegdheden om uit te voeren. Het heeft twee functies: de SID wijzigen en de computernaam wijzigen.

Als u de optie voor automatisch uitvoeren van NewSID wilt gebruiken, geeft u '/a' op de opdrachtregel op. U kunt deze ook doorsturen om automatisch de naam van de computer te wijzigen door de nieuwe naam op te geven na de schakeloptie '/a'. Bijvoorbeeld:

newsid /a [nieuwe naam]

Zou NewSID worden uitgevoerd zonder te vragen, wijzig de computernaam in 'newname' en laat het de computer opnieuw opstarten als alles goed gaat.

Opmerking: Als het systeem waarop u NewSID wilt uitvoeren IIS uitvoert Beheer moet u de IIS Beheer-service stoppen voordat u NewSID uitvoert. Gebruik deze opdracht om de IIS Beheer-service te stoppen: net stop iisadmin /y

De functie SID-synchronisatie van NewSID waarmee u kunt opgeven dat, in plaats van willekeurig een SID te genereren, de nieuwe SID moet worden verkregen van een andere computer. Met deze functionaliteit kunt u een back-updomeincontroller (BDC) verplaatsen naar een nieuw domein, omdat de relatie van een BDC met een domein wordt geïdentificeerd door dezelfde computer-SID als de andere domeincontrollers (DC's). Kies de knop 'SID synchroniseren' en voer de naam van de doelcomputer in. U moet gemachtigd zijn om de beveiligingsinstellingen van de registersleutels van de doelcomputer te wijzigen. Dit betekent meestal dat u moet worden aangemeld als domeinbeheerder om deze functie te kunnen gebruiken.

Houd er rekening mee dat wanneer u NewSID uitvoert dat de grootte van het register groeit, dus zorg ervoor dat de maximale registergrootte ruimte biedt voor groei. We hebben vastgesteld dat deze groei geen merkbare invloed heeft op de systeemprestaties. De reden waarom het register groeit, is dat het wordt gefragmenteerd omdat tijdelijke beveiligingsinstellingen worden toegepast door NewSID. Wanneer de instellingen worden verwijderd, wordt het register niet gecomprimeerd.

Belangrijk: Houd er rekening mee dat terwijl we NewSID grondig hebben getest, u deze op eigen risico moet gebruiken. Net als bij software die bestands- en registerinstellingen wijzigt, wordt u ten zeerste aangeraden een volledige back-up van uw computer te maken voordat u NewSID uitvoert.

Een BDC verplaatsen

Hier volgen de stappen die u moet volgen wanneer u een BDC van het ene naar het andere domein wilt verplaatsen:

  1. Start de BDC op die u wilt verplaatsen en aanmelden. Gebruik NewSID om de SID van de BDC te synchroniseren met de PDC van het domein waarnaar u de BDC wilt verplaatsen.
  2. Start het systeem opnieuw op waarvoor u de SID (de BDC) hebt gewijzigd. Omdat het domein waarmee de BDC nu is gekoppeld, al een actieve PDC heeft, wordt deze opgestart als een BDC in het nieuwe domein.
  3. De BDC wordt weergegeven als een werkstation in Serverbeheer, dus gebruik de knop Toevoegen aan domein om de BDC toe te voegen aan het nieuwe domein. Zorg ervoor dat u het keuzerondje BDC opgeeft wanneer u het toevoegt.

Hoe werkt het?

NewSID begint met het lezen van de bestaande computer-SID. De SID van een computer wordt opgeslagen in de BEVEILIGINGS hive van het register onder SECURITY\SAM\Domains\Account. Deze sleutel heeft een waarde met de naam F en een waarde met de naam V. De V-waarde is een binaire waarde die de computer-SID aan het einde van de gegevens bevat. NewSID zorgt ervoor dat deze SID een standaardindeling heeft (3 32-bits subauthoriteiten voorafgegaan door drie 32-bits instantievelden).

Vervolgens genereert NewSID een nieuwe willekeurige SID voor de computer. De generatie van NewSID brengt grote pijn met zich mee om een echt willekeurige 96-bits waarde te creëren, die de 96 bits van de drie subauthoriteitswaarden vervangt waaruit een computer-SID bestaat.

Drie fasen voor de vervanging van de computer-SID volgen. In de eerste fase worden de beveiligings- en SAM-register hives gescand op exemplaren van de oude computer-SID in sleutelwaarden, evenals de namen van de sleutels. Wanneer de SID wordt gevonden in een waarde die wordt vervangen door de nieuwe computer-SID en wanneer de SID wordt gevonden in een naam, worden de sleutel en de bijbehorende subsleutels gekopieerd naar een nieuwe subsleutel met dezelfde naam, behalve met de nieuwe SID die de oude vervangt.

De laatste twee fasen omvatten het bijwerken van beveiligingsdescriptors. Aan registersleutels en NTFS-bestanden is beveiliging gekoppeld. Beveiligingsdescriptors bestaan uit een vermelding waarmee wordt aangegeven welk account eigenaar is van de resource, welke groep de primaire groepseigenaar is, een optionele lijst met vermeldingen die acties specificeren die zijn toegestaan door gebruikers of groepen (ook wel de Discretionaire toegangsbeheerlijst genoemd - DACL) en een optionele lijst met vermeldingen die aangeven welke acties worden uitgevoerd door bepaalde gebruikers of groepen, vermeldingen genereren in het systeemgebeurtenislogboek (Systeemtoegangsbeheerlijst - SACL). Een gebruiker of groep wordt geïdentificeerd in deze beveiligingsdescriptors met hun SID's, en zoals ik eerder heb aangegeven, hebben lokale gebruikersaccounts (behalve de ingebouwde accounts zoals Beheer istrator, gast, enzovoort) hun SID's van de computer-SID plus een RID.

Het eerste deel van beveiligingsdescriptor-updates vindt plaats op alle NTFS-bestandssysteembestanden op de computer. Elke beveiligingsdescriptor wordt gescand op exemplaren van de computer-SID. Wanneer NewSID er een vindt, wordt deze vervangen door de nieuwe computer-SID.

Het tweede deel van beveiligingsupdates wordt uitgevoerd op het register. Ten eerste moet NewSID ervoor zorgen dat alle hives worden gescand, niet alleen de hives die zijn geladen. Elk gebruikersaccount heeft een register hive die wordt geladen als HKEY_CURRENT_USER wanneer de gebruiker is aangemeld, maar blijft op schijf in de profielmap van de gebruiker wanneer dat niet het is. NewSID identificeert de locaties van alle hive-locaties van gebruikers door de HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList-sleutel te inventariseren, die verwijst naar de mappen waarin ze zijn opgeslagen. Vervolgens worden ze in het register geladen met behulp van RegLoadKey onder HKEY_LOCAL_MACHINE en scant het hele register, waarbij elke beveiligingsdescriptor wordt onderzocht op zoek naar de oude computer-SID. Updates worden op dezelfde wijze uitgevoerd als voor bestanden en wanneer newSID is uitgevoerd, wordt de gebruiker geladen. Als laatste stap scant NewSID de HKEY_USERS sleutel, die de hive van de momenteel aangemelde gebruiker en de . Standaard hive. Dit is nodig omdat een hive niet tweemaal kan worden geladen, zodat het aangemelde gebruikers hive niet in HKEY_LOCAL_MACHINE wordt geladen wanneer NewSID andere gebruikers hives laadt.

Ten slotte moet NewSID de subsleutels ProfileList bijwerken om te verwijzen naar de nieuwe account-SID's. Deze stap is nodig om Windows NT correct te koppelen aan de gebruikersaccounts nadat de account-SID's zijn gewijzigd om de nieuwe computer-SID weer te geven.

NewSID zorgt ervoor dat het alle bestanden en registersleutels in het systeem kan openen en wijzigen door zichzelf de volgende bevoegdheden te geven: Systeem, Back-up, Herstellen en Eigendom nemen.