Jak mogę ustawić moją osobistą konfigurację systemu Windows pod kontrolą wersji ?
Podsumowanie (szczegóły i przykłady poniżej):
- Konfiguracja osobista (np. Preferencje pulpitu), a nie konfiguracja systemu (np. Sterowniki); powinien działać bez uprawnień administratora
- Kontrola wersji, nie kopie zapasowe ani obrazowanie dysku
Oto kilka rzeczy, które chcę zrobić:
- Zatwierdź bieżący stan mojej konfiguracji do repozytorium, najlepiej z pewną szczegółowością (jeśli dokonałem dwóch zmian, chciałbym móc zatwierdzić jedną bez zatwierdzania drugiej).
- Napisz wpis dziennika zmian, ilekroć dokonam zatwierdzenia, i zobacz listę wpisów dziennika zmian dla każdego pliku konfiguracyjnego.
- Zobacz różnice między bieżącym stanem a wersją repozytorium.
- Sprawdź z mojego repozytorium na nowym komputerze z systemem Windows i odtwórz moją konfigurację (przynajmniej jeśli nowy komputer ma tę samą wersję systemu Windows).
<added1> Nie będę próbował podawać całkowicie precyzyjnej definicji „konfiguracji”; Próbuję zaspokoić wszelkie osobiste preferencje (np. Wszystko, co można ustawić w panelu sterowania bez uprawnień administratora, skróty w menu użytkownika „Programy”…). Nie chcę dołączać moich dokumentów ani zainstalowanych aplikacji. </added1>
<added2> Zauważ, że celuję w moją osobistą konfigurację, a nie konfigurację systemu (to też by się przydało, ale nie jest to celem tego pytania). Na przykład oczekuję, że rozwiązanie zadziała bez uprawnień administratora. </added1>
To, co robię w Uniksie, to poddanie (wybór) moich plików kropek kontroli wersji . W systemie Windows zakładam, że powinienem zatwierdzić rejestr i niektóre pliki (które?) Poniżej Application Data
. Chciałbym coś lepszego niż poddanie całego pliku rejestru kontroli wersji (to za mało szczegółowości i obawiam się problemów z blokowaniem). <added1> Idealnie byłoby użyć opakowania lub skryptów z niektórymi popularnymi programami do kontroli wersji (Bazaar, CVS, Darcs, Git, Mercurial, Subversion,…), ale nie jest to absolutny wymóg. </added1>
Obecnie muszę pracować z systemem Windows 2000 i Windows XP. Ponieważ dotyczy to maszyny roboczej, payware nie zadziała (idealne byłoby open source). Czuję się bardziej komfortowo z linii poleceń niż z GUI.
<added1> Oto przykładowy przepływ pracy:
- Pewnego dnia postanowiłem, że moje tło pulpitu będzie różowe. Więc dokonuję zmiany za pomocą GUI. To modyfikuje
wiersz wkluczupliku konfiguracyjnegow rejestrze. Następnie zatwierdzam zmianę, aby ją śledzić. - Później zastanawiam się, dlaczego moje tło pulpitu jest różowe. Dlatego w dzienniku zmian szukam „koloru pulpitu”.
- Pewnego dnia muszę użyć nowej maszyny. Więc sprawdzam z mojego repozytorium konfiguracji i voilà, różowy pulpit.
Oto kilka rzeczy, których nie próbuję zrobić:
Nie próbuję tworzyć kopii zapasowych. Chcę mieć możliwość śledzenia zmian (według semantyki lub przynajmniej składni, nie tylko według daty) i udostępniania informacji między komputerami (jedno repozytorium, wiele transakcji).
Nie próbuję replikować instalacji systemu Windows. Nie chcę przenosić zależności sprzętowych, zainstalowanych aplikacji ani dokumentów.
</added1>
źródło
Odpowiedzi:
O ile mi wiadomo, konfiguracja systemu Windows jest zbyt rozproszona, aby można było wykonać kopię zapasową wśród zbyt wielu plików i miejsc w rejestrze.
Nie można wykonać kopii zapasowej rejestru na jednym komputerze i przywrócić go na innym (lub nawet na tym samym), ponieważ zbyt wiele kluczy jest zbyt specyficznych dla komputera i ponieważ niektóre klucze są chronione przez system Windows.
Funkcja Przywracanie systemu ma na celu utrzymanie stanu komputera, ale nie jest wiarygodna, ponieważ sam decyduje, które kopie zapasowe należy usunąć, aby zaoszczędzić miejsce, i ma inne negatywne problemy, takie jak brak dostępności w systemie Windows 2000.
Jedyne uniwersalne rozwiązanie, jakie widzę, to zobrazowanie dysku systemowego w całości i przywrócenie go w razie potrzeby za pomocą produktu do tworzenia obrazów dysku.
Istnieje kilka produktów do tworzenia obrazów dysku o bardzo dobrej jakości, które mogę polecić, jeśli uznasz, że to rozwiązanie Cię interesuje. Kilka z nich prowadzi repozytorium zdjęć z opisem. Chociaż najlepsze są komercyjne, te bezpłatne są nadal bardzo dobre.
Obrazowanie dysku działa najlepiej, gdy dysk systemowy nie zawiera danych użytkownika.
źródło
Wychodząc ze strony serwera po ogrodzeniu, gdzie można oczekiwać, że będziemy bardzo paranoiczni w kwestii zmian konfiguracji i skąd pochodzą, mogę powiedzieć, że tak naprawdę nie istnieją. Globalne śledzenie konfiguracji jest w większości procesem całkowicie ręcznym. Możliwe jest monitorowanie (ale nie zapobieganie ) określonych obszarów rejestru pod kątem zmian, ale nie znam żadnych bezpłatnych / tanich pakietów oprogramowania, które to umożliwiają, oraz kilku bardzo drogich (jest to o wiele bardziej złożony problem niż śledzenie informacji o pliku, a następnie różnicowanie dwóch pliki tekstowe, a więc drogie).
To powoduje, że administratorzy systemu Unix są batty. Kyle Brandt , sysadmin dla StackOverflow Inc, zajmował się tego rodzaju sprawą kilka tygodni temu, gdy przygotowywał nową partię maszyn Windows dla StackExchange. Crossover Linux / Windows SysAdmins wszyscy z nim rozmawiali. Po prostu nie ma odpowiednika Windows umieszczania / etc pod VCS. Istnieją pewne brzydkie kłopoty, takie jak obrazowanie dysku / tworzenie migawek lub tylko wymuszanie zmian konfiguracji za pomocą zasad grupy (i ręczne śledzenie zmian w obiektach GPO), ale nic tak eleganckiego.
Przepraszam.
źródło
Osobiście śledzę zmiany w rejestrze systemu Windows za pomocą Regshot . Zrób migawkę przed zmianą, a następnie drugą po jej wprowadzeniu. Możesz również uzyskać ładny raport HTML o zmianach. Oczywiście musisz upewnić się, że między migawkami wprowadzono tylko kilka zmian, jeśli chcesz dowiedzieć się, co robi każda zmiana. Regshot to program typu open source.
Jeśli szukasz śledzenia / tworzenia kopii zapasowych zmian w systemie plików, najbliższym jest prawdopodobnie DocShield . Możesz za jego pomocą śledzić dowolny folder, chociaż dane aplikacji są prawdopodobnie najlepszym zgadywaniem zmian osobistych preferencji większości programów korzystających z profili użytkowników systemu Windows. DocShield jest bezpłatny dla użytkowników domowych. Możesz naśladować to, co robi, używając
xcopy /d:{m-d-y}
potrzebnych folderów, a następnie zip / 7z wyjście.Następnie dodaj dane wyjściowe z obu kopii zapasowych do dowolnego repozytorium kontroli wersji za pomocą swoich uwag.
źródło
reg.exe
i Cygwinregtool
? Co do DocShield, co robi to, że żadne oprogramowanie do kontroli wersji nie działa lepiej?To nie byłoby proste, ale możesz użyć Sysinternals Process Monitor, aby określić, które pliki i ustawienia rejestru zostały zmienione. Następnie możesz dodać zmiany rejestru i zaktualizowane pliki do większego programu, który wprowadzi zmiany za Ciebie. Prawdopodobnie możesz użyć Power Shell lub czegoś takiego jak AutoIt. Następnie sprawdź wynikowy skrypt w swoim vcs. Korzystam z podobnej metody do automatyzacji dziwnych ustawień w skryptach logowania i niestandardowych szablonach administracyjnych zasad grupy.
źródło
Application Data
zawartości, prawda? Jak wykryć zmiany wprowadzone, gdy program monitorujący z jakiegoś powodu nie działa? Czy istnieje rozsądny sposób na rozszerzenie przepływu pracy, aby umożliwić operacje aktualizacji (tj. Wykonałem już kasę i chcę zastosować jeszcze kilka zmian wprowadzonych na innym komputerze)?Nie mam dla ciebie rozwiązania systemu operacyjnego, ale istnieje płatna możliwość. Co możesz zrobić, to wykonać kopię zapasową dysku za pomocą DriveImage XML
Format kopii zapasowej to XML. Następnie możesz zapisać ten plik xml (możliwe są także różnice) w swoim ulubionym systemie kontroli wersji.
Jak powiedział HarryMC , tak naprawdę nie można użyć tego obrazu do wprowadzenia zmian w nowym systemie, ale zdecydowanie można użyć obrazu w nowym systemie z dokładnie tym samym sprzętem.
źródło
Możesz użyć oprogramowania do zarządzania profilami ForensiT, aby skopiować cały profil, uruchamiając okno systemu Windows. Kliknij tutaj, aby to sprawdzić: Menedżer profili użytkowników
źródło
Wydaje mi się, że opisujesz aplikację bazy danych, w której śledzisz klucze rejestru i indeksujesz je według znacznika. Chociaż nie jestem wystarczająco techniczny w kwestii kluczy rejestru, aby to zrobić, w twoim przykładzie chcesz przeszukać bazę danych w poszukiwaniu Pink Desk top i uzyskać instrukcję, która zaimplementuje tę zmianę na innym komputerze. To znaczy, jeśli rozumiem twoje intencje
źródło