Skip to Content

IT nieuczesane.

Profile użytkowników w systemach windows NT

Profile:
(pol. profil) pliki zawierające informacje o ustawieniach środowiska pracy – pulpitu, zmiennych użytkownika, dzwiękach etc – generalnie o wszystkim tym, co każdy może sobie sam zdefiniować tak jak lubi. W systemie windows [bo o tym będe pisał] są 3 rodzaje profili: local [lokalny], roaming [wędrujący] oraz mandatory [obligatoryjny].
local: (pol. lokalny) profil użytkownika przechowywany na lokalnym komputerze, na którym się loguje.
ZALETY: bardzo szybko się ładuje, nie ma problemu np. z outlook’iem (który tworzy olbrzymie pliki), nie obciąża sieci podczas logowania;
WADY: jeśli korzysta się z wielku stanowisk pracy, trzeba każde oddzielnie konfigurować [lub ręcznie kopiować profil z innego];
roaming: (pol. wędrujący) profil użytkownika trzymany na zdalnym kompie (serwerze?).
ZALETY: wszędzie gdzie się zaloguje środowisko jest identycznie skonfigurowane;
WADY: podczas logowania obciążona jest sieć, jeśli ktoś korzysta z outlook’a logowanie może trwać wieki – zanim przepchnie się kilkuset mogowy plik z pocztą. To samo z wylogowywaniem. Mogą być problemy jeśli ktoś pracuje na różnych wersjach systemu operacyjnego (w2k/NT4.0)
mandatory: (pol. obligatoryjny) profil wymuszony, niezmienialny. Ustalony jednorazowo i wszelkie zmiany zrobione przez użytkownika nie będą zapamiętane. Niezwykle przydatny w środowiskach gdzie wielu userów korzysta z tego samego sprzętu.
ZALETY: mały, nie psuje się… w zasadzie same zalety poza:
WADY: użytkownik nie może sam skonfigurować sobie środowiska
!co tak na prawde często bywa zaletą.

W niniejszym artykule znajdują się informacje na temat profili – czyli jakie są rodzje profili jak działają, lub czemu nie działąją. Znajdują się tu również informacje jak przygotować profil dla wszystkich userów i kilka przydatnych tipsów.


WTĘP

Na początek informacje podstawowe o profilach: co gdzie i jak.

Standardowym katalogiem profili w systemach windows są:

  • %windir%profiles dla windowsów NT 4.0 i starszych
  • "%systemdrive%documents and settings" dla rodziny NT 5.x
większość informacji powinna być również prawdziwa dla systemów z rodziny wintendo [9x,me]

Standardowo znajdują się tam również od razu katalogi:

  • All Users
  • Default User [z atrybutem ‚hidden’]

Aby rozumieć błędy związane z profilami, kolejną ważną rzeczą jest informacja o tym jak z nich korzysta system. A dzieje się to tak:

  • …siała baba mak…
  • jeśli użytkownik loguje się po raz pierwszy, czyli nie ma swojego profilu, system musi mu jakiś profil stworzyć. I robi to, kopiując profil z katalogu ‚Default User‚ do katalogu użytkownika [czyli %systemdrive%documents and settings%username%].
  • jeśli użytkownik już się logował, to oczywiście system korzysta z istniejącego profilu. Nic ciekawego.
  • dużo przyjemniejsza sytuacja jest w przypadku profili roamingowych i mandatoryjnych: w takim przypadku system tworzy kopię profilu na dysku [%systemdrive%documents and settings%username%]. Podczas pracy z systemem user w rzeczywistości operuje na tej właśnie kopii, i podczas wylogowywania profil użytkownika jest update’owany [w przypadku roamingowego] lub też nie [w przypadku mandatoryjnego jest po prostu niszczony]. Ten drobny punkcik jest dość kluczowy i warto to sobie zapamiętać.
  • jeśli w którym kolwiek przypadku system powinien założyć katalog ‚%username%‚ a takowy już istnieje, nie jest on w żadnym razie kasowany – tworzony jest drugi katalog – najpierw ‚%username%.%userdomain%‚ dla kompa w domenie, ‚%username%.%hostname%‚ dla kompa w workgroup’ie. Jeśli istnieją i takie, to zakładane są podobne, z kolejnymi cyferkami jako rozszeżenie.
