Centrum Skrypciarzy - Active Directory

Jak zmienić lokalizację katalogu macierzystego użytkownika w usłudze katalogowej Active Directory?

Udostępnij na: Facebook

Skrypciarze odpowiadają na Wasze pytania

Cześć Skrypciarze!

Witamy w rubryce TechNet, w której Skrypciarze z firmy Microsoft odpowiadają na częste pytania dotyczące używania skryptów w administracji systemu. Jeśli macie jakieś pytania z tej dziedziny, zachęcamy do wysłania e-maila na adres: scripter@microsoft.com. Nie możemy zagwarantować odpowiedzi na każde otrzymane pytanie, ale staramy się jak możemy.

Jak zmienić lokalizację katalogu macierzystego użytkownika w usłudze katalogowej Active Directory?

Cześć Skrypciarze! Pytanie

Cześć, Skrypciarze! Jak zmienić lokalizację katalogu macierzystego użytkownika w usłudze katalogowej Active Directory?

-- DS

Cześć Skrypciarze! Odpowiedź

Cześć, DS. Czy ktoś z Was czytał kiedyś opowiadanie Serce oskarżycielem Edgara Allana Poe? W tym opowiadaniu narrator popełnia zbrodnię idealną: zabija staruszka, a następnie rozczłonkowuje i ukrywa jego ciało. Robi to z taką ostrożnością, że nikt nie mógłby się domyśleć, iż ta zbrodnia miała miejsce. W końcu jednak mordercę załatwia jego własne poczucie winy. Wydaje mu się, że ciągle słyszy bicie ukrytego pod podłogą serca swojej ofiary i przyznaje się do zabójstwa.

Prawdę mówiąc, DS, to pytanie jest czymś w rodzaju takiego serca w świecie Skrypciarzy: przywodzi na myśl wspomnienia jednego z pierwszych skryptów umieszczonych w Centrum Skryptów, skryptu zmieniającego profil użytkownika w usłudze katalogowej Active Directory. Traf chciał, że gdzieś po drodze zgubiłem dwukropek stojący przy literze dysku (przez co otrzymałem dysk X zamiast X:). Może to nie wydaje się być wielkim problemem, wystarczy zmienić skrypt i z powrotem wstawić ten dwukropek. Niestety w tamtych czasach nie mieliśmy uprawnień do logowania się do witryny TechNet i naprawiania tego typu problemów. W skutek tego, musieliśmy czekać miesiącami, aż ktoś mógł wreszcie naprawić ten problem za nas, w tym okresie wydawało nam się, że po prostu każdy, kto odwiedzał naszą rubrykę pisał „Wiecie, że wasz skrypt dotyczący profilu użytkownika nie działa?”

OK, przyznaję się do winy: „Ja to zrobiłem!”

Może nie powinienem się tym aż tak przejmować, ale naprawdę męczy mnie myśl, że opublikowałem niedziałający skrypt i nie mogłem tego problemu naprawić.

Tym razem jednak przestawiam skrypt, który powinien zadziałać. Ten skrypt zmienia zarówno lokalizację katalogu macierzystego (atrybut homeDirectory), jak również jego literę dysku (homeDrive). Jeżeli jedyne, co chcemy uzyskać, to przemapowanie dysku (czyli zmiana atrybutu homeDrive X: na przykładowo Q:), należy opuścić wiersz kodu przypisujący wartość do atrybutu homeDirectory:

Set objUser = GetObject("LDAP://cn=Ken Myer,ou=finance,dc=fabrikam,dc=com")

 

objUser.Put "homeDirectory", "\\atl-fs-01\users\kenmyer"

objUser.Put "homeDrive", "X:"



objUser.SetInfo

Tak, to jest całkiem proste i dlatego nie mogłem wcześniej ścierpieć faktu, że tamten skrypt nie działa. (W końcu inaczej jest, jeżeli pojawi się taki błąd w skrypcie zawierającym 400 wierszy, a inaczej w zawierającym 4 wiersze.) Zaczynamy od połączenia się z kontem użytkownika Ken Myer w usłudze katalogowej Active Directory, a następnie stosujemy poniższe dwa wiersze kodu w celu określenia ścieżki UNC dla atrybutu homeDirectory oraz litery dysku (a tak naprawdę litery dysku i dwukropka) dla atrybutu homeDrive:

objUser.Put "homeDirectory", "\\atl-fs-01\users\kenmyer"

objUser.Put "homeDrive", "X:"

Teraz wywołujemy metodę SetInfo w celu zachowania zmian o wpisujemy nowe wartości do bieżącego konta użytkownika w usłudze katalogowej Active Directory.

Teraz, skoro już mój sekret wyszedł na jaw, spróbuję wziąć się w garść i żyć dalej. Bohater opowiadania „Serce oskarżycielem” został za swoją zbrodnię wtrącony do więzienia, ale chyba nie myślicie, że mogłoby mnie spotkać to samo za opuszczenie dwukropka. No powiedzcie, że tak nie myślicie.

 Do początku strony Do początku strony

Centrum Skrypciarzy - Active Directory