NewSID v4.10
Autor: Mark Russinovich
Opublikowano: 1 listopada 2006 r.
Uwaga: Identyfikator NewSID został wycofany i nie jest już dostępny do pobrania. Zobacz wpis mark Russinovich w blogu: NewSID Retirement and the Machine SID Duplikacja mitów
W przypadku identyfikatorów SID firma Microsoft nie obsługuje obrazów przygotowanych przy użyciu identyfikatora NewSID, obsługujemy tylko obrazy przygotowane przy użyciu narzędzia SysPrep. Firma Microsoft nie przetestowała identyfikatora NewSID dla wszystkich opcji klonowania wdrożenia.
Aby uzyskać więcej informacji na temat oficjalnych zasad firmy Microsoft, zobacz następujący artykuł z bazy wiedzy:
Wiele organizacji używa klonowania obrazu dysku do przeprowadzania masowych wdrożeń systemu Windows. Ta technika polega na skopiowaniu dysków w pełni zainstalowanego i skonfigurowanego komputera z systemem Windows na dyski innych komputerów. Te inne komputery skutecznie wydają się być przez ten sam proces instalacji i są natychmiast dostępne do użycia.
Chociaż ta metoda oszczędza godziny pracy i kłopotów z innymi metodami wdrażania, ma on główny problem, że każdy sklonowany system ma identyczny identyfikator zabezpieczeń komputera (SID). Ten fakt narusza zabezpieczenia w środowiskach grupy roboczej, a zabezpieczenia nośnika wymiennego mogą również zostać naruszone w sieciach z wieloma identycznymi identyfikatorami SID komputera.
Zapotrzebowanie społeczności systemu Windows doprowadziło kilka firm do tworzenia programów, które mogą zmienić identyfikator SID komputera po sklonowaniu systemu. Jednak SID Changer firmy Symantec i Ghost Walker firmy Symantec są sprzedawane tylko w ramach wysokiej klasy produktu firmy. Ponadto oba są uruchamiane z wiersza polecenia systemu DOS (changer Altiris jest podobny do NewSID).
NewSID to program, który opracowaliśmy, który zmienia identyfikator SID komputera. Jest bezpłatny i jest programem Win32, co oznacza, że można go łatwo uruchomić w systemach, które zostały wcześniej sklonowane.
Przed rozpoczęciem korzystania z tego programu przeczytaj cały artykuł.
Informacje o wersji:
- Wersja 4.0 wprowadza obsługę systemów Windows XP i .NET Server, interfejsu w stylu kreatora, umożliwia określenie identyfikatora SID, który ma zostać zastosowany, kompaktowanie rejestru, a także opcję zmiany nazwy komputera (co powoduje zmianę nazw NetBIOS i DNS).
- Wersja 3.02 poprawia usterkę polegającą na tym, że identyfikator NewSid nie kopiuje poprawnie wartości domyślnych z nieprawidłowymi typami wartości podczas zmieniania nazwy klucza ze starym identyfikatorem SID na nowy identyfikator SID. NT rzeczywiście używa takich nieprawidłowych wartości w określonym czasie w SAM. Objawem tej usterki były komunikaty o błędach, które zgłaszały odmowa dostępu, gdy informacje o koncie zostały zaktualizowane przez autoryzowanego użytkownika.
- Wersja 3.01 dodaje obejście dla niedostępnego klucza rejestru utworzonego przez serwer transakcji firmy Microsoft. Bez pracy wokół NewSID rzuciłby się przedwcześnie.
- W wersji 3.0 wprowadzono funkcję synchronizacji sid, która kieruje newSID w celu uzyskania identyfikatora SID do zastosowania z innego komputera.
- Wersja 2.0 ma opcję trybu automatycznego, a także zmieńmy nazwę komputera.
- Wersja 1.2 naprawia usterkę wprowadzoną w wersji 1.1, w której niektóre deskryptory zabezpieczeń systemu plików nie zostały zaktualizowane.
- Wersja 1.1 poprawia stosunkowo niewielką usterkę, która dotyczyła tylko niektórych instalacji. Zaktualizowano również identyfikatory SID skojarzone z ustawieniami uprawnień udziałów plików i drukarek.
Jednym z najpopularniejszych sposobów przeprowadzania masowych wdrożeń systemu Windows (zazwyczaj setek komputerów) w środowiskach firmowych jest technika klonowania dysku. Administrator systemu instaluje podstawowy system operacyjny i oprogramowanie dodatkowe używane w firmie na komputerze szablonu. Po skonfigurowaniu maszyny do operacji w sieci firmowej, zautomatyzowanych dyskach lub narzędziach duplikowania systemu (takich jak Symantec'sGhost, PowerQuest'sImage Drive i Altiris'RapiDeploy) są używane do kopiowania dysków komputera szablonu na dziesiątki lub setki komputerów. Te klony otrzymują ostateczne poprawki, takie jak przypisanie unikatowych nazw, a następnie używane przez pracowników firmy.
Innym popularnym sposobem wdrażania jest użycie narzędzia sysdiff firmy Microsoft (część zestawu Windows Resource Kit). To narzędzie wymaga, aby administrator systemu wykonał pełną instalację (zazwyczaj skryptową instalację nienadzorowaną) na każdym komputerze, a następnie sysdiff automatyzuje stosowanie obrazów instalacji oprogramowania dodatków.
Ponieważ instalacja jest pomijana, a kopiowanie sektora dysku jest wydajniejsze niż kopiowanie plików, wdrożenie oparte na klonowaniu może zaoszczędzić dziesiątki godzin w porównaniu z porównywalną instalacją sysdiff. Ponadto administrator systemu nie musi dowiedzieć się, jak używać nienadzorowanej instalacji lub narzędzia sysdiff albo tworzyć i debugować skrypty instalacji. To samo pozwala zaoszczędzić godziny pracy.
Problem z klonowaniem polega na tym, że jest obsługiwany tylko przez firmę Microsoft w bardzo ograniczonym sensie. Firma Microsoft stwierdziła, że systemy klonowania są obsługiwane tylko w przypadku, gdy zostanie wykonana przed osiągnięciem części graficznego interfejsu użytkownika Instalatora systemu Windows. Gdy instalacja osiągnie ten punkt, komputer ma przypisaną nazwę i unikatowy identyfikator SID komputera. Jeśli system zostanie sklonowany po tym kroku, sklonowane maszyny będą miały identyczne identyfikatory SID komputera. Pamiętaj, że zmiana nazwy komputera lub dodanie komputera do innej domeny nie powoduje zmiany identyfikatora SID komputera. Zmiana nazwy lub domeny zmienia tylko identyfikator SID domeny, jeśli komputer był wcześniej skojarzony z domeną.
Aby zrozumieć problem, który może spowodować klonowanie, należy najpierw zrozumieć, jak poszczególne konta lokalne na komputerze mają przypisane identyfikatory SI. Identyfikatory SID kont lokalnych składają się z identyfikatora SID komputera i dołączonego identyfikatora RID (identyfikator względny). Identyfikator RID rozpoczyna się od stałej wartości i jest zwiększany o jedną dla każdego utworzonego konta. Oznacza to, że drugie konto na jednym komputerze, na przykład, otrzyma ten sam identyfikator RID co drugie konto na klonie. Wynikiem jest to, że oba konta mają ten sam identyfikator SID.
Zduplikowane identyfikatory SID nie są problemem w środowisku opartym na domenie, ponieważ konta domeny mają identyfikatory SID oparte na identyfikatorze SID domeny. Jednak zgodnie z artykułem bazy wiedzy Microsoft Knowledge Base Q162001" "Nie dysk zduplikowane wersje systemu Windows NT", w zabezpieczeniach środowiska grupy roboczej opiera się na identyfikatorach SI kont lokalnych. W związku z tym, jeśli dwa komputery mają użytkowników z tym samym identyfikatorem SID, grupa robocza nie będzie mogła odróżnić użytkowników. Wszystkie zasoby, w tym pliki i klucze rejestru, do których jeden użytkownik ma dostęp, również.
Innym wystąpieniem, w którym zduplikowane identyfikatory SID mogą powodować problemy, jest miejsce, w którym nośnik wymienny jest sformatowany za pomocą systemu plików NTFS, a atrybuty zabezpieczeń konta lokalnego są stosowane do plików i katalogów. Jeśli taki nośnik zostanie przeniesiony na inny komputer z tym samym identyfikatorem SID, konta lokalne, które w przeciwnym razie nie będą mogły uzyskać dostępu do plików, mogą być w stanie, jeśli ich identyfikatory kont zostały dopasowane do tych w atrybutach zabezpieczeń. Nie jest to możliwe, jeśli komputery mają różne identyfikatory SI.
Artykuł Mark napisał, zatytułowany "NT Rollout Options" , został opublikowany w czerwcowym wydaniu Windows NT Magazine. W tym artykule omówiono bardziej szczegółowo zduplikowany problem z identyfikatorem SID i przedstawiono oficjalne stanowisko firmy Microsoft dotyczące klonowania. Aby sprawdzić, czy w sieci występuje zduplikowany problem z identyfikatorem SID, użyj polecenia PsGetSid , aby wyświetlić identyfikatory SID maszyny.
NewSID to program, który opracowaliśmy w celu zmiany identyfikatora SID komputera. Najpierw generuje losowy identyfikator SID dla komputera i przechodzi do aktualizacji wystąpień istniejącego identyfikatora SID komputera, który znajduje w rejestrze i deskryptorach zabezpieczeń plików, zastępując wystąpienia nowym identyfikatorem SID. NewSID wymaga uprawnień administracyjnych do uruchomienia. Ma dwie funkcje: zmianę identyfikatora SID i zmianę nazwy komputera.
Aby użyć opcji automatycznego uruchamiania identyfikatora NewSID, określ "/a" w wierszu polecenia. Można również przekierować go, aby automatycznie zmienić nazwę komputera, dołączając nową nazwę po przełączniku "/a". Przykład:
newsid /a [newname]
Gdyby polecenie NewSID zostało uruchomione bez monitowania, zmień nazwę komputera na "newname" i uruchom ponownie komputer, jeśli wszystko pójdzie w porządku.
Uwaga: jeśli system, na którym chcesz uruchomić polecenie NewSID, jest uruchomiony program IIS Administracja należy zatrzymać usługę IIS Administracja przed uruchomieniem polecenia NewSID. Użyj tego polecenia, aby zatrzymać usługę IIS Administracja: net stop iisadmin /y
Funkcja synchronizacji identyfikatora SID newSID, która umożliwia określenie, że zamiast losowo generować nowy identyfikator SID powinien zostać uzyskany z innego komputera. Ta funkcja umożliwia przeniesienie kontrolera domeny kopii zapasowej (BDC) do nowej domeny, ponieważ relacja usługi BDC z domeną jest identyfikowana przez ten sam identyfikator SID komputera co inne kontrolery domeny. Wystarczy wybrać przycisk "Synchronizuj identyfikator SID" i wprowadzić nazwę komputera docelowego. Aby móc korzystać z tej funkcji, musisz mieć uprawnienia do zmiany ustawień zabezpieczeń kluczy rejestru komputera docelowego, co zwykle oznacza, że użytkownik musi być zalogowany jako administrator domeny.
Pamiętaj, że po uruchomieniu polecenia NewSID rozmiar rejestru wzrośnie, dlatego upewnij się, że maksymalny rozmiar rejestru będzie uwzględniać wzrost. Odkryliśmy, że ten wzrost nie ma zauważalnego wpływu na wydajność systemu. Przyczyną wzrostu rejestru jest to, że staje się fragmentowany, ponieważ tymczasowe ustawienia zabezpieczeń są stosowane przez newSID. Po usunięciu ustawień rejestr nie jest kompaktowany.
Ważne: Należy pamiętać, że chociaż dokładnie przetestowano newSID, należy użyć go na własne ryzyko. Podobnie jak w przypadku dowolnego oprogramowania, które zmienia ustawienia pliku i rejestru, zdecydowanie zaleca się całkowite tworzenie kopii zapasowej komputera przed uruchomieniem newSID.
Poniżej przedstawiono kroki, które należy wykonać, gdy chcesz przenieść usługę BDC z jednej domeny do innej:
- Uruchom centrum danych biznesowych, które chcesz przenieść i zalogować. Użyj identyfikatora NewSID , aby zsynchronizować identyfikator SID usługi BDC z kontrolerem PDC domeny, do której chcesz przenieść usługę BDC.
- Uruchom ponownie system, dla którego zmieniono identyfikator SID (BDC). Ponieważ domena usługi BDC jest teraz skojarzona z aktywnym kontrolerem PDC, zostanie on uruchomiony jako centrum dystrybucji danych biznesowych w nowej domenie.
- Usługa BDC będzie wyświetlana jako stacja robocza w Menedżer serwera, dlatego użyj przycisku "Dodaj do domeny", aby dodać usługę BDC do nowej domeny. Pamiętaj, aby podczas dodawania określić przycisk radiowy usługi BDC.
Identyfikator NewSID rozpoczyna się od odczytania istniejącego identyfikatora SID komputera. Identyfikator SID komputera jest przechowywany w gałęzi ZABEZPIECZENIA rejestru w obszarze SECURITY\SAM\Domains\Account. Ten klucz ma wartość o nazwie F i wartość o nazwie V. Wartość V jest wartością binarną, która zawiera identyfikator SID komputera osadzony na końcu danych. NewSID zapewnia, że ten identyfikator SID jest w standardowym formacie (32-bitowe uwierzytelnianie podrzędne poprzedzone trzema polami urzędu 32-bitowego).
Następnie newSID generuje nowy losowy identyfikator SID dla komputera. Generowanie identyfikatora NewSID wymaga wielkich starań, aby utworzyć naprawdę losową wartość 96-bitową, która zastępuje 96-bitowe wartości 3 poduwierzytelniania, które tworzą identyfikator SID komputera.
Następnie następuje wymiana trzech faz do identyfikatora SID komputera. W pierwszej fazie hive rejestru SECURITY i SAM są skanowane pod kątem wystąpień starego identyfikatora SID komputera w wartościach klucza, a także nazw kluczy. Gdy identyfikator SID zostanie znaleziony w wartości, zostanie zastąpiony nowym identyfikatorem SID komputera, a po znalezieniu identyfikatora SID w nazwie klucz i jego podklucze są kopiowane do nowego podklucza, który ma taką samą nazwę, z wyjątkiem nowego identyfikatora SID zastępującego stary.
Ostatnie dwie fazy obejmują aktualizowanie deskryptorów zabezpieczeń. Klucze rejestru i pliki NTFS mają skojarzone z nimi zabezpieczenia. Deskryptory zabezpieczeń składają się z wpisu, który określa, które konto jest właścicielem zasobu, która jest właścicielem grupy podstawowej, opcjonalną listą wpisów określających akcje dozwolone przez użytkowników lub grupy (znane jako Lista kontroli dostępu dyskrecyjnego — DACL) oraz opcjonalną listę wpisów określających, które akcje wykonywane przez niektórych użytkowników lub grupy będą generować wpisy w dzienniku zdarzeń systemu (Lista kontroli dostępu do systemu — SACL). Użytkownik lub grupa jest identyfikowana w tych deskryptorach zabezpieczeń za pomocą identyfikatorów SID, a jak określono wcześniej, lokalne konta użytkowników (inne niż wbudowane konta, takie jak Administracja istrator, gość itd.) mają swoje identyfikatory SID komputera i identyfikatory RID.
Pierwsza część aktualizacji deskryptora zabezpieczeń jest wykonywana na wszystkich plikach systemu plików NTFS na komputerze. Każdy deskryptor zabezpieczeń jest skanowany pod kątem wystąpień identyfikatora SID komputera. Po znalezieniu identyfikatora NewSID zastępuje go nowym identyfikatorem SID komputera.
Druga część aktualizacji deskryptora zabezpieczeń jest wykonywana w rejestrze. Najpierw newSID musi upewnić się, że skanuje wszystkie hive, a nie tylko te, które zostały załadowane. Każde konto użytkownika ma gałąź rejestru, która jest ładowana jako HKEY_CURRENT_USER , gdy użytkownik jest zalogowany, ale pozostaje na dysku w katalogu profilu użytkownika, gdy nie jest. NewSID identyfikuje lokalizacje wszystkich lokalizacji hive użytkownika, wyliczając HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList klucza, który wskazuje katalogi, w których są przechowywane. Następnie ładuje je do rejestru przy użyciu regLoadKey w HKEY_LOCAL_MACHINE i skanuje cały rejestr, sprawdzając każdy deskryptor zabezpieczeń w poszukiwaniu starego identyfikatora SID komputera. Aktualizacje są wykonywane tak samo jak w przypadku plików i po zakończeniu Identyfikator NewSID zwalnia załadowane gałąź użytkownika. W ostatnim kroku newSID skanuje klucz HKEY_USERS , który zawiera gałąź aktualnie zalogowanego użytkownika, a także . Domyślny gałąź. Jest to konieczne, ponieważ nie można załadować obiektu hive dwa razy, więc gałąź zalogowanego użytkownika nie zostanie załadowana do HKEY_LOCAL_MACHINE, gdy identyfikator NewSID ładuje inne gałąź użytkownika.
Na koniec newSID musi zaktualizować podklucze ProfileList, aby odwoływać się do nowych identyfikatorów SID konta. Ten krok jest niezbędny, aby system Windows NT poprawnie skojarzył profile z kontami użytkowników po zmianie identyfikatorów SID konta w celu odzwierciedlenia nowego identyfikatora SID komputera.
NewSID zapewnia, że może uzyskiwać dostęp do każdego pliku i klucza rejestru w systemie i modyfikować go, dając sobie następujące uprawnienia: System, Kopia zapasowa, Przywracanie i Przejęcie własności.