WAŻNE
Ostatni punkt jest również ważny do zapamiętania – ponieważ jeśli użytkownik wypłakuje nam się, że stracił wszystkie pliki z pulpitu a tam była jedna kopia spisu robionego od 10 lat, i zasmarkał nam juz cały rękaw, wtedy można ostatecznie ruszyć się i sprawdzić czy aby nie została tam poprzednia wersja profilu.

Teraz kilka słów o tym co jest standardowo w każdym katalogu profilu:

  • najważniejszym plikiem jest ‚ntuser.dat‚, który jeśli ktoś zwróci uwagę, puchnie wraz z korzystaniem z systemu. Dzieje się tak, ponieważ plik ten zawiera to, co podczas logowania jest ładowane do rejestru jako ‚HKEY_CURRENT_USER‚.
    Może od razu uściślenie: tak samo jak z profilem, dzieje się z kluczem rejestru HKCU – podczas pierwszego logowania zostaje on utworzony na podstawie HKEY_USERS.Default, następnie jest nadpisywany [jeśli jakaś wartość się powtarza] lub dopisywany [jeśli takiej wartości nie ma] przez część znajdującą się w ‚ntuser.dat’ z katalogu ‚Default User’. Potem system kożysta już z ‚ntuser.dat’ z katalogu usera.

    W pliku tym zapisane są wszystkie ustawienia desktopu, zmienne wykorzystywane przez aplikacje typu: ustawienia śrdowiska aplikacji… generalnie rzeczy związane z konkretnym userem.

  • Katalogi ‚Nethood‚ i ‚Printhood‚ [z atrybutem hidden] gdzie system będzie zachowywał linki do używanych przez użytkownika połączeń sieciowych i drukarkowych – czyli to, co się wyświetla po naciśnięciu ‚my network places’.
  • Katalog ‚Templates‚ [również hidden] gdzie niektóre aplikacje będą zachowywać to, co mogą uznać za szablon. Jeśli ktos długo korzysta już ze swojego konta [profilu] to proponuję tam zajrzeć. Katalog ten jest na pewno wykorzystywany np. przez Office’a.
  • Katalog ‚Send To‚ [nie inaczej jak hidden] gdzie znajdują się linki do programów, które wyświetlają się po naciśnięciu prawym guzikiem myszy na programie i wybraniu menu ‚send to’. Więc jeśli jeszcze nie wiedziałeś jak sobie ręcznie tą listę edytować – teraz już nie powinno być wątpliwości.
  • Katalog ‚Application Data‚ [to już przedostatni ‚hidden’] to katalog wykorzystywany przez wiele aplikacji do zachowywania różnego rodzaju plików – generalnie cały śmietnik, który [na szczęście!] z jakichś powodów nie został wrzucony do rejestru. Przeważnie są to różnego rodzaju profile użytkownika dla danej aplikacji.
  • Katalog ‚Local Settings‚ [ufff. hidden ale już ostatni] jest wykorzystywany przez iExplorera i Outlook’a oraz systemowy katalog plików tymczasowych [drugi po systemowym tempie – standardowo %windir%temp].
  • Ponad to są jeszcze katalogi cookies z których korzysta iExplorer, Desktop – gdzie znajduje się fizycznie to, co umieszczone jest na pulpicie, Favorites oraz Recent w których umieszczane są linki do programów ‚ulubionych’ i ostatnio używanych [start->documents].

Skąd system wie, czyj profil jest czyj?

