Tajna centrala Windows

Wraz z poprawką Service Pack 2 systemu Windows XP miliony komputerów zostały nawiedzone przez UFO (Unidentified File Object) - niezidentyfikowany obiekt plikowy. Niezbadane otchłanie systemu kryją plik wmic.exe - niewykorzystany, bo nieudokumentowany. Tymczasem stanowi potężną centralę, która daje dostęp do każdej śrubki systemu.

Wraz z poprawką Service Pack 2 systemu Windows XP miliony komputerów zostały nawiedzone przez UFO (Unidentified File Object) - niezidentyfikowany obiekt plikowy. Niezbadane otchłanie systemu kryją plik wmic.exe - niewykorzystany, bo nieudokumentowany. Tymczasem stanowi potężną centralę, która daje dostęp do każdej śrubki systemu.

Wszystkie chwyty dozwolone. Teoretycznie można odczytywać informacje o sprzęcie i systemie z ponad 2 tysięcy klas Windows, zmieniać domyślnie zablokowane ustawienia, a nawet zdalnie sterować innymi komputerami z poziomu systemu operacyjnego - a wszystko to dzięki modułowi WMI (Windows Management Instrumentation). WMI rzeczywiście jest godne swojej nazwy, bo stanowi narzędzie administracyjne z prawdziwego zdarzenia. Ma jednak pewien haczyk - wprowadzony w Windows 2000 interfejs WMI zmuszał do żmudnego pisania skryptów. Dość szybko zbierało się dwadzieścia niezbyt przejrzystych wierszy kodu takich jak np. Get-Object("winmgmts:\\.\root\ cimv2:Win32_Processor")...

Przeważnie więcej pisania niż korzyści, bo chciałeś tylko ustalić na przykład identyfikator procesora. Tymczasem stosunkowo nowy moduł WMIC (ostatnia litera C symbolizuje prawdopodobnie wyraz Command-line) wprowadza diametralne zmiany. Dzięki niej wszystko staje się prostsze, choć z pewnością nie trywialne. Nasz artykuł przybliża podstawy korzystania ze składni WMIC i zawiera liczne przykłady praktycznych zastosowań. Na płycie dołączonej do numeru zamieszczamy przykłady, o których mowa w poniższym materiale, a ponadto dodatkowe pliki informacyjne i wsadowe.

WMIC - w mig!

Pierwsza część artykułu objaśnia składnię i zakres poleceń WMIC. Oprócz tego znajdziesz w niej sporo praktycznych przykładów, które możesz stosować w codziennej pracy przy komputerze.

1. Pierwsze kroki

Typowe wyniki konsoli WMIC - list brief zwraca najbardziej istotne właściwości podanej klasy (tu: bieżące procesy). Bardziej szczegółowe wyniki uzyskasz poleceniem get...

Typowe wyniki konsoli WMIC - list brief zwraca najbardziej istotne właściwości podanej klasy (tu: bieżące procesy). Bardziej szczegółowe wyniki uzyskasz poleceniem get...

Plik Wmic.exe jest dostępny tylko w Windows z zainstalowaną poprawką Service Pack 2, a także w Windows Server 2003. SP2 uniemożliwia domyślnie zainstalowanie konsoli WMIC w środowisku Windows XP Home. Jeśli chcesz doinstalować ją ręcznie, zapoznaj się ze wskazówkami w ramce "WMIC@Home - konsola WMIC w XP Home".

Wprawdzie WMIC pozwala odwoływać się do komputerów ze starszymi edycjami systemu Windows, jeśli są wyposażone w moduł WMI (patrz ramka "Co znaczy WMI?"), jednak nie dopuszczają zainstalowania pliku Wmic.exe, więc nie uda ci się korzystać w nich z konsoli WMIC.

Wmic.exe to program działający wyłącznie w trybie wiersza poleceń. Można go uruchamiać dwukrotnym kliknięciem (wówczas przywoła własne okno z wierszem poleceń wmic:root\cli>) lub z poziomu pliku Cmd.exe. Przykłady stosowane w naszym artykule są przystosowane do drugiego z wymienionych wariantów.

Aby dostrzec bogactwo informacji dostępnych tą metodą, wystarczy przywołać okno wiersza poleceń (plik Cmd.exe) i wpisać:

wmic -?

ReturnValue = 0 - gdy konsola WMIC zwraca wartość 0, pomyślnie wykonała zadaną operację. W tym przykładzie chodziło o zamykanie procesów.

ReturnValue = 0 - gdy konsola WMIC zwraca wartość 0, pomyślnie wykonała zadaną operację. W tym przykładzie chodziło o zamykanie procesów.

Po parametrach globalnych są podane tzw. aliasy, czyli nazwy umowne lub pseudonazwy, które ułatwiają posługiwanie się łącznie 71 głównymi klasami Win32. Na przykład alias Process oznacza klasę Win32_Process (w punkcie 6. objaśniamy, jak odwoływać się do klas nieobjętych pseudonazwami). Aby ustalić polecenia dostępne dla danej klasy, musisz posunąć się krok dalej - ilustrujemy to nadal na przykładzie aliasu Process:

wmic process -?

Konsola poda m.in. polecenia get i list do formułowania zapytań. Oba są dostępne we wszystkich klasach. Aby ustalić, jakie właściwości możesz ustalać w poszczególnych klasach, wpisz

wmic process get -?

W przytoczonym przykładzie otrzymasz aż 40 właściwości, o które możesz pytać pojedynczo lub grupowo.

