Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > Posts > Zmatený Rusinovič, NewSID a Sysprep
září 14
Zmatený Rusinovič, NewSID a Sysprep

Měl jsem nedávno další diskuzi na téma NewSID a SYSPREP. Tak se tu k tomu vyjádřím, protože to, co napáchal Rusinovič se svým NewSIDem je celosvětová tragédie :-) Ten chlápek si sice nakonec, cca v roce 2009 všiml, že to není úplně to pravé ořechové, ale za těch 9 let způsobil dokonalé zmatení.

Existuje utilita NewSID, pomocí které někdo klonuje stanice. To je špatně. A vždycky bylo. Ještě víc je to špatně na klonování serverů. Jediná supportovaná a skutečně funkční metoda je SYSPREP. A ani ta nefunguje na všechny případy.

Problém klonování stanic a serverů

Když si nainstalujete operační systém, při instalaci se v něm nastaví nejrůznější unikátní identifikátory. Vygenerují se náhodně, případně se do toho přidává nějaká unikátní identifikace, jako je například MAC adresa, aby byly co nejnáhodnější. Jedním z příkladů je lokální SID stanice. Jiným příkladem je nějaké ID služby Distributed Transaction Coordinator (DTC). Jiným příkladem jsou některá unikátní CLSID a APPID některých DCOM služeb. Další je třeba unikátní ID instalace (MachineGuid), prostě v registrech je náhodné číslo. Windows Update Client má svoje ID. Terminal Services (Remote Desktop Services) klient má svoje ClientHWID. Atd.

Nejen, že to dělá operační systém, ale takto fungují i některé programy. Příkladem je třeba SharePoint. Jakmile připojíte nějaký front-end do farmy, vygeneruje si při té příležitosti svoje vlastní IDčko, které ho odlišuje od ostatních členů farmy. Terminal Services (Remote Desktop) Licensing služba má také svoje ID a podle něho si zapisuje do ADčka accounting informace.

Nikdy nevíte, co má který program za jaké unikátní identifikace.

Pokud mají programy spolupracovat po síti, obvykle nesmí mít "to svoje" unikátní ID stejné. Prostě to závisí na druhu programu a jak on sám to svoje ID používá. Některé to nepotřebují, některé ho používají. To se prostě neví které a jak. To ví jen výrobce daného programu, operačního systému nebo služby. Garantuju, že Rusinovič to neví.

Když počítač naklonujete, musíte nechat ta IDčka změnit.

NewSID a SYSPREP

Rusinovič si v roce 2000 všiml, že sdílené soubory, mezi stanicemi v pracovní skupině, nefungují, pokud jsou stanice naklonovány. Zjistil, že to je tím, že ty mašiny se identifikují pomocí svého SIDu. To, že ty stanice a jejich programy mají každý nějakou svou jinou identifikaci, si už nevšiml.

Protože to byl slavnej Rusinovič, napsal utilitku NewSID a začal ji vydávat za ultimátního klonovače. Tahle utilitka změní jenom SID mašiny. Nic jiného nemění.

Přitom už od raného středověku existuje oficiální klonovací utilita SYSPREP od Microsoftu. Ta nejen že změní SID. Ona také změní i ty další identifikace. Jak to dělá? No má k tomu pludžiny (já vím, že se to tak nečte :-)). Každá služba (její produktový tým), nebo výrobce nějaké aplikace si může dodat pludžin.

Když děláte SYSPREP, ta utilitka je vcelku obecná. Jednoduše zavolá postupně všechny zaregistrované pludžiny. Každý pludžin si provede co pořebuje, aby se jeho aplikace dala klonovat.

Takže když naklonujete počítače NewSIDem, bude fungovat všechno, co případně závisí na unikátním SIDu. Všechno, co má jinou unikátní identifikaci, fungovat nebude. Příkladem je třeba WSUS, nebo replikace SQL Serveru. Mám taky špatné zkušenosti s SCCM klienty - ale to je jen podezření, těžko se to identifiuje.

Různé aplikace a nedostatečný SYSPREP

Pozor! Ani SYSPREP není samospásný. On potřebuje na všechno plug-in. Pokud plug-in nemá, tak to prostě neumí klonovat danou aplikaci. Příkladem je SharePoint připojený do farmy. Žádný pludžin, žádné klonování. Dokonce třeba Office, když ho chcete rearmnout (prostě deaktivovat), tak to musíte spustit ručně OSPPREARM.EXE - SYSPREP vám v tom sám nepomůže.

Pokud chcete něco klonovat, musíte si zjistit sami, jaké na tom daném stroji máte aplikace. Pro každou jednotlivě si musíte u výrobce ověřit, že to buď jde klonovat obecně, nebo že to jde klonovat při použití SYSPREP. Pokud to výrobce nepodporuje (nebo vůbec netuší, co po něm chcete), tak vám nepomůže ani svěcená voda.

Závěrr