Dokładnego algorytmu nie jestem pewien… ale na pewno znaczącym miejscem jest klucz w rejestrze:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList
gdzie jest spis w postaci USER-SID-VERY-LONG-NUMBERProfileImagePath [REG_EXPAND_SZ] w którym to kluczu zapisane jest położenie profilu dla użytkownika o konkretnym SID’dzie. I teraz ciekawostka:
jeśli zmieni się plik ntuser.dat [skasuje, zmieni nazwę czy cuś], system stworzy nowy profil – nie będzie korzystał z istniejącego katalogu. Aby przywrócić do poprzedniego stanu nie wystarczy poprawić ntuser.dat – należy poprawić wpis w rejestrze w w/w kluczu.

część opisywanych mechanizmów znam wyłącznie z praktyki – nie udało mi się dotrzeć do artykułów microsoftowych opisujących szczegółowo takie rzeczy.

Wygląda to mniej-więcej tak, iż system sprawdza czy istnieje wpis w rejestrze jak opisano powyrzej. Jeśli tak, to sprawdza, czy jest opisany w nim katalog. Jeśli tak to sprawdza czy jest w nim ntuser.dat. Jeśli którykolwiek z elementów nawali, system tworzy nowy profil, co się wiąże z zapisaniem w ProfileList ścieżki do nowego katalogu. Standardowo przyjmowana jest nazwa ‚%username%‚. Na końcu system próbuje załadować pliczek ‚ntuser.dat’ zawierający wpisy z HKCU, w którym na sztywno zaszyty jest SID posiadacza profilu.

Nazwa użytkownika nie jest w żadnym razie realnym identyfikatorem użytkownika – prawdziwym identyfikatorem jest SID [Security IDentifier] przypisany do konta. Nazwa konta jest jego zmienną właściwością. Stąd jeśli skasujemy usera i założymy drugiego o tej samej nazwie, to jego profile, nadane uprawnienia, przynależność do grup etc i tak nie będą działać, i odwrotnie – jeśli zmienimy nazwę istniejącemu userowi, to nic poza tą nazwą się dla niego nie zmieni.

Tak też jeśli ktoś sprobuje ‚na żywca’ skopiować czyjś profil do innego katalogu, system na podstawie SID’a w ‚ntuser.dat’ będzie wiedział, że to nie ten profil co trzeba – więc tak nie zadziała. Jeśli chcemy coś takiego zrobić należy skorzystać z przygotowanego interface’u: my computer-> RMB -> properties -> User Profiles -> wybrać odpowiedniego usera -> copy. Zostaniemy poproszeni o podanie katalogu docelowego oraz kto będzie mógł z tego profilu korzystać.

