Centrum Skryptów -Active Directory

W jaki sposób monitować użytkownika o skasowanie (lub nie) konta komputera? 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.

W jaki sposób monitować użytkownika o skasowanie (lub nie) konta komputera?

Cześć Skrypciarzu! W jaki sposób skasować konto z Active Directory, wysyłając wcześniej do użytkownika monit Tak/Nie?

-- NM

Cześć NM! Zacznijmy od pokazania, w jaki sposób skasować konto komputera z Active Directory. Nie obawiaj się, to nie potrwa długo. Właściwie tylko dwie linie kodu:

 

Set objComputer = GetObject _

    ("LDAP://CN=atl-ws-01, CN=Computers, DC=fabrikam, DC=com")

objComputer.DeleteObject (0)

Jak widać, łączymy się bezpośrednio z kontem, które zamierzamy skasować (w tym wypadku jest to stacja robocza o nazwie atl-ws-01, znajdująca się w kontenerze Computers w domenie fabrikam.com). Następnie wywołujemy metodę DeleteObject (usuń obiekt), która natychmiast usuwa konto z Active Directory. (Na marginesie: wymagany jest parametr (0), pomimo, że 0 jest jedyną dozwoloną wartością; bez tego parametru skrypt nie zadziała.)

Jak mówiliśmy, obiekt jest usuwany z Active Directory w momencie wywołania metody DeleteObject. W jaki sposób możemy więc wysłać do użytkownika monit "Czy jesteś pewien że chcesz skasować to konto?" Cóż, musimy połączyć się z kontem, wysłać monit i dopiero wtedy skasować konto (zakładając oczywiście, że użytkownik potwierdzi usunięcie). Właśnie to robi ten przykładowy skrypt:

Set objComputer = GetObject _

    ("LDAP://CN=atl-ws-01, CN=Computers, DC=fabrikam, DC=com")

strComputer = objComputer.CN



intReturn = Msgbox("Are you sure you want to delete this computer account?", _

    vbYesNo, "Delete " & strComputer)



If intReturn = vbYes Then

    objComputer.DeleteObject (0)

End If

Oto jak działa ten skrypt. Łączymy się z kontem komputera i pobieramy wartość CN (Common Name – nazwa pospolita) dla tego konta. Zauważcie, że tak naprawdę CN nie jest nam niezbędna; pobieramy ją tylko po to, żeby w monicie znalazła się nazwa komputera. Następnie używamy metody VBScript Msgbox, aby wyświetlić okno komunikatu, które: 1) zawiera przyciski Yes (tak) i No (nie) - to właśnie robi dla nas stała vbYesNo; 2) wyświetla komunikat Czy na pewno chcesz skasować to konto?; 3) ustawia tytuł okna komunikatu na Delete atl-ws-01 (skasuj atl-ws-01) - po Delete następuje CN komputera.

Okno komunikatu pozostanie na ekranie do momentu, aż użytkownik kliknie jeden z przycisków; wówczas wartość odpowiadająca klikniętemu przyciskowi zostaje przypisana zmiennej intReturn. Jeżeli intReturn jest równe stałej VBScript vbYes, znaczy to że kliknięty został przycisk Yes; w takim wypadku konto komputera zostaje usunięte. Jeśli intReturn jest równe czemuś innemu (tutaj jedyną możliwością jest stała vbNo, co oznacza, że kliknięto przycisk No), nic się nie dzieje, skrypt kończy działanie, a konto nie zostaje skasowane.

 Do początku strony Do początku strony


Centrum Skryptów -Active Directory