Skip to Content

IT nieuczesane.

ADVANCED SCRIPTING

SŁOWNICZEK


ActiveX
   ActiveX jest ogólnie rzecz ujmując częścią technologii COM, która wyewoluowała z OLE (Object Linking
and Embedding
) – oficjalnie jest trzecią wersją OLE. Innymi
słowy ciężko jest konkretnie powiedzieć czym jest ActiveX – po
prostu technologią ‚patented by microsoft’, próbującą połączyć kilka
technologii w jedną. Zazwyczaj mówi się o kontrolkach ActiveX,
które tą technologię implementują. Kontrolki ActiveX – czyli obiekty
COM z pakietu ActiveX – są zaprojektowane w celu ułatwienia
dystrybucji komponentów w sieciach rozległych oraz umożliwienie
sterowania poprzez przeglądarkę WWW. Kontrolki takie mogą być w
razie potrzeby automatycznie ściągniete i zainstalowane przez
przeglądatkę, przy czym technologia A-X zawiera implementację
certyfikatów i autoryzacji. A-X jest trochę podobne do apletów Javy
z kilkoma podstawowymi różnicami:

  • A-X daje większe możliwości ale kosztem bezpieczeństwa, ponieważ
    korzysta z bezpośredniego dostępu do systemu operacyjnego [po to
    certyfikaty i autoryzacja… ale ilu użytkowników czyta komunikaty, które wyświetlają im sie na ekranie?!];
  • nie jest językiem programowania a raczej zbiorem zasad
    informujących w jaki sposób aplikacje mają wymieniać się
    informacjami i dostarczene są w postaci binarnej [COM];
  • działają tylko na platformach windows’owych.

ADSI

   Przy pracy jaką jest administracja, podstawowym interface’em jaki trzeba poznać jest
ADSI – Active Directory Service Interfaces. Jest to standard,
definiujący kolekcję abstrakcyjnych interface’ów programistycznych
(COM), dzięki którym każdy może w łatwy sposób operować na różnych
serwisach katalogowych (Directory Services) i odwoływać się do nich,
za pomocą jednorodnego zbioru procedur.
Można to porównać do najbardziej znanego API, jakim jest ODBC (Open Data Base Connetivity), które
pozwala programistom pisać aplikacje działające z każdą bazą danych – warunkiem oczywiście jest zgodność z ODBC, co zapewnie większość dzisiejszych baz danych. ADSI jest analogicznym narzędziem do
pracy z serwisami katalogowymi.
Mówiąc bardziej po ludzku: Novell, Microsoft i pewnie kilka innych
firm [heh.. jakich?], oferują organizację struktury sieci jako drzewo katalogowe
[Directory Services]. W przypadku Novell’a jest to NDS, w
przypadku windows’ów AD itp. W każdym takim drzewie występują pewne
wspólne charakterystyczne obiekty – np. ‚user’. Dzięki ADSI można
odwoływać się do takich obiektów z poziomu skryptu, w jednorodny
sposób, niezależnie od tego czy to NDS czy AD.
Lub jeszcze inaczej: jest to powłoka pośrednicząca pomiędzy natywnymi funkcjami
konkretnego provider’a a nami:

w2kads01.gifw2kads02.gif

  • Bardzo dokładny opis [z którego wzięte są
    powyższe obrazki] można znaleść w MSDNie na płycie, lub on-line na
    stronkach microsoftu.

ASP
Active Server Pages – jest to rozszeżenie funkcjonalności serwera HTTP o możliwość wykonywania skryptów pisanych w WSH po stronie serwera, a co za tym idzie, dynamiczne generowanie stron www. Poza skryptami WSH dodaje kilka własnych funkcji związanych stricte z obsługą HTTP typu ‚sesja’, logwanie NTLM etc.

COM
   czyli Common Object Model. Osobom znającym angielski polecam
lekturkę stronki pana Gopalan
Suresh Raj’a
na której wszystko jest bardzo [dok-]ładnie
wytłumaczone. Poniżej spróbuję streścić jej zawartość:

