NewSID v4.10

Av Mark Russinovich

Publicerad: 1 november 2006

Observera: NewSID har dragits tillbaka och är inte längre tillgängligt för nedladdning. Mer information finns i Mark Russinovichs blogginlägg: NewSID Retirement (NySID-tillbakagångar) och Machine SID Duplication My (Dator-SID-duplicering)

IMPORTANT

När det gäller SID:er stöder Microsoft inte avbildningar som förbereds med NewSID, vi stöder endast avbildningar som förbereds med Hjälp av SysPrep. Microsoft har inte testat NewSID för alla kloningsalternativ för distribution.

Mer information om Microsofts officiella policy finns i följande knowledge base-artikel:

Introduktion

Många organisationer använder kloning av diskavbildningar för att utföra mass Windows. Den här tekniken omfattar att kopiera diskarna i en fullständigt installerad Windows konfigurerad dator till diskenheterna på andra datorer. Dessa andra datorer verkar i praktiken ha gått igenom samma installationsprocess och är omedelbart tillgängliga för användning.

Den här metoden sparar arbetstimmar och problem med andra metoder för att distribuera, men det har det största problemet att varje klonat system har en identisk datorsäkerhetsidentifierare (SID). Detta försämrar säkerheten i arbetsgruppsmiljöer och säkerheten för flyttbara medier kan också komprometteras i nätverk med flera identiska dator-SID: er.

Efterfrågan från Windows har lett flera företag att utveckla program som kan ändra en dators SID när ett system har klonats. Symantecs SID Changer ochSymantecs Ghost Walker säljs dock bara som en del av varje företags avancerade produkt. Dessutom körs båda från en DOS-kommandotolk (Altiris ändrare liknar NewSID).

NewSID är ett program som vi har utvecklat och som ändrar en dators SID. Det är kostnadsfritt och är ett Win32-program, vilket innebär att det enkelt kan köras på system som har klonats tidigare.

Läs hela den här artikeln innan du använder det här programmet.

Versionsinformation:

  • Version 4.0 introducerar stöd för Windows XP och .NET Server, ett guideliknande gränssnitt, där du kan ange det SID som du vill använda, registerkomprimering och även alternativet att byta namn på en dator (vilket resulterar i en ändring av både NetBIOS- och DNS-namn).
  • Version 3.02 korrigerar en bugg där NewSid inte kopierar standardvärden med ogiltiga värdetyper korrekt när du byter namn på en nyckel med ett gammalt SID till ett nytt SID. NT använder faktiskt sådana ogiltiga värden vid vissa tidpunkter i SAM. Symtomet på den här buggen var felmeddelanden som rapporterade åtkomst nekad när kontoinformationen uppdaterades av en behörig användare.
  • Version 3.01 lägger till en tillgänglig registernyckel som skapas av Microsoft Transaction Server. Utan arbetet kring NewSID skulle avslutas i förtid.
  • Version 3.0 introducerar en SID-synkroniseringsfunktion som dirigerar NewSID att hämta ett SID som ska tillämpas från en annan dator.
  • Version 2.0 har ett alternativ för automatiserat läge och du kan också ändra datornamnet.
  • Version 1.2 åtgärdar ett fel i som introducerades i 1.1 där vissa säkerhetsbeskrivningar för filsystem inte uppdaterades.
  • Version 1.1 korrigerar en relativt liten bugg som endast påverkade vissa installationer. Den har också uppdaterats för att ändra SID:er som är associerade med behörighetsinställningarna för fil- och skrivarresurser.

Kloning och alternativa metoder för att distribuera

Ett av de mest populära sätten att utföra massinläsningar Windows (vanligtvis hundratals datorer) i företagsmiljöer är baserat på tekniken för diskkloning. En systemadministratör installerar det grundläggande operativsystemet och tilläggsprogramvaran som används i företaget på en malldator. När du har konfigurerat datorn för drift i företagsnätverket används automatiserade disk- eller systemdupliceringsverktyg (till exempel SymantecsSpök-, PowerQuestsImage Driveoch Altiris– RidiDeploy) för att kopiera malldatorns enheter till tiotals eller hundratals datorer. Klonerna får sedan slutliga justeringar, till exempel tilldelning av unika namn, och används sedan av företagets anställda.

Ett annat populärt sätt att distribuera är att använda Verktyget Microsoft sysdiff (en del av Windows Resource Kit). Det här verktyget kräver att systemadministratören utför en fullständig installation (vanligtvis en skriptad obevakad installation) på varje dator och sedan automatiserar sysdiff tillämpningen av installationsavbildningar för tilläggsprogramvara.

Eftersom installationen hoppas över, och eftersom disksektorkopiering är effektivare än filkopiering, kan en klonad-baserad installation spara dussintals timmar över en jämförbar sysdiff-installation. Systemadministratören behöver inte heller lära sig hur man använder obevakad installation eller sysdiffeller skapar och felsöker installationsskript. Detta sparar bara arbetstimmar.

