Automatyka windy

Choć pisanie skryptów systemowych jest często zadaniem nieco żmudnym, warto to robić. Dlaczego? Bo czas włożony w to zadanie zwraca się wyjątkowo szybko.

W numerze 8/2002 CHIP-a ukazał się artykuł „Tryby i trybiki” (140), omawiający elementarne zasady stosowania skryptów w środowisku Windows. Tekst został zamieszczony w pliku PDF na płycie CD dołączonej do aktualnego numeru. Osobom, które nie miały nigdy kontaktu z żadnym środowiskiem skryptowym, polecam choby pobieżne przejrzenie wspomnianego artykułu przed przystąpieniem do lektury niniejszego tekstu. Teraz, pomijając tłumaczenie podstaw działania skryptów, pójdziemy krok dalej: przeanalizujemy kilka często spotykanych zastosowań mechanizmów WSH.

Podobnie jak we wspomnianym tekście, również w tym artykule przykładowe skrypty powstały z wykorzystaniem języka JScript. Wyjątkiem jest banalny skrypt napisany przy użyciu Perla, służący wyłącznie do przetestowania poprawności instalacji tego ostatniego środowiska.

Co chciałbyś wiedzieć?

WSH to doskonałe narzędzie do uzyskania dosyć szczegółowych informacji o dowolnym użytkowniku systemu z grupy NT (Windows NT 4.0/2000/XP). Zakładając, że mamy uprawnienia administratora konkretnych „Okien”, możemy się w tym celu posłużyć następującym skryptem:

var WsNetwork = WScript.CreateObject (‚WScript.Network’);
domena = WsNetwork.UserDomain;
komputer = WsNetwork.ComputerName;
uzytkownik = WsNetwork.UserName;

var daneu = GetObject(‚WinNT://’ + domena + ‚/’ + uzytkownik + ‚,user’);
pelnaNazwa = daneu.FullName;
ostatnieLogowanie = daneu.LastLogin;
if (daneu.AccountDisabled) {
     blokada = ‚Tak!’
} else {
     blokada = ‚Nie’
};

WScript.Echo(‚Dane aktualnego użytkownika: ——————— Domena: ‚
     + domena + ‚ Komputer: ‚ + komputer
     + ‚ Użytkownik: ‚ + uzytkownik
     + ” Pełna nazwa użytkownika: ‚ + pelnaNazwa
     + ‚ Data ostatniego logowania: ‚ + ostatnieLogowanie
     + ‚ Konto zablokowane? ‚ + blokada);

Jego wykonanie spowoduje wyświetlenie okna zawierającego podstawowe dane o aktualnym użytkowniku – m.in. pełną nazwę i datę ostatniego logowania do systemu.

Przyjrzyjmy się działaniu skryptu. Najpierw tworzymy instancję obiektu WScript.Network, co pozwala nam na znalezienie domeny, nazwy komputera i użytkownika. Rzecz jasna możemy te dane wpisać „na sztywno” w kodzie skryptu lub pobrać, korzystając z okna dialogowego – dzięki temu administrator maszyny bez problemu sprawdzi właściwości dowolnego konta użytkownika.

Najciekawsza część skryptu zaczyna się jednak od momentu utworzenia obiektu daneu. Dzięki funkcji GetObject() uzyskujemy bowiem dostęp do jednego z elementów usługi ADSI (Active Directory Ser-vice Interfaces), dającej programistom łatwy dostęp do usług katalogowych Windows NT (NDS). Utworzony obiekt oferuje m.in. takie właściwości, jak

FullName

(pełna nazwa użytkownika),

LastLogin

i

LastLogoff

(data ostatniego zalogowania i wylogowania),

AccountExpirationDate

(data wygaśnięcia ważności konta) i wiele innych. O ADSI można się dowiedzieć więcej ze strony WWW Microsoftu (dokładny adres podano w ramce „Info” na końcu tekstu).

0
Zamknij

Choć staramy się je ograniczać, wykorzystujemy mechanizmy takie jak ciasteczka, które pozwalają naszym partnerom na śledzenie Twojego zachowania w sieci. Dowiedz się więcej.