Od dawna dąży się do obiektowości – obiektowe języki programowania,
bazy danych etc., ponieważ takie podejście ułatwia programowanie/projektowanie i umożliwia wymianę informacji pomiędzy
obiektami. COM jest próbą stworzenia systemu operacyjnego, zbudowanego
z *binarnych* obiektów, które mogą wymieniać się między sobą
informacjami, używać publicznych metod i ustawiać/sprawdzać pola nie
korzystając z protokołów/mechanizmów wyższych warstw [DDE, TCP/IP,
Sockets, memory-mapped I/O, named pipes]. Komponenty stworzone w
architektórze COM dają możliwośc komunikacji się dwu [lub więcej]
niezależnych obiektów – choćby pracujących na innych komputerach –
poprzez wywoływanie metod tychże obiektów.

W architekturze COM, w jakiej jest zbudowany w2k/XP, system
operacyjny pełni rolę centralnego rejestru obiektów [polecam zajrzeć
sobie do HKCR/TypeLib oraz HKCR/CLSID]. Jego zadaniem jest
utworzenie obiektu jeśli wystąpi takie rządanie, kasowanie – kiedy
już nie jest potrzebny oraz obsługą komunikacji pomiędzy obiektami.
Kolejną zaletą takiej budowy jest fakt, iż jeśli zupdate’uje się
pojedynczy obiekt COM do nowej wersji, nie trzeba przekompilowywać
całej aplikacji, ponieważ jest zbudowana wykorzystując istniejące w
systemie obiekty.

Obiekty COM są niezależne – nie ‚należą’ do żadnej aplikacji.
Aplikacje mogą jedynie wykorzystywać metody i parametry udostępniane
przez dany obiekt. Jeśli nie znają ich nazw, mogą się o nią zapytać.

Context (kontext)
Odnosi się do relatywnego położenia względem korzenia we wszystkich strukturach katalogowych. W szczególnosci do Drzew Katalogowych lub chociażby do zwykłych katalogów na dysku twardym. Kontextem nazywa się katalog, w którym obecnie się znajdujemy.

IIS
Internet Information Server – microsoftowa implementacja service’ów webowych, czyli serwer FTP, HTTP i NNTP.

LDAP

Lightweight Directory Access Protocol – jest standardem [X.500] stworzony przez ‚University of Michigan‚ i był początkowo stworzony jako baza danych umożliwiająca programom email’owym do wyszukiwania kontaktów. Ze względu
na swoją plastyczność został zaadoptowany również jako standard dostępu do usług katologowych. Pierwszą poważną implementacją był NDS [Novell Directory Services] firmy Novell. Jako, że Active Directory jest usługą katalogową, która stanowi trzon całego
w2k … całej domeny konkretnie, stowrzony został interface ADSI pozwalający na dostęp do tej struktury za pomocą LDAP.
Sposób zapisu jest przedstwiony w części teoretycznej.

VBS
Visual Basic Script – skryptowa wersja Visual Basic’a.

WMI
   Windows Management Instruments – mechanizm pełniący rolę interface’u pośredniczącego miedzy użytkownikiem a częściami systemy operacyjnego. API, za pomocą którego możemy odwoływać się do obiektówy systemowych otrzymując o nich informacje, lub wywoływać funkcje – np. informacje o twardym dysku typu całkowita pojemność, filesystem, pozostałe wolne miejsce, lub shutdown komputera etc.

Bardzo przydatnym elementem jest możliwość dokonywania zapytać do zdalnych systemów – dzięki temu staje się to potęrznym narzędziem do zarządzania maszynami w sieci.

WSH
   czyli Windows Host Script, to mechanizm pozwalający na uruchamianie skryptów
