Centrum Skryptów - Active Directory

Jak dodać użytkownika domeny do lokalnej grupy Administratorów? Udostępnij na: Facebook

Skrypciarze odpowiadają na Wasze pytania

Cześć Skrypciarze!

Witamy w nowej rubryce TechNet’u, w której Skrypciarze odpowiadają na najczęściej zadawane pytania dotyczące używania skryptów podczas administrowania systemami. Jeśli masz jakieś pytania dotyczące tego tematu, nie wahaj zwrócić się z nimi do nas. Napisz na adres scripter@microsoft.com (w jęz. angielskim). Nie możemy obiecać, że odpowiemy na wszystkie pytania. Z pewnością jednak zrobimy wszystko, co w naszej mocy, żeby pomóc Ci w rozwiązaniu problemu.

Jak dodać użytkownika domeny do lokalnej grupy Administratorów?

Cześć Skrypciarze! Pytanie

Cześć Skrypciarze! Jak mogę dodać użytkownika domeny do lokalnej grupy Administratorów na komputerze?

-- MB

Cześć Skrypciarze! Odpowiedź

Cześć MB. Ten dział powstał między innymi po to, żebyśmy mogli dowiedzieć się czegoś więcej o tym, czym administratorzy systemów zajmują się na co dzień. Przesiadując bowiem w naszych luksusowych apartamentach ponad campusem Microsoftu, nie jesteśmy całkiem na bieżąco z tym, co się robi w prawdziwym świecie. Na przykład, w Centrum Skryptów mamy fragment skryptu, który pokazuje, jak dodać użytkownika do lokalnego konta Administratorów:

strComputer = "atl-ws-01"

Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators")

Set objUser = GetObject("WinNT://" & strComputer & "/kenmyer")

objGroup.Add(objUser.ADsPath)

Co jest z nim nie tak? Nic, poza tym, że nie należy on do najbardziej praktycznych. Owszem, pokazuje jak dodać kolejnego lokalnego użytkownika do grupy Administratorów. Niby wszystko jest w porządku, ale tym, czego większość z Was tak naprawdę chce się dowiedzieć (wnioskując z liczby nadesłanych e-maili) jest to, jak dodać użytkownika domeny do lokalnej grupy Administratorów. Wiadomość dotarła – pokażemy, jak dodać użytkownika domeny do lokalnej grupy Administratorów.

Tak się składa, że skrypt, którego użyjemy, jest niemal identyczny ze skryptem dodającym lokalnego użytkownika do grupy Administratorów. Jedyna różnica, co zobaczymy za chwilę, pojawia się w wierszu trzecim. W poprzednim skrypcie łączymy się z kontem użytkownika lokalnego używając następującej linii kodu:

Set objUser = GetObject("WinNT://" & strComputer & "/kenmyer")

Następnie przekazujemy ADsPath tego konta użytkownika do metody Add, która dodaje użytkownika do grupy:

objGroup.Add(objUser.ADsPath)

To samo chcemy zrobić z naszym nowym skryptem, tylko bez łączenia się z kontem lokalnego użytkownika. I to właśnie zrobimy, zmieniając linię trzecią:

Set objUser = GetObject("WinNT://fabrikam/kenmyer")

Używamy tu dostawcy WinNT by połączyć się z domeną fabrikam; a dokładniej, używamy providera WinNT, by połączyć się z kontem użytkownika kenmeyer w domenie fabrikam. No tak, już widzę te zdegustowane miny. "Dlaczego używają dostawcy WinNT” mruczycie pod nosem, "Skoro łączą się z Active Directory, to nie powinni czasem użyć providera LDAP?”

Odpowiedź na to pytanie brzmi: zazwyczaj tak. Przypuśćmy jednak, że użyjemy providera LDAP do pobrania ADsPath dla użytkownika kenmeyer. Kod będzie wyglądał następująco:

Set objUser = GetObject("LDAP://CN=kenmyer,OU=Finance,dc=fabrikam,dc=com")

Wygląda w porządku, poza tym, że otrzymujemy ADsPath, który wygląda tak:

LDAP://CN=kenmyer,OU=Finance,dc=fabrikam,dc=com

To też wygląda w porządku… przynajmniej do chwili, kiedy spróbujesz przesłać tę wartość do komputera lokalnego. Pamiętaj, że Menedżer Security Account Manager na komputerze lokalnym posługuje się WinNT. LDAP jest dla niego niezrozumiały. Jeśli spróbujesz przesłać ścieżkę LDAP na komputer lokalny, to po prostu nie zadziała.

Zamiast tego musimy przesłać ADsPath, który wygląda tak:

WinNT://fabrikam/kenmyer

I wiecie co? Jeśli podłączymy się do domeny fabrikam używając providera WinNT, dostaniemy dokładnie taki ADsPath jakiego nam trzeba.

Jeśli pracujecie wyłącznie z Active Directory, to powinniście używać providera LDAP. Jeśli jednak chcecie ściągnąć konto z Active Directory i użyć go w lokalnej grupie komputerów, będziecie musieli skorzystać z WinNT. Zdajemy sobie sprawę, że całe to gadanie o providerach, ADsPath i czym tam jeszcze może przyprawić o ból głowy. Ale nie przejmujcie się tym. Zamiast tego po prostu użyjcie tego skryptu by dodać użytkownika domeny (nazwa użytkownika: kenmeyer, nazwa domeny: fabrikam) do lokalnej grupy Administratorów na komputerze o nazwie atl-ws-01:

strComputer = "atl-ws-01"

Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators")

Set objUser = GetObject("WinNT://fabrikam/kenmyer")

objGroup.Add(objUser.AdsPath)

Piszcie do nas!

 

 Do początku strony Do początku strony


Centrum Skryptów - Active Directory