Artykuły

A A A
Drukuj Ekportuj do PDF
Opublikowane: 2004.01.26 0:00 | Paweł Jeżowski | Aktualizacja: 2011.10.14 17:32

Wstęp do WSH i WMI

tagi: WMI
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.

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:

Właściwości pliku VB

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.

wiersz polcenia - CScript

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ł (Jurek) JeżowskiPaweł 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.

Paweł (Jurek) Jeżowski

Autor: Paweł Jeżowski

Spis treści

Paweł Jeżowski jest MCT, MCDBA, MCSD, pełni stanowisko ITPro Audience Marketing Manager w Microsoft Polska


Komentarze 22 Masz uwagi do tej strony? Napisz

michal 2004.01.26 22:56
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Paweł,
krótkie, konkretne odcinki na temat, o dużej częstotliwości ukazywania się - to jest to. Już czuję potencjał tego cyklu! Jak często planujesz publikacje?
--
See sharp!
--
user_428 2004.01.27 3:33
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
...który powie mi jak zaczarować z poziomu skryptu zaawansowane uprawnienia dla plików i folderów, tak aby móc panować nad ustawieniami specialnymi *-)

--
MOTD: podnieś bezpieczeństwo swojego konta, użwaj w haśle znaków specialnych np. ' " , a napewno *nikt* się nie zaloguje na twoje konto!
MOTD: podnieś bezpieczeństwo swojego konta, użwaj w haśle znaków specialnych np. ' " , a napewno *nikt* się nie zaloguje na twoje konto!
noise 2004.01.27 8:46
0 oceń pozytywnie   oceń negatywnie 0
avatar VIP
 
jesli faktycznie beda sie czesto ukazywac. Bo jesli nie to wg mnie sa zbyt krotkie :(
Ale temat jak najbardziej ciekawy:) (b)
--
NOSFERATU A SYMPHONY OF HORROR

Robert Stuczynski (Noise) - Microsoft MVP

Jurek_Microsoft 2004.01.27 22:57
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Dzięki za słowa zachęty :)
Cykl przewidziany na 15 odcinków :od podstaw VBSCRIPT do zaawansowanych zagadnień WMI i scriptingu, plus trzy odcinki na podstawie pomysłów czytelników.
Przewiduje publikację trzech odcinków miesięcznie, a na pewno minimum dwóch.
Spis publikacji jest gotowy i na pewno redakcja opublikuje go niedługo.
Jeżeli chodzi o długość, odcinki będą się wydłużać. Drugi odcinek jest gotowy jest dłuższy, dla niektórych nudny (podstawy) i niedługo się pojawi.

pozdrawiam wszystkich

Paweł Jeżowski(Jurek)
ITPro Audience Marketing Manager
Microsoft

Paweł Jeżowski(Jurek)

www.one2dive.com

legrooch 2004.01.28 12:57
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Jedyne co ja wymyśliłem swego czasu(i działało) to serwis pracujący na koncie LOCAL_SYSTEM i działanie poprzez niego. Na prawa do domeny jeszcze nie wpadłem :)
matid 2004.01.30 16:24
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Co zrobić, jeśli po uruchomieniu skryptu przez WScript otrzymuję błąd - "Brak aparatu skryptów dla plików o rozszerzeniu ".vbs" ? Pracuję pod Win 2003 Enterprise.
matid
matid
jarek.sm 2004.02.20 18:00
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Zaczyna sie ciekawie choc krotko !
Zobaczymy jak bedzie dalej !

Jarek
"Network is not solution for your life, but you need it."
"Network is not solution for your life, but you need it."
mick_23 2004.02.22 19:21
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Co można uzyskać dzięki WMI ??
Każdy komponent Windowsa jest dostępny ??

Słyszałem że dzieki WMI jest się bogiem Windy :D

Pozdrawiam
Jurek_Microsoft 2004.02.27 21:51
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Nie każdy komponent jest dostępny,ale z wersji na wersję WMI coraz więcej.

Aby być Bogiem Windy najlepiej jest zapoznać sie z API Windows W C, ale ostrzegam że to droga nie usłana różami. Ale z WMI i COM dedykowanymi można uzyskać często podobny efekt
Paweł Jeżowski(Jurek)
ITPro Audience Marketing Manager
Microsoft

Paweł Jeżowski(Jurek)

www.one2dive.com

Jurek_Microsoft 2004.02.27 21:56
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Już nie długo będzie więcej jak tylko wymyślę jak można żyć bez snu :-).
Wszystkich oczekujących na kolejny odcinek przepraszam za opóźnienia, jest gotowy od ponad trzech tygodni i mam nadzieję że w weekend go złożę i opublikuję.
Paweł Jeżowski(Jurek)
ITPro Audience Marketing Manager
Microsoft

Paweł Jeżowski(Jurek)

www.one2dive.com

itpro 2004.05.07 19:05
0 oceń pozytywnie   oceń negatywnie 0
avatar VIP
 
