Część z nas wcześniej czy później staje przed problemem automatyzacji zadań administracyjnych. Możemy posługiwać się różnego typu gotowymi narzędziami. Niestety mają one poważną wadę - część z nich jest albo płatna, albo nie posiada odpowiedniej elastyczności. Idealne wówczas stają się dla nas proste skrypty. Prezentujemy zatem wstęp do tworzenia owych skryptów wykorzystując do tego technologię WMI oraz WSH.
Część z nas wcześniej czy później staje przed problemem automatyzacji zadań administracyjnych. Możemy posługiwać się różnego typu gotowymi narzędziami. Niestety mają one poważną wadę - część z nich jest albo płatna, albo nie posiada odpowiedniej elastyczności. Idealne wówczas stają się dla nas proste skrypty. Prezentujemy zatem pierszą część kursu poświęconego tworzeniu owych skryptów wykorzystując do tego technologię WMI oraz WSH.
Czym jest WMI?
Windows Management Instrumentation (WMI) jest kolekcją technologii przeznaczonych do integracji istniejących systemów monitorowania i administracji w jedną architekturę. Najczęstszym sposobem korzystania z WMI są proste skrypty administracyjne odwołujące się poprzez różne interfejsy do architektury WMI. Wraz z pojawieniem się platformy .NET pojawiła się również możliwość odwoływania się do składników WMI poprzez aplikacje pisane dla tej platformy. Te i inne tematy dotyczące WMI zostaną omówione w późniejszych odcinkach tego kursu.
Czym jest WSH?
Windows Script Host (WSH) jest zestawem komponentów systemu, dzięki którym możliwe jest uruchamianie i działanie skryptów. Obecnie WSH jest obsługiwane we wszystkich 32-bitowych systemach Windows.
Środowisko WSH składa się z trzech warstw:
- Warstwy hosta. Pamiętajmy, skrypty nie mogą działać samodzielnie, potrzebują do uruchomienia żywiciela zwanego hostem. Przykładem hosta jest IIS lub Internet Explorer. Nie oznacza to jednak, że jesteśmy ograniczeni do skryptów uruchamianych za pomocą przeglądarki internetowej. Istnieją jeszcze dwa bardzo ważne dla nas hosty WScript oraz CScript umożliwiające łatwe uruchamianie plików zawierających kod skryptu.
- Warstwy skryptu. Tutaj znajduje się kod.
- Warstwy bibliotek lub komponentów systemowych
Poniżej przedstawione jest typowe środowisko WSH.

Jak widzimy skrypty mogą być tworzone za pomocą Visual Basic Script (język skryptowy oparty o Visual Basic) oraz JSCRIPT. Oprócz tego możemy używać innych znanych języków skryptowych takich jak Perl czy Python pod warunkiem zaimplementowania obsługi tego języka w hoście oraz zainstalowaniu odpowiednich bibliotek w systemie.
„Hello World” czyli najprostszy skrypt
Zaczynamy od uruchomienia notatnika i zapisaniu następującej komendy:
WScript.Echo "Hello World!"
Zapisujemy plik pod nazwą z rozszerzeniem .vbs np. hello.vbs. Po rozszerzeniu można domyśleć się, że jest to plik napisany w VBSript i tak właśnie jest.
Uruchomienie jest dosyć proste, wystarczy kliknąć na plik. Powinno pojawić się okienko wyświetlające tytułowy napis.
Ktoś mógłby teraz się zapytać gdzie jest ten host, o którym było napisane wcześniej. Aby przekonać się, że skrypt uruchamiany jest za pomocą hostu wystarczy wyświetlić właściwości naszego pliku. Spójrzmy:

Jak widać, host nazywa się Microsoft Windows Based Script Host czyli w skrócie WSCRIPT. Jest to host umożliwiający uruchomienie skryptu wyświetlającego rezultat komendy Echo w postaci prostego okienka z komunikatem. W naszym przypadku będzie to napis Hello Word!
Drugim hostem, którego możemy używać jest CSCRIPT. Wyświetla on komunikaty bezpośrednio w oknie konsoli (Command Prompt). Jak z niego skorzystać? Jednym ze sposobów jest uruchomienie go z konsoli wraz z podaniem jako argument wywołania nazwy naszego pliku ze skryptem, np.

Drugim ze sposobów jest podanie polecenia:
CScript.exe //H:CScript
lub
WScript.exe //H:CScript
Wykonanie tej komendy powoduje zmianę domyślnego hosta na CScript (Console Script). Od tego momentu, aby dane wyświetlone były na konsoli wystarczy wpisać nazwę pliku czyli hello.
Jeżeli chcemy przywrócić ustawienie pierwotne należy zmienić argument komendy na WScript czyli:
CScript.exe //H:WScript
Zmiana domyślnego hosta jest obowiązująca do momentu, kiedy się nie wylogujemy.
Po ponownym zalogowaniu domyślny host odczytywany jest z rejestru. Aby to zmienić wystarczy użyć parametru //S.
Zestaw wszystkich parametrów uzyskujemy podając parametr //?.
Poniżej przedstawiam opis wszystkich parametrów.
//? Wyświetla wszystkie parametry.
//I tryb interaktywny, wyświetla komunikaty użytkownika oraz ewentualne błędy skryptu (domyślne ustawienie).
//B Nic nie jest wyświetlane na konsoli.
//T:nn Umożliwia podanie wartości timeout w sekundach, po którym skrypt kończy działanie. Wartość domyślna nieokreślona.
//LOGO Wyświetla baner informacyjny o wersji hosta (domyślne ustawienie).
//NOLOGO Nie jest wyświetlany baner informacyjny.
//H:CScript Rejestruje CScript.exe jako domyślny host dla uruchamiania skryptów.
//H:WScript Registers WScript.exe jako domyślny host dla uruchamiania skryptów.
//S Zapisuje ustawienia użytkownika do rejestru.
//E:engine Skrypt wykonywany jest za pomocą podanego silnika skryptów (engine).
//D Włącza obsługę debuggera.
//X Uruchamia skrypt w debuggerze.
//JOB:<JobId /> Uruchamia odpowiednią sekcję <JobId /> z pliku typu WSF.
//U Obsluga Unicode w operacjach wejścia i wyjścia na konsoli.
Dodatkowe zasoby
TechNet Script Center
MSDN - Windows Script
DevGuru VBScript Introduction
VisualBasicScript.com
Informacje o autorze
Paweł Jeżowski to absolwent Elektroniki i Technik Informatycznych PW, trener Microsoft.
Posiada tytuły MCT, MCDBA, MCSD, MCAD, MCAD.NET, MCSD.NET.
Pracuje w Microsoft Polska jako ITPro Audience Marketing Manager.

Autor: Paweł Jeżowski
Spis treści
Paweł Jeżowski jest MCT, MCDBA, MCSD, pełni stanowisko ITPro Audience Marketing Manager w Microsoft Polska