Plik ntuser.dat jest kluczem HKCU ładowanym podczas logowania, i na tych kluczach pozapisywane są również uprawnienia dostępu ACL. Plik ntuser.dat można załadować regeditem z innego konta, następnie należy wyszukać klucze z uprawnieniami dla konkretnego użytkownika [nie ma ich tak dużo ale praca jest ręczna] i zmienić uprawnienia.
W skrajnych przypadkach można próbować zastosować sposób ‚na hackera’ (; czyli jakimś hexeditem otworzyć ntuser.dat, poszukać wpisu numerka SID i zamienić go nowym. Kilka razy mi się tak udało… a kilka nie. Nie jest to w żadnym razie wskazana metoda

Ostatnią sprawą, aby profil mógł zostać utworzony są odpowiednie uprawnienia na katalog/pliki.

WAŻNE
Ostatnią ważną sprawą dotyczącą profilu jest pewien drobny szczegół: jeśli spojrzy się kto jest właścicielem katalogu profilu to okazuje się, że jest nim grupa administratorów lokalnych. Dopiero wszystko wewnątrz katalogu tworzone jest w kontexcie usera, do którego profil należy. Jest to istotny szczegół w momencie, jeśli ktoś zaczyna się bawić zaawansowanymi uprawnieniami.

Pozostaje nieczęsny ‚All Users‚, który jest niczym innym jak zbiorem linków-ikonek, które będą widoczne dla każdego użytkownika, który zaloguje się na tym komputerze. Taki mechanizm jest stworzony po to, aby umożliwić personalizację profili również od strony komputera. Na przykład jeśli na jednym komputerze mamy aplikację ‚kolejny niepotrzebny szit’, a na drugim takiej aplikacji nie ma, to logując się na jednym kompie będziemy widzieli ikonkę-skrót [ponieważ będzie ona w ‚All Users’] a na drugim nie [no! zgadnij czemu…]. Co w połączeniu z profilami roamingowymi [buehk!] daje możliwość personifikacji profilu zarówno pod względem konkretnego użytkownika jak i konkretnej maszyny.
Innymi słowy w kontexcie pojedyńczej maszyny wszystko jedno czy ikonka będzie w ‚All Users‚ czy też w ‚Default User‚.. choć nie do końca. Bo jeśli zostanie zainstalowana nowa aplikacja, i chcemy aby skrót był widoczny dla wszystkich tooooo…… właśnie tak!


Roaming Profile – profil pływający tudzież przechodni

Wydawałoby się, iż idealnym rozwiązaniem było by utowrzenie na serwerze katalogu dla każdego usera, i ustawnie mu na ten katalog ścieżki katalogu domowego oraz ściezki profilu. Jeśli ktoś wpadł na taki pomysł a nie pofatygował poszukać się czegoś na stronkach microsoftu, to najprawdopodobniej stracił wiele czasu zastanawiając się, czemu to nie chce zadziałać.
Na stronkach technetu można znaleść notkę, iż katalog profilu nie może być tym samym katalogiem co katalog domowy usera. Czemu? tego nigdzie nie napisano. W każdym razie ja nie znalazlem. Najprawdopodobniej drużyna M$ zauważyła, że tak działa a tak nie, więc ustanowili to jako standard. Tak też należy załozyć każdemu userowi dwa katalogi – jeden na profil, drugi jako katalog domowy [homedrive].
Czy to wszystko? tak. Oczywiście… trzeba sobie tylko zdawać sprawę z tego, co się w takich katalogach profilu znajduje [co uważny czytelnik powinien już wiedzieć]. A znajduje się tam np. plik poczty outlook – który bądź-co-bądź jest jednym z popularniejszych programów pocztowych. Taki plik poczty może mieć od kilku do kilunastu Mb przy normalnym użytkowaniu i kasowaniu poczty. Rekordowy jaki miałem okazję oglądać mial ponad 1GB [sic!] – osoba, która z niego korzystała po prostu uważała, że maile powinno się przechowywać, bo nie wiadomo kiedy mogą się przydać. Jeśli dodać do tego informację o tym, iż podczas logowania/wylogowywania zapisywana jest kopia profilu z/na server, to teraz zagadka dla czytelnika: ‚Ile czasu trwa logowanie/wylogowanie, jeśli czyjś profil ma ok 1Gb ?

Nie trzeba umieć liczyć – odpowiedź jest banalnie prosta: duuuużo za dużo. Oczywiście jeśli ktoś nadal nie zrezygnował z profili roamingowych, pomóc mu może ustalenie quoty na dysk z profilem… Ale to również ma swoje konsekwencje. Mianowicie takie, że jesli nie mamy qouta’y na dysku lokalnym to nasz profil może urosnąć powiedzmy do 100Mb. Quota na serverze ma powiedzmy 50Mb. Wylogowujemy się i system próbuje zapisać pliki na server, dostaje informacje o braku miejsca i co się dzieje? Na to pytanie najlepiej odpowiedzą ci, którzy mają manierę zachowywania ważnych plików na pulpicie [i nie robienia backup’u].
No to w takim razie może założyć quotę na dysk lokalny? No genialny pomysł! Włączamy iExplorera, kilka stron z obrazkami i już 10Mb zjedzone. O odpaleniu programu typu ‚photoshop’ który na dzieńdobry zakłada kilkuset Mb plik wymiany można zapomnieć

WAŻNE
A teraz uwaga! Panie i Panowie! Cyrk istny zawitał w naszym komputerze! Cuda cudeńka – wprost z Redmont!
Jestem nietypowym userem i chciałbym mieć swój profil w katalogu ‚c:moj kochany profilek‚. Nic prostrzego – odpalam zarządzanie kompem -> Local Users and Groups -> Users -> mojUser -> dwumlask [respekt dla śp. pana Jana Bieleckiego ): to był wielki człowiek] -> profile i wpisujemy ścieżkę profilu. Nic prostrzego. Działa? Jak najbardziej działa. Nasuwa się pytanie ‚o co ci biega człeniu?‚. Otóż jeśli po zalogowaniu sprawdzimy jaki jest rodzaj profilu z którego korzystamy [my computer -> properties -> User Profiles], okarze się iż jest to profil roamingowy, a nie jak by się tego można spodziewać – lokalny. Tak też pracujemy na wszelkich zasadach na jakich działa ten typ profilu – czyli tworzenie kopii profilu podczas logowania itd. Tak też jeśli chcemy lokalnie w domq mieć profil w jakimś innym miejscu, to trzeba sobie trochę porzeźbić w rejestrach.