SID-dupliceringsproblem

Problemet med kloning är att den endast stöds av Microsoft på ett mycket begränsat sätt. Microsoft har angett att kloningssystem endast stöds om det görs innan GUI-delen av Windows har nåtts. När installationen når den här punkten tilldelas datorn ett namn och ett unikt dator-SID. Om ett system klonas efter det här steget kommer alla klonade datorer att ha identiska dator-SID: er. Observera att dator-SID inte ändras om du bara ändrar datornamnet eller lägger till datorn i en annan domän. Om du ändrar namn eller domän ändras bara domän-SID om datorn tidigare var associerad med en domän.

För att förstå problemet som kloning kan orsaka är det först nödvändigt att förstå hur enskilda lokala konton på en dator tilldelas SID:er. SID för lokala konton består av datorns SID och en tillagd RID (relativ identifierare). RID börjar med ett fast värde och ökas med ett för varje konto som skapas. Det innebär att till exempel det andra kontot på en dator får samma RID som det andra kontot på en klon. Resultatet är att båda kontona har samma SID.

Dubblett-SID är inte ett problem i en domänbaserad miljö eftersom domänkonton har SID-baserade på domän-SID. Men enligt Microsoft Knowledge Base artikel Q162001, "Do Not Disk Duplicate Installed Versions of Windows NT" (Diskbletta inte installerade versioner av Windows NT) baseras säkerheten i en arbetsgruppsmiljö på lokala konto-SID: er. Om två datorer har användare med samma SID kan arbetsgruppen därför inte skilja mellan användarna. Alla resurser, inklusive filer och registernycklar, som en användare har åtkomst till, den andra också.

En annan instans där duplicerade SID:er kan orsaka problem är när det finns flyttbara medier formaterade med NTFS, och säkerhetsattribut för lokala konton tillämpas på filer och kataloger. Om ett sådant medium flyttas till en annan dator som har samma SID kan lokala konton som annars inte skulle kunna komma åt filerna kanske kan om deras konto-ID:er matchar de i säkerhetsattributen. Detta är inte möjligt om datorerna har olika SID: er.

En artikel Mark har skrivit, med titeln"NT Rollout Options", publicerad i juninumret av Windows NT Magazine. Den diskuterar problemet med duplicerade SID i detalj och presenterar Microsofts officiella inställning till kloning. Om du vill se om du har ett duplicerat SID-problem i nätverket använder du PsGetSid för att visa datorns SID:er.

NewSID

NewSID är ett program som vi har utvecklat för att ändra en dators SID. Den genererar först ett slumpmässigt SID för datorn och fortsätter med att uppdatera instanser av det befintliga dator-SID som hittas i registret och i filsäkerhetsbeskrivningar och ersätter förekomster med det nya SID:et. NewSID kräver administratörsbehörighet för att köras. Den har två funktioner: ändra SID och ändra datornamnet.

Om du vill använda alternativet för automatisk körning av NewSID anger du "/a" på kommandoraden. Du kan också dirigera den till att ändra datorns namn automatiskt genom att inkludera det nya namnet efter växeln "/a". Exempel:

newsid /a [newname]

Skulle köra NewSID utan att fråga ändrar du datornamnet till "newname" och gör så att det startar om datorn om allt går bra.

Observera: Om det system där du vill köra NewSID kör IISAdmin måste du stoppa IISAdmin-tjänsten innan du kör NewSID. Använd det här kommandot för att stoppa IISAdmin-tjänsten: net stop iisadmin /y

NewSID:ssidsynkroniseringsfunktion som gör att du kan ange att det nya SID:et ska hämtas från en annan dator i stället för att generera ett slumpmässigt. Den här funktionen gör det möjligt att flytta en domänkontrollant för säkerhetskopiering (BDC) till en ny domän, eftersom en BDC:s relation till en domän identifieras genom att den har samma dator-SID som de andra domänkontrollanterna (DOMÄNKONTROLLANTer). Välj bara knappen "Synkronisera SID" och ange måldatorns namn. Du måste ha behörighet att ändra säkerhetsinställningarna för måldatorns registernycklar, vilket vanligtvis innebär att du måste vara inloggad som domänadministratör för att kunna använda den här funktionen.

Observera att när du kör NewSID kommer storleken på registret att växa, så se till att den maximala registerstorleken anpassas efter tillväxt. Vi har upptäckt att den här tillväxten inte har någon märkbar inverkan på systemets prestanda. Anledningen till att registret växer är att det blir fragmenterat när tillfälliga säkerhetsinställningar tillämpas av NewSID. När inställningarna tas bort komprimeras inte registret.

Viktigt: Observera att även om vi har testat NewSIDnoggrant måste du använda det på egen risk. Precis som med alla program som ändrar fil- och registerinställningar rekommenderar vi starkt att du helt och hållet backar upp datorn innan du kör NewSID.