2. Wybór właściwości

Pasażer na gapę - WMIC potrafi sporządzić przejrzysty wykaz programów uruchamiających się wraz z systemem (klucz "Run" i folder Autostart). Dzięki temu łatwo wytropisz nieproszonych gości.

Pasażer na gapę - WMIC potrafi sporządzić przejrzysty wykaz programów uruchamiających się wraz z systemem (klucz "Run" i folder Autostart). Dzięki temu łatwo wytropisz nieproszonych gości.

Polecenia get i list, które służą do wyświetlania informacji systemowych, są zasadniczo równoznaczne, ale pierwsze działa bardziej szczegółowo. Podczas gdy list podaje spis żądanych właściwości, get pozwala pytać o jedną lub kilka właściwości. Na przykład polecenia:

wmic sysdriver get name

wmic sysdriver list instance

dają takie same wyniki. Oznacza to, że lista Instance predefiniowana dla właściwości sysdriver przywołuje polecenie sysdriver get name. Warto korzystać z innych predefiniowanych filtrów list, które oferują przejrzysty wybór podstawowych właściwości. Filtry list brief i list full są dostępne w każdej klasie. Polecenie ... list full działa tak samo, jak get * (lub po prostu get /value) - wyświetla wszystkie właściwości danej klasy. A oto jeszcze jeden przykład:

wmic process list brief

To polecenie wyświetla listę bieżących procesów, która pod względem zawartości jest podobna do informacji podawanych przez menedżer zadań (klawisze [Ctrl Alt Del] i przycisk Menedżer zadań). Gdy wprowadzisz polecenie wmic process list -?, stwierdzisz, że process list brief odpowiada poleceniu

wmic process get ThreadCount,Handlecount, Name,Priority,ProcessId, WorkingSetSize

Zatem które polecenie jest lepsze - get czy list? Gdy interesują cię tylko określone właściwości, korzystaj z dokładniejszego get, np.:

wmic product get name, vendor

W ten sposób uzyskasz nazwy i producentów oprogramowania zainstalowanego za pomocą programu Windows Installer.

Właściwości, które chcesz ustalić, możesz podawać jedna po drugiej, umieszczając je za ciągiem get i oddzielając przecinkami (jw.). Natomiast poszczególne filtry list znacznie skracają wpisywanie i przydają się, gdy szukasz wybranych przez nie właściwości.

Co znaczy WMI?

WMI, czyli Windows Management Instrumentation, to standardowa usługa we wszystkich bieżących edycjach środowiska Windows (Me, 2000 i XP) - w Windows 98 można ją doinstalować. WMI ma dostęp do wszystkich klas Windows, dzięki czemu potrafi zaopatrzyć użytkownika we wszystkie parametry systemowe. Administratorom pozwala sterować zdalnymi komputerami podłączonymi do sieci. Warunek stanowią uprawnienia administratora, WMI zainstalowany w komputerze-kliencie i zezwolenie dostępu ze strony ewentualnej zapory sieciowej.

Ponadto WMI umożliwia modyfikowanie ustawień systemowych, choć jego pierwszoplanowe zadanie polega na informowaniu. Oferuje tu wręcz gigantyczną liczbę opcji. Z WMI można korzystać poprzez skrypty lub z poziomu wiersza poleceń, przywołując plik wmic.exe. Właśnie sposoby użytkowania tego pliku stanowią temat naszego artykułu.

WMIC@Home - konsola WMIC w XP Home

Środowisko Windows XP Home nie sprzyja konsoli WMIC. Przywołanie pliku Wmic.exe kwituje lapidarnym komunikatem o błędzie lub nieistniejącym poleceniu. Aby umożliwić użytkownikom edycji XP Home zgłębianie tajemnic WMIC, znaleźliśmy sposób zainstalowania konsoli w tej odsłonie Windows. Wszystkie pliki nieodzowne do wykonania tej czynności znajdziesz w pakiecie Service Pack 2 do Windows XP (bezpłatny, dostępny w witrynie http://v4.windowsupdate.microsoft.com/pl/default.asp i na płycie dołączonej do PCWK na gwiazdkę 1/2004, rozmiar pliku: ok. 260 MB). Skopiuj nasz plik instalacyjny Pcwwmic_4_xphome.bat z płyty dołączonej do numeru do dowolnego katalogu na twardym dysku, a następnie przeciągnij plik Xpsp2.exe na ikonę tego pliku wsadowego. Najpierw plik BAT rozpakuje poprawkę Service Pack 2 do katalogu %temp%. Partycja, na której się znajduje, musi udostępniać wystarczającą ilość wolnego miejsca - wygospodaruj co najmniej 350 MB. Potem wyodrębni z nich 20 plików wymaganych do działania konsoli WMIC i zapisze je w katalogu %windir%\system32\ wbem\. Na końcu usunie pliki tymczasowe z katalogu %temp%. Gdy zakończy działanie, Windows XP Home wykaże większą chęć współpracy z konsolą. Przywołasz ją, wpisując polecenie wmic w oknie wiersza poleceń.

Kolumny wg alfabetu

Kolumny tabeli get są wyświetlane od lewej do prawej w porządku alfabetycznym poszczególnych właściwości. Po wpisaniu polecenia:

wmic logicaldisk get name,volumename,filesystem

w pierwszej kolumnie pojawi się filesystem (f przed n i v). Kolejność właściwości w poleceniu wmic nie ma na to żadnego wpływu.


Zobacz również