Blog (65)
Komentarze (803)
Recenzje (0)

Wycieczka do nowego lasu cz.1

@tflWycieczka do nowego lasu cz.101.08.2011 23:35

Tym razem coś konkretnego, zamiast niepopularnych frazesów w felietonach. O to krótka historia mojej przygody z migracją do nowej domeny. Zakładam, że taka sytuacja może się komuś przytrafić, choć wiem - nie robi się tego raz w miesiącu. Już kilka razy wspominałem, że jestem leniwy. Dlatego jak największą część prac chciałem zautomatyzować, tak, by samo przeniesienie końcówek do nowej domeny było możliwie proste i jak najmniej czasochłonne.

Wstęp

Tytułem wstępu i łatwiejszego zrozumienia całości odrobina teorii. W domenie starej (którą będę nazywał OLD) działały dwa kontrolery domeny, po jednym w dwóch oddziałach, które komunikowały się po VPN. Oba postawione były na windows server 2003. W mieście A na czas migracji postawiony zostanie serwer w nowej domenie (którą będę nazywał NEW) na systemie windows server 2008. Domena OLD i NEW pozostaną w relacji wzajemnego zaufania. W mieście B stoi kontroler domeny na serverze 2003, zostanie on przeinstalowany, a następnie dcpromowany do domeny NEW. W sieci stoi również Sharepoint na WSS 3.0. Użytkownicy posiadają podpięte zasoby w oparciu o skrypt uruchamiany przy logowaniu usera. Skrypt sprawdza w jakich grupach znajduje się user i podpina dedykowane dla nich zasoby. Kilkadziesiąt usług działa w oparciu o konta domenowe, w tym autentykacja do połączeń VPN.

Cel - nie przerywając pracy pracowników oraz zapewniając najmniejsze zmiany, przeniesienie komputerów do nowej domeny.

Co i jak, czyli teoria

Przyznaje, że nie była to moja pierwsza, duża migracja domeny. To była druga. Wiedziałem więc, jak zareaguje system na logowanie nowego usera - załaduje nowy profil, dla nowego sida.

sid składa się bowiem z informacji o tym, skąd pochodzi user (czyli dla komputerów pracujących w grupach lokalnych są to komputery lokalne, a dla komputerów w domenie domena właśnie), oraz o samym userze. User JohnDoe, który znajduje się w domenie AD to tak naprawdę AD\JohnDoe, albo JohnDoe@AD

Na szczęście jest też dość prosty sposób, by zmusić system do zmiany domyślnego dla użytkownika miejsca przechowywania profilu. Klucz:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

przechowuje w podkluczach podstawowe dane o userze (przy czym każdy podklucz to własne sid usera), w tym klucz ProfileImagePath, który wskazuje usytuowanie profilu. W generalnej większości w czasie przenoszenia usera JohnDoe do domeny NEW koniecznie będzie wyedytowanie wartości nowego klucza usuwając po prostu ".NEW" z końca stringa.

Dzięki temu ogromną część ustawień aplikacji znajdujące się w folderze Dane Aplikacji oraz Ustawienia Lokalne zostanie pomyślnie zaimportowana. Do tego również można wyeksportować całą gałąź rejestru HKEY_CURRENT_USER.

Ale... bo zawsze są jakieś ale. Ale przecież dane w folderach userów (przy ustawieniach domyślnych) są dość restrykcyjnie zabezpieczone (czyli pełny dostęp dla użytkowników z grupy administratorzy, pełny dostęp dla właściciela profilu, wyłączone dziedziczenie z elementów nadrzędnych przez główny folder i włączone dla podfolderów, właścicielem użytkownik SYSTEM). W tym przypadku posłużyłem się narzędziem xcacls.vbs (równie dobrze można użyć Icacls, który jest wbudowany w systemy windows vista i 7, ale niestety miałem zbyt wiele windows xp). Założenie było proste. Automat loguje się na komputer z uprawnieniami administratora i grantuje uprawnienia fullcontrol dla użytkownika z nowej domeny. Nie miałem czasu na analizę wszystkich folderów i plików. Po prostu FullControl dla nowego usera. Składnia polecenia:

XCACLS.vbs nazwa_uzytkownika /E /S /F /T /G SID#sid_usera:F

Dokładny opis możliwości xcacls.vbs znajdziecie tutaj.

Cały skrypt był uruchamiany przez psexec, o którym już kiedyś pisałem.

Migracja kont do domeny

To powinno być wcześniej. Ale jakoś wena poniosła. W tym konkretnym przypadku przenieść musiałem userów z konkretnego OU do dokładnie tak samo odwzorowanego OU w domenie NEW. Ilość narzędzi do robienia tego można liczyć w setkach. Tymczasem mnie odpowiada bardziej sytuacja, gdy dokładnie wiem co się dzieje. I tutaj na przeciw wyszedł mi... PHP. A dokładniej doskonała klasa adLDAP. Dzięki niej pobrałem najpierw wszystkie OU, które mnie interesowały z domeny OLD i utworzyłem w domenie NEW, potem to samo zrobiłem z userami, na końcu sprawdziłem grupy, do których należą użytkownicy i przeniosłem je. Dokumentacja adLDAP jest na tyle dobra, że nie powinno to nastarczyć żadnych problemów. Nadmienię tylko, że wersja 4.0, którą używałem miała jeden mały błąd, który dość łatwo można wyłapać, a związany jest ze zmianą standardu zapisu nazw zmiennych. Od tego czasu adLDAP miał już dwa kolejne releasy, być może zostało już to poprawione.

Sharepoint

Tutaj sprawa jest jeszcze prostsza. Serwer shrepoint najprawdopodobniej pozostanie w domenie OLD, więc należało tylko zmigrować konkretnych użytkowników. Całe sprawa została rozwiązana poleceniem:

stsadm -o migrateuser -newlogin NEW\JohnDoe -oldlogin OLD\JohnDoe

Chyba nie trzeba nikomu tłumaczyć?

Dostęp do zasobów

Tutaj też nie będzie trudno. Wymieniany wcześnie xcacls.vbs, gdy poda mu się tylko folder lub plik, bez pozostałych parametrów, zwróci listę ACL dla obiektu. Teraz już tylko parsowanie i wyszukanie wszystkich wystąpień nazwy domeny OLD i wydanie odpowiedniego polecenia dla domeny NEW.

Całe przygotowanie potrwało trzy dni (okres wakacyjny, nie wszyscy są w pracy, nie do każdego kompa miałem dostęp).

A w następnych częściach

... choć może się okazać, że będzie tylko jedna część. Bo kolejne części zaplanowane są na praktyczną część, czyli co poszło nie tak, jak zaplanowaliśmy. Musze jednak nieskromnie przyznać, że w mieście A wszystko poszło dobrze (prawie). Natomiast w mieście B... to już inna historia. Zapraszam za parę dni.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.