Typuju, že Rusinoviče vzali do Microsoftu jenom kvůli tomu, aby mu tam mohli tohle vysvětlit. Zajímalo by mě, jak dlouho ho museli mučit, aby se přiznal. Ale jinak mám toho chlápka docela rád, napsal bezva Internals. I když by do těch novějších verzí mohl trošku víc zapracovat :-)

 

Comments

Lezi si v zaludku?

Mam pocit, ze nieco mas proti ujovi Rusinovicovi :-)
Ondrej Zilinec on 14.9.2012 9:35

Re: Zmatený Rusinovič, NewSID a Sysprep

ujo je v pohodě a Internals, který napsal jsou super (sice na verzi 7/2008 trošku polevil :-)) ale jinak je to bomba. nástroje jako Process Explorer, nebo Process Monitor a PSEXEC miluju. Definitivně by to mělo být rovnou ve Windows!

Ale ztrávil jsem v průběhu času tak aspoň 50 hodin řešením potíží se serverama, které byly klonované NewSIDem a přitom úplně zbytečná práce :-)
ondass on 14.9.2012 9:44

cisty komp

myslim ze NewSID byl primarne urcen pro klonovani cistych instalaci Win a nemel resit kolnovani aplikaci. Neco podobneho delal komercni GHOST, ale ten take resil jen Win a aplikace neresil. Takze jestli to nekdo pouzil na plne nainstalovany stroj s aplikacema, tak ma smulu a problemy.
VasekB on 14.9.2012 21:39

Re: Zmatený Rusinovič, NewSID a Sysprep

no to je sice pravda, ale i "čisté Windows" mají více různých IDček, než jenom SID. Takže i když se nainstaluje nějaká aplikace později, je možné že to nebude fungovat. I terminal services mají svoje HW ID v registrech a pak se to může chovat divně s TS Licensing serverem. Prostě to nebylo nikdy správně :-)
ondass on 15.9.2012 8:34

Re: Zmatený Rusinovič, NewSID a Sysprep

No každopádně se Rusinovič v článku ke svýmu omylu přiznal (i když trochu jinou formou), tak bych ho už na mučidla nevláčel :) Nezazněla ale jeho informace, že duplicitní počítačový SID vůbec ničemu nevadí (a nikdy jsem nenarazil na informaci, že by tomu bylo naopak), čili to NewSID bylo úplně k ničemu.
Borek on 19.9.2012 1:27

Přesně jak píše VasekB

NewSid se používá na klonování čistých strojů. Maklonoval jsem takto stovky různých strojů s OS 2003 a nikdy žádný problém a to z nich byly i DC. Samozřejmě tam člověk nesmí mít žádné háklivé aplikace a to ani třeba IIS atd ..
DES on 24.9.2012 11:47

Re: Zmatený Rusinovič, NewSID a Sysprep

dneska tu jenom zkoumám dál technologii sysprep plug-in a zjistil jsem toto:

takový plugin se jmenuje správně Sysprep Provider. Je to normální DLL. Popis najdete tu: http://technet.microsoft.com/en-us/library/ee676646(v=ws.10).aspx

V podstatě se stačí podívat do registrů, do klíče:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\SysPrep a SysprepExternal
ondass on 4.4.2013 7:56

Re: Zmatený Rusinovič, NewSID a Sysprep

když se do toho klíče v registrech navíc podíváte, tak tam najdete jednu zajímavost - hodnotu C:\Windows\System32\dhcpcsvc.dll DhcpClient_Generalize. Takže i taková blbina jako je DHCP Client se musí nějak generalizovat. Proč asi?

No kvůli IPv6. Když naklonujete počítače, tak nejspíš budou mít jiné MAC adresy, to je jasné - to je přece nastavení fyzické síťovky, nebo vlastnost virtuálního počítače. Ale IPv6 používá jinou identifikaci DHCPv6 Client DUID. To je takové dlouhé číslo, které se generuje náhodně hned při instalaci a od toho okamžiku zůstává v registrech. Je to ID počítače. Tedy není to závislé na síťovce, ale je celopočítačové. A to je tedy potřeba přegenerovat, aby se klony nejevily jako stejné v DHCP serveru. Ne že by to nepřidělovalo adresy, ale kdoví, co by to způsobilo za komplikace...
ondass on 16.4.2013 15:09

Add Comment

Title


Pole Title nemusíte vyplňovat, doplní se to samo na stejnou hodnotu jako je nadpis článku.

Author *


Pole Author nesmí být stejné jako pole Title! Mám to tu jako ochranu proti spamu. Roboti to nevyplní dobře :-)

Body *


Type number two as digit *


Semhle vyplňte číslici dvě. Předchozí antispemové pole nefunguje úplně dokonale, zdá se, že jsou i spamery, které pochopily, že je občas potřeba vyplnit autora :-)

Email


Emailová adresa, pokud na ni chcete ode mě dostat odpověď. Nikdo jiný než já vaši emailovou adresu neuvidí.

Attachments