Korzystasz może z którejś wersji Visual Studio? Polecam forum http://groups.msn.com/windowsscript/_homepage.msnw?pgmarket=en-us tam znajdziesz odpowiedź na swoje pytanie.
hermanluk 2004.05.09 15:18
0 oceń pozytywnie   oceń negatywnie 0
avatar Ekspert WSS
 
No i gdzie jest kolejna część *-) *-) *-)

-----
Athlon 1GHz, 320 MB RAM, GF4 MX440 8X 64MB, Teac 52x24x52, WD 800JB.
Jurek_Microsoft 2004.06.25 14:42
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Jest mi niezmiernie głupio przed Wami że nie dotrzymuje danego słowa miały być częste małe odcinki i nic z tego nie wyszło. Przepraszam wszystkich którzy liczyli na kolejne odcinki. Mam nadzieje że w miesiącach wakacyjnych będę miał mniej obowiązków i będę mógł kontynuować bo wiem ze spotkań że teamatyka ciekawa i waro o tym pisać.
Paweł Jeżowski(Jurek)
ITPro Audience Marketing Manager
Microsoft

Paweł Jeżowski(Jurek)

www.one2dive.com

hermanluk 2004.08.03 16:40
0 oceń pozytywnie   oceń negatywnie 0
avatar Ekspert WSS
 
No wakacje już w połowie.

Mam nadzieję że się wkrótce zaczną pojawiać kolejne części...
-----
ARE YOU INSANE?? :D
hermanluk 2004.09.10 14:16
0 oceń pozytywnie   oceń negatywnie 0
avatar Ekspert WSS
 
Już po wakacjach, a dalszych części ani widu, ani słychu :(
-----
ARE YOU INSANE?? :D
Lord Vorlund 2004.10.07 13:13
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Panie Pawle, bardzo proszę i gorąco zachęcam do opublikowania drugiej części kursu, śmiało, czekamy z niecierpliwością. Wiem, że ma Pan wiele pracy jako trener ;-), ale druga część ("chwalił" się Pan) jest gotowa. Proszę ją wrzucić na stronkę. Pozdrawiam i z góry dziękuję
(b) Pana zdrowie
pawlos28 2004.11.02 20:35
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Moj imienniku, jezeli zdolasz mnie czegos nauczyc, a bede sumiennie wykonywal Twoje cwiczenia - obiecuje, to bede wdzieczny Tobie do konca swiata i jeszcze jeden dzien dluzej, a ponadto masz u mnie duze (b) , a wiec czekam na kolejne lekcje, instrukcje i wskazowki. Pozdrawiam, Pawle oby tak dalej !! ;)
Pozdrawiam wszystkich serdecznie
Pawlos Mudrikos
--------------------------------------- ΠΑΥΛΟΣ MOYΔΡΙΚΟΣ Chief Information Officer (CIO) CNA, MCP, MCSA, NCLP, CCNA
jasiukiewicz 2005.01.19 14:48
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Witam Serdecznie Po Raz Pierwszy!

:)

Jestem tuż po rejestracji w tym serwisie i bardzo mi sie podoba.. mam nadzieję, że uda mi się aktywnie uczestniczyć w "TYM" :)

Co do kursu i pomysłów użytkowników to mam parę propozycji:
1. omówienie działania skryptow Logon/Logout
2. cos na temat typów plikow w systemach MS- szczególnie tych zagadkowych, jak te ktore wołamy z podręcznego menu "SendTo"..
3. integracji MS linii poleceń z zewnętrznymi narzędziami typu php-win.exe lub python

ps. dlaczego foldery przeszukiwania definiujemy w archaicznej postaci zmiennej systemowej %PATH% ???


_____________________________
Ryszard Jasiukiewicz
RTS NM T1 Developer
jasiukiewicz@rts.com.pl
+48 696777439
_____________________________ Ryszard Jasiukiewicz RTS NM T1 Developer jasiukiewicz@rts.com.pl +48 696777439
grybal 2005.05.05 14:01
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
mam skrypcik JScript który kopiuje pliki z jednej lokalizacji do drugiej jak zrobić warunek zeby kopiował tylko pliki z najmłodszą datą ?? 8-)
jack 2005.05.27 10:08
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Utknął ten kurs na samym wstępie, szkoda :(
ITPartner 2008.05.08 20:56
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Dalej bez zmian :)

CCCP, CIA+S, RWPG, CBŚ
lorencki 2008.08.05 12:42
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
ciągle bez zmian:)

Dodaj komentarz

avatar

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Autor Paweł Jeżowski
avatar
 

Załóż konto
WSS to serwis, który łączy dziesiątki tysięcy specjalistów IT w Polsce, zajmujących się szeroko pojętymi technologiami Microsoft. Portal działa od 2003 roku, i oprócz setek publikacji technicznych, rozwijającego się forum - portal to ludzie, którzy go tworzą. To właśnie z myślą o nich warto codziennie nas odwiedzać.

Dowiedz się więcej o WSS