Flytta en BDC

Här är de steg du bör följa när du vill flytta en BDC från en domän till en annan:

  1. Starta den BDC som du vill flytta och logga in. Använd NewSID för att synkronisera SID för BDC med PDC för den domän som du vill flytta BDC till.
  2. Starta om systemet där du ändrade SID (BDC). Eftersom domänen som BDC nu är associerad med redan har en aktiv domänkontrollant, kommer den att starta som en BDC i den nya domänen.
  3. BDC visas som en arbetsstation i Serverhanteraren, så använd knappen "Lägg till i domän" för att lägga till BDC i dess nya domän. Se till att ange alternativknappen BDC när du lägger till den.

Hur det fungerar

NewSID börjar med att läsa det befintliga dator-SID:t. En dators SID lagras i registrets säkerhetsdatafil under SECURITY\SAM\Domains\Account. Den här nyckeln har ett värde med namnet F och ett värde med namnet V. V-värdet är ett binärt värde som har dator-SID inbäddat i det i slutet av sina data. NewSID säkerställer att detta SID har ett standardformat (3 32-bitars underauktoriteter föregås av tre 32-bitars utfärdare fält).

Därefter genererar NewSID ett nytt slumpmässigt SID för datorn. NewSID:sgeneration gör mycket ont för att skapa ett verkligt slumpmässigt 96-bitars värde, som ersätter de 96 bitar av de tre underauthoritetsvärdena som utgör ett dator-SID.

Tre faser till datorns SID-ersättning följer. I den första fasen genomsöks säkerhets- och SAM-registreringsdatafilerna efter förekomster av det gamla dator-SID:t i nyckelvärdena, samt namnen på nycklarna. När SID hittas i ett värde ersätts det med det nya dator-SID och när SID hittas i ett namn kopieras nyckeln och dess undernycklar till en ny undernyckel som har samma namn förutom det nya SID som ersätter det gamla.

De sista två faserna omfattar uppdatering av säkerhetsbeskrivningar. Registernycklar och NTFS-filer har en associerad säkerhet. Säkerhetsbeskrivningar består av en post som identifierar vilket konto som äger resursen, vilken grupp som är den primära gruppägaren, en valfri lista med poster som anger åtgärder som tillåts av användare eller grupper (kallas discretionary Access Control List - DACL) och en valfri lista över poster som anger vilka åtgärder som utförs av vissa användare eller grupper kommer att generera poster i systemets händelselogg (System Access Control List - SACL). En användare eller en grupp identifieras i dessa säkerhetsbeskrivningar med sina SID: er, och som jag angav tidigare har lokala användarkonton (andra än de inbyggda kontona som administratör, gäst och så vidare) sina SID:er som består av dator-SID plus ett RID.

Den första delen av säkerhetsbeskrivningen uppdateringar sker på alla NTFS-filsystemfiler på datorn. Varje säkerhetsbeskrivning genomsöks efter förekomster av datorns SID. När NewSID hittar ett ersätts det med det nya dator-SID:t.

Den andra delen av säkerhetsbeskrivningen uppdateringar utförs i registret. Först måste NewSID se till att alla registreringsdatafiler genomsöks, inte bara de som läses in. Varje användarkonto har en registreringsdatafil som läses in som HKEY_CURRENT_USER när användaren är inloggad, men som finns kvar på disken i användarens profilkatalog när de inte är det. NewSID identifierar platserna för alla hive-platser för användaren genom att räkna upp HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList-nyckeln, som pekar på de kataloger där de lagras. De läses sedan in i registret med RegLoadKey under HKEY_LOCAL_MACHINE och genomsöker hela registret och undersöker varje säkerhetsbeskrivning i sökning efter det gamla dator-SID:t. Uppdateringar utförs på samma sätt som för filer, och när det är klart tar NewSID bort registreringsdatafilen som lästs in. Som ett sista steg genomsöker NewSIDHKEY_USERS nyckeln, som innehåller registreringsdatafilen för den inloggade användaren samt . Standarddatafil. Detta är nödvändigt eftersom en registreringsdatafil inte kan läsas in två gånger, så den inloggade användarens registreringsdatafil läses inte in i HKEY_LOCAL_MACHINEnär NewSID läser in andra registreringsdatafiler för användare.

Slutligen måste NewSID uppdatera ProfileList-undernycklarna så att de refererar till de nya konto-SID:erna. Det här steget är nödvändigt för Windows NT associerar profiler korrekt med användarkontona när konto-SID:erna har ändrats så att de återspeglar det nya dator-SID:t.

NewSID säkerställer att den kan komma åt och ändra alla filer och registernycklar i systemet genom att ge sig själv följande behörigheter: System, Säkerhetskopiering, Återställning och Överägarskap.