Jeśli jesteś twardzielem [twardzielką (;] i nadal masz zamiar spróbować korzystać z profili pływających to w suskurs może przyjść jeszcze jedna opcja, która wyeliminuje w dużej mierze obciążenie sieci podczas logowania/wylogowywania. Jest to cecha wprowadzona wraz z w2k i polisami grupowymi [GPO – Group Policy Object], w których można zdefiniować ‚folder redirection’ czyli przekierowywanie folderów dla użytkowników. Ustawienia te znajdują się oczywiście w części użytkownika [o GPO należy sobie troszeczkę poczytać ale nie w tym art.]: User Configuration -> Windows Settings -> Folder Redirection gdzie można znaleść opcje przekierowania czterech katalogów, które normalnie znajdują się w profilu:

  • Application Data
  • Desktop
  • My Documents
  • Start Menu

Dzięki tym opcjom można przekierować położenie katlogów na inne servery, co jest rozszeżeniem działania profilu przechodniego [roamingowego] eliminujące efekt kopiowania niepotrzebnych plików – np. outlooka. Nie ma nic za nic – jeśli zdecydujemy się na takie rozwiązanie to mamy już oddzielny katalog i share’a na:

  • katalog domowy usera
  • katalog profilu
  • katalog my documents
  • apllication data.. no i te na które się zdecydujemy

Więcej praktycznych rad co jak można ze sobą łączyć niestety nie podam, ponieważ jestem zwolennikiem proifili obligatoryjnych i nie testowałem wnikliwie jak to się sprawuje w praktyce.


Mandatory Profile – profil obligatoryjny

   Ostatnim rodzajem profilu jest profil mandatory, czyli obligatoryjny czyli przymusowy tudzież niezmienialny, ponieważ te właśnie przymiotniki najlepiej określają jego charakter. Profile takie tworzy się w celu unknięcia wszelkich problemów w środowiskach, gdzie użytkownicy często logują się do różnych maszyn i niekoniecznie chcemy, żeby nam te sprzęty rekonfigurowali. Idea jest prosta – podczas logowania tworzona jest kopia profilu dla użytkownika, natomiast podczas wylogowywania profil jest niszczony, zamiast być update’owanym. Utworzenie takiego profilu jest również nieskomplikowane: wystarczy zmienić rozszeżenie pliku ‚ntuser.dat’ na ‚.man’ i już. Warto jeszcze nadać na ten katlog uprawnienia RO [tylko do odczytu].

Pozostaje kwestia – gdzie umieścić taki profil – na serwerze, czy lokalnie? To oczywiście zależy od potrzeb konfigurującego, więc podam tylko kilka faktów:

  • z profilami na serverze zawsze są problemy
  • profile zdalne generują niepotrzebny ruch w sieci, co w przypadku przeciążonych środowisk spowoduje długie czasy logowania/wylogowywania
  • powyższych problemów nie ma, korzystając z profilu umieszczonego na dysku lokalnym
  • jeśli profil ma być na dysku lokalnym, trzeba mieć pewność, iż jest on dostępny na każdej maszynie. W innym wypadku może okazać się, że raz będzie dobrze a gdzie indziej system poinformuje nas, iż profil jest niedostępny i wykorzystany będzie ‚Default User’ – do utworzenia nowego profilu.

Konfiguracja defaultowego profilu użytkownika

W zasadzie jeśli ktoś dotarł aż tutaj – sposób na przygotowanie takiego profilu powinen być oczywisty. Ale dla utrwalenia czy też zademonstowania wiedzy w praktyce: sposób na przyrządzenie standardowego profilu dla nowych userów. Warto by zacząć po co wogóle takie zabiegi? Jeśli na komputerze ma się logować pewna ilość userów, i chcemy aby każdy z nich miał takie same ustawienia startowe [powiedzmy widok w postaci listy i odkryte plików systemowe], to właśnie po to. Oto recepta:

składniki:

  • konto jakiegoś-naszego-usera
  • w pełni zainstalowany komp
  • 5 min wolnego czasu

Sposób przyrządzania:

UWAGA!! nie wolno tego robić na początku – przed instalacją oprogramowania.
trzeba to koniecznie zrobić już po zakończeniu wszelkich instalacji. A to z tego
powodu, że wiele informacji zapisywanych jest w części rejestru użytkownika, o czym mowa była na początku.
Ponieważ w profilu są zapamiętywane również ustawienia różnych aplikacji, mogą
one działać nieporawnie [te aplikacje], nie działać wogóle, a już napewno działać nie
tak, jak by tego po nich oczekiwano. Dla tego najpierw trzeba skończyć przygotowywać
aplikacje, pokonfigurować i wogóle wogóle. Jeśli jakąś aplikację zainstaluje się
później, to powinno się na nowo utworzyć taki profil. [Wyjątkiem są tu bardzo złośliwe
aplikacje – np. CorelDraw 9.0]

  1. Logujemy się na jakiegoś-naszego-usera i utawiamy wszystko tak, jak chcemy żeby
    wyglądało. Ja na ten przykład wyłączam wszelkie efekty pojawiania się menu, wywalam
    zbędne ikony, uruchamiam wszystkie aplikacje po kolei i ustawiam w nich co trzeba
    [katogi robocze, ścieżki itd itp] i wogóle wogóle.
  2. Logujemy się jako jakiś user-z-uprawnieniami-admina-na-tym-kompie. W w2k można to było zrobić na tym samym userze, winXP na taki manewr nie pozwoli. Najbezpieczniej jest się zalgować na konto admina lokalnego
  3. A teraz kilka kliknięć: pkm na mój komputer tudzież my computer -> właściwości
    tudzież properties -> User Profiles [daruje sobie tudzieże i będę się trzymał
    anglojęzycznej wersji]
    następnie należy wybrać jakiegoś-naszego-usera i zrobić copy do katalogu ‚default
    user
    ‚. Należy pamiętać o ustawieniu odpowiednich uprawnień – kto może korzystać z tego profilu
    – czyli ustawić np. ‚everyone’ jeśli ma być on używany przez kogokolwiek [też śmieszne.. jest w w2k grupa ‚everyone’ a nie ma ‚anyone’]. W innym wypadku otrzymamy informację o niemożliwości załadowania profilu.
  4. zamieszać, dodać trochę cytrynki dla smaku, i gotowe!

Best Practices czyli ‚szef kuchni zaleca’

Poniższe porady odnoszą się do środowiska sieciowego. Na komputerach lokalnych żadko kiedy ktoś robi takie rzeczy…. ale może warto uwolnić się od ciągłych problemów młodszej siostry, która co-i-rusz zmienia częstotliwość monitora na 250Hz…

  1. nie zachowywać rzeczy na pulpicie [zwłaszcza jeśli korzystamy z profili roamingowych]
  2. pouczać o tym użytkowników [profilaktyka]
  3. kiedy tylko można korzystać z profili obligatoryjnych
  4. przed każdą zabawą z profilami porobić backupy!!!
  5. unikać profili roaming’owych

‚dobranoc dzieci. a teraz pocałujcie misia …’ (= [pamiętacie to?].