bezpośrednio z explorera, klikając na nie, lub z linii komend tak, jak każdy inny
program. Uruchamiany skrypt jest obsługiwany przez odpowiednią bibliotekę ActiveX w zależności od tego,
w jakim jest napisany języku.
Dzięki takiej organizacji skrypt może być napisany w VBscript’cie lub JavaScript’cie [default], a po
dorejestrowaniu odpowiednich bibliotek również w Python’ie czy Perl’u [takie widziałem, ale może jest więcej?].
W skrócie: są sobie dwa programiki standardowo instalowane z w2k –
wscript.exe i cscript.exe.Rozszeżenia .vbs i .js są defaultowo skojarzone właśnie z nimi.
Wscript daje możliwość uruchamiania skryptów niejako w trybie okienkowym, cscript w trybie konsolowym.
Początkowo pliki skojarzone są wscript.exe. Tryb uruchomienia [konsola/graficzny] wybieramy
ustawiając odpowiedni parametr przy uruchomieniu, lub można zmienić je na stałę wpisując wscript //h:csript lub wscript //h:wscript.

Skrypt (script)
   (Mikro-)program, którego się nie kompiluje. Parser [program analizujący] odpowiedzialny
za uruchomienie skryptu, kolejno wykonuje komendy, które się w nim znajdują czyli
nie ma fazy pre- i post- procesingu.

Mówiąc w skrócie – jeśli często wykonuje się zestaw jakichś komend,
można je spisać [zgrupować] w jednym pliku żeby sobie uprościć życie.


NIE WSZYSKO ZŁOTO CO SIĘ ŚWIECI!!!

czyli nie zachłystuj się tym, co przeczytałeś/czytasz/przeczytasz. Idea systemu zbudowanego z binarnych obiektów, wymiana informacji pomiędzy obiektami-aplikacjami, universalne interface’y… ah jak to pięknie brzmi… żeby jeszcze tak właśnie działało.

Po pierwsze kuleje bezpieczeństwo jeśli chodzi o activeX’y – ponieważ mają one bezpośredni dostęp do systemu operacyjnego, i ponieważ można z nich korzystać zdalnie… chyba nie musze kończyć. Teoretycznie activeX’y mają certyfikaty… wytłumacz swojej babci co to są certyfikaty i że należy czytać te dziwne angielskie napisy – wtedy padnę na kolana i przyznam, że to bezpieczne [przed Twoją babcią oczywiście (: ]. Poza tym od teorii daleko do praktyki. W windowsie cały czas pokutuje zgodność wstecz, wykorzystywanie części starego kodu i umieszczanie go w nowym systemie [kwestie oszczędności czasu], archaiczne mechanizmy rodem z czasów nt2.0 i w3.0. Nie należy się w tej kwestii spodziewać radykalnych zmian – coś nad czym pracuje 60.000 ludzi [tak chwali się m$ a propos xp] musi kuleć.

O ile więc jest to niewątpliwie wspaniały pomysł i bardzo dobry
kierunek rozwoju dla systemów operacyjnych, o tyle należy zawsze
pamiętać o drugiej stronie lustra [po której czycha świat wizji i zakręconych iluzji].


Inne strony poświęcone skryptom WSH, które warto odwiedzić:

  • Swynk.com
  • win32script – część skryptów tylko dla subscribers’ów, ale dużo ciekawych artykułów również za friko
  • Microsoft Communities – winscript – raczej nie polecam, ale warto wiedzieć, że jest. Jesto to forum poświęcone skryptom i czasem nawet ktoś pomoże…
  • ale przede wszystkim polecam korzystanie z MSDN’a – wiele artykułów, przykładów, opisy mechanizmów etc itd. Można sobie zainstalować lokalnie [jeśli ktoś ma dostęp] ale jest również on-line’owo na stronach microsoft’u
  • i jeszcze dodam na koniec, że stron o skryptach jest bardzo dużo, jednak są one dostępne niemal wyłącznie po angielsku. osoby, które znają polskie strony prosze o kontakt – z chęcią nawiążę współprace z osobami zajmującymi się tą dziedziną.