eRIZ’s weblog

PHP, webdesign, Linux, Windows i inne, bo nie samym chlebem człowiek żyje
Serdecznie zapraszam do udziału w ANKIECIE

Outlook 2007/2010 i przenoszenie danych

Są takie narzędzia, których nie da się zastąpić, bądź ich zamienniki są - delikatnie mówiąc - ubogie. Dla mnie niekwestionowanym liderem będzie Microsoft Office, a już na pewno Outlook. Choćby ze względu na świetną integrację klienta poczty z PIM-em (organizerem). Niestety, ten w Thunderbirdzie pozostawia wiele do życzenia, przynajmniej jeśli chodzi o moje potrzeby. Ale nie o tym mowa. ;)

Mając parę chwil spokoju, postanowiłem się (w końcu :P) przesiąść na platformę 64-bitową. Dość długo siedziałem na wersji 32-bitowej Windows 7, a to dlatego, żeby wypróbować trochę ten system i pomęczyć zakamarki konfiguracji. Nie jest tak świetnie, jak w Uniksach, trzeba się trochę pomęczyć. Jedną z modyfikacji, którą koniecznie chciałem przeprowadzić, było przeniesienie katalogu domowego na inną partycję. Ale Outlook popsioczył. :(

co jest grane?

O ile Outlook stał się naprawdę wygodnym narzędziem (co jak co, ale GUI jest dopracowane), to pewne rzeczy są - dla mnie - co najmniej dziwne. Na pewno można tak określić choćby sposób zapisu ustawień programu, a zwłaszcza informacji o położeniu plików zawierających dane konta (czyli maile, wpisy kalendarza i ogólnie - wszystko).

Cytyjąc jeden z kabaretów:

ale nieeeeeeeeeeeee!

Informacje dotyczące haseł do serwerów, położenia plików PST są trzymane w rejestrze. Mało tego, w kluczu, którego nie sposób się domyśleć? Skończyłem? Nie. Najdziwniejszy, w tym wszystkim, był sposób zapisu danych. Nie był normalny reg_sz, nie był inny format.

A teraz uwaga: reg_binary. I to w taki sposób, jakby pliki konfiguracyjne były wpakowane bezpośrednio do rejestru. No rozumiem, że dane binarne są lepiej przetwarzane przez programy, ale nie mówią do nas po ludzku. Czyste zuo, nie wiem, co brał projektant Outlooka, który maczał w tym palce.

Ale gdybać, to sobie możemy i możemy, co z tym fantem zrobić?

Można, oczywiście, utworzyć ręcznie konta i potem zaimportować z pliku? Ale PO CO? O ile w przypadku kont POP3 sprawa jest dość prosta i sprowadza się do wskazania odpowiedniego zbioru pst w konfiguracji konta, to z IMAP nie jest już tak łatwo. A po co resynchronizować całość, skoro kopia jest już zrobiona?

Próbowałem również oszukać PIM-a poprzez dodanie kont i późniejszą podmianę plików, ale ten numer nie przeszedł. :P

przygotowanie wojsk

Bez zewnętrznych narzędzi się nie obejdzie. Przekopywałem Google przez kilka godzin sprawdzając chyba wszystkie frazy, jakie przyszły mi do głowy. Niestety, nic nie znalazłem, więc piszę ten artykuł ku pamięci oraz innym śmiałkom, którzy chcieliby przenieść pliki pst w inne miejsce.

Czego potrzebujemy?

  • edytor tekstowy pozwalający na zapisanie dokumentu w formacie Unicode Big-Endian - bo w takim są przechowywane ścieżki. Zwykły Notepad2. Prosty i skuteczny.
  • edytor rejestru pozwalający na łatwą manipulację danymi binarnymi w formacie szesnastkowym - potrzebny w celu wyeksportowania zawartości reg_binary do pliku - nomen omen - binarnego. Ja użyłem Registry Workshop. Trial w zupełności wystarczy.
  • również edytor, ale szesnastkowy - tutaj do wyboru, do koloru. U mnie? HxD.

Wiemy już, czego trzeba użyć, teraz przydałoby się opisać, co trzeba zrobić. Najpierw zamykamy Outlooka, o tym nie trzeba chyba przypominać, ale warto - na wszelki wypadek.

Poprzenosiłeś już pliki pst? Nie? To na co czekasz? :) Aha, pliki domyślnie leżą w Dokumentach i \Users\użytkownik\AppData\Local\Microsoft\Outlook.

fight!

Otwieramy edytor rejestru i szukamy klucza:

  1. HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook

Hmm, kto by się spodziewał, że to tutaj siedzi? ;) Mamy w nim sporo kluczy i wartości o wyczerpujących nazwach:


klucze rejestru

Ta, wyczerpujących… To, co nas czeka, to mozolna podmiana starych ścieżek do plików na nowe. Jak je namierzyć? Trzeba przejrzeć wszystkie wartości reg_binary w kluczu ustawień Outlooka i jego podkluczach. Żeby się nie narobić jak głupi, wystarczy uwzględnić tylko te, których rozmiar przekracza 100 bajtów.


UBE

Teraz uruchamiamy Notepad2 i wprowadzamy w oknie edytora nową ścieżkę do wybranego pliku pst. Przełączamy kodowanie na Unicode Big Endian. Zapisujemy w jakimś dogodnym miejscu.


podgląd wartości

W Registry Workshopie edytujemy odpowiedni klucz. Po czym go poznać? Jeśli przewiniemy podgląd zawartości, to po prawej stronie będzie można dostrzec ścieżkę do pliku, z kropkami pomiędzy znakami (podgląd jest w ANSI, nie Unicode). Jeśli ścieżki tam nie ma (a zdarzy się kilka takich wartości), pomiń.

Jeśli jednak jest ciąg zakończony .pst, kliknij na Export i zapisz w dogodnym miejscu.


hxd

Odpal HxD i otwórz w nim oba zapisane pliki - jeden wyeksportowany przed chwilą, a drugi - ze ścieżką w formacie Unicode BE. Teraz trzeba zamienić ścieżkę w wyeksportowanym pliku. Zaznaczam, że może się ona powtórzyć kilkakrotnie, ale postępujemy analogicznie.

Zawartość “bufora” z nową ścieżką jest dokładnie potrzebną nam zawartością. Potrzebujemy jedynie pominąć trzy początkowe bajty, które są sygnaturą danych. W naszym zastosowaniu jest ona jednak zbędna. Wygląda to mniej więcej tak:


podmiana

Kopiujemy zaznaczenie do schowka poprzez CTRL+C. Przełączamy się do pliku z zawartością wartości rejestru (tak, po polsku dziwnie to brzmi) i zaznaczamy dokładnie starą ścieżkę. Co do joty, ani mniej, ani więcej. Żeby było łatwo odróżnić - jest ona zwykle otoczona pustymi bajtami (w podglądzie szesnastkowym - czyli po lewej - ma kod 00. To ważne - kropka może się nam pomylić z pustym znakiem). Wszystko wygląda mniej-więcej tak:


do podmiany

Gdy mamy już zaznaczone to, co trzeba - CTRL+V i zapisujemy zmiany. Następnie, w Registry Workshop, w tym samym okienku edycji wartości, klikamy import i wskazujemy ścieżkę do pliku edytowanego przed chwilą.

game over

Po mozolnym zmienianiu ścieżek, odpaliłem Outlooka… DZIAŁA. Kilka dobrych “chwil” poświęconych na przekopanie Google, rejestru i przegrzebania dziesiątek kluczy (ich ilość jest wprost proporcjonalna do liczby obsługiwanych kont).

Jeśli ktoś chciałby się pokusić o napisanie programu pozwalającego na mniej czasochłonne przenoszenie zbiorów Outlooka - ma opis algorytmu. ;)

I na koniec: to, co opisałem - wykonujesz na własną odpowiedzialność. Nawet nie zabieraj się za modyfikację żadnego z kluczy rejestru, jeśli nie posiadasz jego kopii zapasowej i nie wiesz, jak z niej skorzystać.

4 komentarzy

dopisz swój :: trackback :: RSS z komentarzami

RSS z komentarzami :: trackback

Skomentuj

Możesz używać znaczników XHTML. Dozwolone są następujące tagi: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Wszystkie komentarze przechodzą przez moderację oraz filtry antyspamowe. Nie zostanie opublikowany komentarz, jeśli:

  • Jego treść obraża kogokolwiek.
  • W treści znajdują się wulgaryzmy i słownictwo ogólnie uznane za nieprzyzwoite.
  • Mam wątpliwości co do autora wpisu (Wszelkie anonimy są kasowane - niezależnie od zawartości - wpisz prawdziwy e-mail. Jeśli usunąłem, Twoim zdaniem, komentarz niesłusznie - daj znać). Zdarza się, iż sprawdzam kim jest komentujący.
  • Zawiera jakąkolwiek formę reklamy.

Szufladka