tajna centrala windows


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ą się w pliku wmic.exe - niewykorzystanym, 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. Artykuł przybliża
podstawy korzystania ze składni WMIC i zawiera liczne przykłady praktycznych zastosowań.
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
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".
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...
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 -?
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 -?
ReturnValue = 0 - gdy konsola WMIC zwraca wartość 0, pomyślnie wykonała zadaną operację. W tym przykładzie chodziło o zamykanie procesów.
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
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
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.
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, znalezliś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.
3. Kolorowo czy dosowo?
Plik wmic.exe pozwala na modyfikację sposobu wyświetlania podawanych informacji. Najprostszą możliwość zmiany
tabelarycznego formatu get, który okazuje się zazwyczaj za szeroki, zapewnia przełącznik ... get value. Porównaj np. wyniki
polecenia wmic os get i polecenia wmic os get /value. Pierwszy wariant praktycznie nie nadaje się do prezentowania wyników
bezpośrednio na ekranie, drugi podaje je w przejrzystej, czytelnej postaci.
W folderze z plikiem wmic.exe, czyli w katalogu %windir%\system 32\wbem, znajdziesz wzorce formatowania XSL. Najbardziej
atrakcyjne efekty uzyskasz za pomocą wzorców Htable.xsl i Hform.xsl. Aby z nich skorzystać, musisz użyć przełącznika /format,
który przestawi polecenie get z domyślnego formatu Unicode na HTML. Oba polecenia, które zamieszczamy poniżej, uzyskują
te same rezultaty. W pierwszym wariancie użyto przekierowania za pomocą operatora > powszechnie stosowanego w oknie
wiersza poleceń, w drugim zaś /output - wewnętrznego argumentu konsoli WMIC.
wmic os get /format:hform > os.htm
wmic /output:os.htm os get /format:form
Analiza wyników - konsola WMIC potrafi umieszczać dane wyjściowe bezpośrednio w zmiennych środowiskowych,
co znacznie ułatwia ich dalsze przetwarzanie, np. za pomocą plików wsadowych.
Gdy przywołasz utworzony w ten sposób plik os.htm, w oknie przeglądarki zobaczysz przejrzystą, wielobarwną tabelę HTML,
zawierającą najistotniejsze parametry systemu operacyjnego. Możesz grupować wyniki kilku klas w jednym pliku.
Zastosuj w tym celu polecenie dopisywania danych do pliku (append) za pomocą operatora >> bądz wewnętrznego argumentu
konsoli wmic /append:...
Jako punkt docelowy wyników WMIC akceptuje nie tylko plik, lecz również Schowek Windows. Dotyczy to obu argumentów -
/append i /output - np. wmic /output:clipboard ... W formacie wynikowym Htable masz ponadto możliwość sortowania tabeli
według określonej kolumny. Oto przykład:
wmic sysdriver get name, pathname,startmode /format: htable:"sortby=StartMode" > drv.htm
W przeciwieństwie do pozostałej składni konsoli WMIC opcja sortby rozróżnia małe i wielkie litery. Zatem wpisując startmode w
powyższym przykładzie, nie uzyskałbyś pożądanego rezultatu.
Oprócz filtrów specjalnych opisanych powyżej możesz używać prostych filtrów standardowych dostępnych w wierszu poleceń
(chociażby Find.exe czy Sort.exe), aby wyniki były wyświetlane tak, jak sobie życzysz. Oto przykład:
wmic sysdriver get name, pathname,startmode | sort /+63
Również w tym wypadku tabela sterowników zostanie posortowana według parametru StartMode, bo jest umieszczony
począwszy od 63 kolumny tabeli.
4. Ingerencje
Oprócz instrukcji get i list, które służą wyłącznie do odczytywania żądanych informacji, wiele klas, choć nie wszystkie,
udostępnia polecenia set do modyfikowania określonych ustawień, a także metody przywoływane poleceniem call. Czytając
tekst pomocy poszczególnych klas, dowiesz się, które z nich dopuszczają modyfikowanie właściwości poleceniem set czy
przywoływanie metod poleceniem call. Poniższy prosty przykład demonstruje działanie polecenia set, ograniczając rozmiar
rejestru do 20 MB.
wmic registry set proposedsize=20
Wprawdzie podobną zmianę możesz wprowadzić również z poziomu graficznego interfejsu Windows, jednak szukanie
właściwego okna zajmie ci z pewnością więcej czasu niż wstukanie tego polecenia. Jak ukazuje kolejny przykład, WMIC
pozwala również definiować globalne zmienne systemowe:
wmic environment create name="ZB", username= "", variablevalue="1"
Poleceniem delete możesz w podobny sposób usuwać niepotrzebne zmienne. Z kolei polecenie:
wmic logicaldisk call ExcludeFromAutochk "E:"
wyklucza napęd E: z automatycznej procedury Checkdisk, stosowanej podczas uruchamiania systemu.
Chcąc przywoływać metody za pomocą polecenia call, musisz najpierw sprawdzić listę parametrów i ich typy wymagane przez
określoną metodę. W wypadku ExcludeFromAutochk chodzi o pojedynczy parametr ciągu, który należy ująć w cudzysłów.
Ewentualne dodatkowe parametry należy wstawiać po przecinku.
HTML dziś w ofercie - domyślny format wyników to tekstowy Unicode, lecz przy zastosowaniu argumentu /format,
konsola prezentuje wyniki przejrzyście w HTML-u.
WMIC potrafi ponadto inicjować i zamykać procesy. Służą do tego polecenia wmic process call create i wmic process call
terminate. Argument create pozwala nawet wczytywać kod wykonywalny ze strumienia NTFS. Wpisując na przykład polecenia:
type calc.exe > dummy.txt:calc
wmic process call create "dummy.txt:calc"
uruchomisz kalkulator systemowy zapisany w strumieniu pliku tekstowego.
Elementy docelowe
Gdy WMI trafia na wiele elementów docelowych, musisz uzbroić się w cierpliwość. Dlatego definiuj bardzo rygorystyczne filtry - przede
wszystkim w klasach datafile (pliki) i fsdir (foldery). WMI ustala wszystkie właściwości każdego z elementów, dlatego operacja trwa wyjątkowo
długo.
Kalendarz inaczej
Klasa win32_currenttime zapewnia dane kalendarzowe, których nie uzyskasz w żaden inny sposób.
Na przykład polecenie:
wmic path win32_currenttime get /value
podaje w postaci numerycznej m.in. bieżący dzień tygodnia, tydzień miesiąca czy kwartał.
Kontrola logowania
Aby dowiedzieć się, ile razy logowali się w twoim systemie poszczególni użytkownicy, użyj polecenia:
wmic netlogin get name,numberoflo gons
Priorytety
Metoda setpriority zmienia bieżący priorytet aplikacji. Może przybierać następujące wartości:
32 normalny
64 niski
128 wysoki
256 czasu rzeczywistego
16384 niższy od normalnego
32768 wyższy od normalnego
Przywołanie metody setpriority wymaga stosowania filtru where, np.
wmic process where "name='winword.exe'" call setpriority 64.
5. Filtrowanie elementów
W punktach 2 i 3 opisaliśmy pokrótce, jak zredukować liczbę właściwości, aby poprawić czytelność wyników. Przede wszystkim
ingerencja w system przy użyciu argumentów set i call wymaga uprzedniego ograniczenia elementów, do których się odnoszą.
W przypadku takiej klasy jak Datafile, która obejmuje swoim zasięgiem działania wszystkie pliki zgromadzone na dyskach
lokalnych i sieciowych, przywołanie bez zastosowania filtrów byłoby z góry skazane na niepowodzenie.
Kolumny tabeli get są zawsze uporządkowane w kolejności alfabetycznej (tu np. filesystem przed pozostałymi kolumnami)
niezależnie od tego, w jakiej kolejności są podane przez użytkownika.
Elementy docelowe filtruje się za pomocą słowa kluczowego where, wstawiając je bezpośrednio za identyfikatorem klasy. Aby
unikać problemów z niewłaściwą składnią poleceń, ujmuj klauzule filtrowania w cudzysłów, a ewentualne właściwości ciągów
poprzedzaj i zamykaj apostrofem, np.:
wmic datafile where "drive='c:' and extension='JPG' and filesize<10000" call delete
Powyższe polecenie usuwa z partycji C: wszystkie pliki JPG, których rozmiar jest mniejszy od 10 000 bajtów. Gdy zechcesz
ograniczyć elementy docelowe do określonej ścieżki, musisz za każdym razem ujmować ją w podwójny odwrotny ukośnik, np.
drive='c:' and path='\\windows\\'.
Poniższy filtr inicjuje wyświetlanie tylko tych sterowników, które są w danej chwili aktywne (nieaktywne zostają odfiltrowane).
wmic sysdriver where "started=true" get name,pathname
Następny przykład zamyka Eksplorator, jeśli w danym momencie pochłania ponad 30 MB pamięci:
wmic process where "name='explorer.exe' and workingsetsize>30000000" call terminale
Konfiguracja na szybko - tworzenie
plików wsadowych wg tego wzoru
nie trwa długo. Dwukrotne
kliknięcie pliku wynikowego HTML
wyczaruje na ekranie bogate
zestawienie ustawień wszystkich
podzespołów sprzętowych
komputera.
Niektóre metody wymagają z
reguły zastosowania choćby
jednego filtru. Nie uda ci się
na przykład zamknąć
systemu poleceniem wmic os
call shutdown, dopóki nie
dołączysz do niego
(dowolnej) właściwości:
wmic process where
"status='ok'" call
shutdown
Oprócz operatorów
logicznych =, <>, > i < słowo
kluczowe while akceptuje
jeszcze jeden operator
właściwości ciągów. like, bo
tak się nazywa, umożliwia
odwoływanie się do grup
podobnie brzmiących
elementów docelowych. Na przykład polecenie:
wmic process where "name like '%xplore%'" call terminate
zamknie nie tylko Eksplorator systemu Windows, lecz również przeglądarkę Internet Explorer. A poleceniem:
wmic datafile where "drive='d:' and path like '%backup%'" call
compress skompresujesz wszystkie pliki z folderu Backup na partycji D: łącznie z podfolderami, bo w ich ścieżce dostępu
również występuje ciąg znaków Backup.
6. Klasowe wędrówki z przewodnikiem
Jeśli już teraz pogubiłeś się w 71 klasach predefiniowanych jako nazwy umowne (aliasy, patrz punkt 1) i obejmujących
niezliczone właściwości i metody, pamiętaj, że WMIC potrafi odwoływać się do każdej z ponad 1000 klas Windows (niezależnie
od predefiniowanych aliasów). Zamiast wmic musisz podać w tym celu:
wmic path
Pozostała część składni jest zgodna ze składnią stosowaną w wypadku aliasów.
W ramach tego artykułu nie sposób przedstawić nawet w zarysie klasy systemu Windows.
Zegar inaczej - klasa
win32_currenttime zwraca bieżącą
datę i godzinę w postaci tekstowej,
uwzględniając nawet kwartał czy
numer tygodnia.
Niemniej jednak podamy
przykład zastosowania jednej
z klas. Alias Server korzysta
z klasy Win32_PerfRaw
Data_PerfNet_Server.
Przywołany w połączeniu z właściwością Filesopen zwraca liczbę otwartych w danej chwili współdzielonych plików. Do
kontrolowania udostępnionych zasobów bardziej przydatna okazuje się klasa Win32_Server Connection. Za pomocą polecenia:
wmic path Win32_Ser verConnection get computername,numberoffiles, username
ustalisz oprócz liczby otwartych udostępnionych plików identyfikator komputera i konto użytkownika sieci, który się do nich
odwołuje.
Operator like
Operator like dopuszcza cztery wieloznaczniki:
like % dowolne znaki w dowolnej liczbie
like _ jeden dowolny znak
like [g-i] jeden znak ze zbioru g, h, i
like [^g-i] jeden znak, lecz nie g, h ani i
Lista kodeków
Aby uzyskać spis kodeków multimedialnych zainstalowanych w systemie, wpisz:
wmic path Win32_CodecFile get name,filena me,description
Zlecenia dla konsoli
Często używane polecenia konsoli WMIC warto umieszczać w plikach wsadowych BAT, te zaś przywoływać w razie potrzeby dwukrotnym
kliknięciem myszy. Jeśli wyniki są wyświetlone w oknie wiersza poleceń (CMD), wpisz polecenie pause na końcu pliku. W przeciwnym razie okno
zostanie zamknięte, zanim zdążysz cokolwiek przeczytać. Pamiętaj, że konsoli można przekazywać również zwyczajne pliki tekstowe
zawierające stos poleceń. W tym wypadku nie mogą zaczynać się od słowa kluczowego. Plik ten wczytasz do konsoli, wpisując wmic < tekst.txt.
Przykładowe pliki Wmic_hardware_wide.bat i Wmic_hard-ware_tall.bat (na płycie 8/2005 PCWK) przygotowują plik, z którego konsola
pobiera pózniej dane, a następnie uruchamiają program Wmic.exe i inicjują eksportowanie konfiguracji sprzętowej do pliku HTML.
7. Wznawianie akcji
Argumenty /every: i /repeat: stosowane w poleceniach get i list nakazują konsoli WMIC nieustannie protokołować
określone informacje.
wmic cpu get loadpercentage /every:3
Zagraj to jeszcze raz... - korzystając z
argumentów /every i /repeat zmusisz
konsolę do cyklicznego wykonywania
powierzonego jej zadania.
Powyższe polecenie zwraca w
trzysekundowych odstępach czasu
bieżące obciążenie procesora.
Wykonuje tę czynność dopóty,
dopóki nie przerwiesz jej, naciskając
klawisze [Ctrl C]. Dodatkowym
argumentem /repeat: możesz
ograniczyć liczbę powtórzeń (np. do
dziesięciu: /repeat:10). W kolejnym
przykładzie WMIC zgłasza co pół
minuty rozmiar wolnej pamięci
roboczej w KB.
wmic os get FreePhysicalMemory /every:30
8. Automatyczna analiza
WMIC oferuje ogromny wybór informacji. Znacznie skromniejsze możliwości zapewnia w zakresie automatycznego
przetwarzania zdobytych danych. W tym wypadku lepszym sposobem okazuje się napisanie skryptu VBS. Analiza informacji z
konsoli WMIC za pomocą plików wsadowych i środków dostępnych w oknie wiersza poleceń jest, co prawda, możliwa, wymaga
jednak sporego doświadczenia. Stopień trudności ukazuje poniższy, i tak stosunkowo prosty przykład:
for /F "delims== tokens=1" %n in ('wmic os get serialnumber') do set sn=%n
W tym przypadku numer seryjny systemu Windows zostaje umieszczony w zmiennej sn i można go przywoływać za pomocą
%sn%. Gdy Windows zapisuje wyniki w pliku tekstowym, który chcesz poddać dalszej analizie, zawsze stosuje format Unicode.
To bardzo komplikuje przetwarzanie pliku wynikowego za pomocą plików wsadowych, ale jest proste rozwiązanie:
wmic nicconfig get /value | type > nic.txt
Polecenia type, sort, a nawet find przekształcają dane wynikowe na format ASCII. Dzięki temu można je wygodnie
przeszukiwać, filtrować i analizować za pomocą plików wsadowych.
9. Pecet zdalnie sterowany
Konsola WMIC została zaprojektowana przede wszystkim z myślą o administratorach, którzy mają centralnie zarządzać
określonym parkiem komputerowym firmy lub instytucji. Misja ta wymaga zdalnego dostępu do komputerów klienckich w sieci.
Dostęp w tym trybie umożliwia polecenie wmic /node. Aby dostać się do określonego komputera, musisz znać identyfikator
konta z uprawnieniami administratora w tymże pececie. Ponadto musi być w nim zainstalowany system operacyjny Windows
2000, XP Professional bądz Server 2003 i nie mogą być włączone programowe zapory sieciowe. Jeśli są spełnione powyższe
warunki, dostęp do pojedynczego komputera uzyskasz za pomocą polecenia o następującej składni:
wmic /node:lub
adres_IP> /user: /password:
Bez wklepywania - wszystkie
przykłady z tego materiału
znajdziesz w pliku na płycie
dołączonej do numeru 8/2005
PCWK.
Jako polecenia można używać
wszelkich klas i metod
dostępnych w konsoli WMI.
Chcąc odwołać się zdalnie do
większej liczby komputerów,
wpisz za argumentem /node
ich nazwy lub adresy IP,
oddzielone przecinkami. W
wypadku obszernych sieci,
liczących wiele komputerów,
najwygodniej jest odwoływać
się do nich za pośrednictwem
pliku tekstowego. Umieść w
nim ich nazwy sieciowe lub
adresy IP, rozdzielone
przecinkami (jak po
argumencie /node - patrz
wyżej). Stosując argument
/node:@,
nakażesz konsoli pobrać listę
komputerów docelowych z
utworzonego uprzednio pliku.
Krótko i zwięzle - tym poleceniem uzyskasz
spis podzespołów sieciowych.
Jeśli chcesz zrezygnować z
podawania swojego identyfikatora
(loginu) i hasła, zaloguj się w swoim
systemie, stosując dane konta z
uprawnieniami administratora w
żądanym komputerze sieciowym.
WMIC - w praktyce
Druga część artykułu przedstawia kilka przykładów stosowania konsoli WMIC do rozwiązywania dość wymagających zadań.
Należą do nich przede wszystkim prace wykonywane w sieci, dzięki którym administratorzy nie muszą biegać od jednego
komputera do drugiego.
10. Wsadowe konfiguracje
Gdy zechcesz utworzyć ogólne zestawienie parametrów dotyczących określonego zagadnienia, np. konfiguracji sieci, sprzętu
lub systemu operacyjnego, warto zrealizować to za pomocą pliku wsadowego, takiego jak Wmic_hardware.bat. Właściwa praca
polega na znalezieniu odpowiednich klas, a w razie potrzeby także koniecznych właściwości. Pozostałe czynności są
nadzwyczaj proste. Wystarczy wpisać poszczególne polecenia do pliku tekstowego, poprzedzając każde z nich słowem
kluczowym echo, a następnie przekazać gotowy plik konsoli WMIC. Plik wynikowy możesz obejrzeć w przeglądarce
internetowej lub w edytorze tekstowym. Wspomniany powyżej plik wsadowy Wmic_hardware.bat tworzy na przykład zbiór
Hardware.htm, który gromadzi informacje o wszystkich istotnych podzespołach komputera i jest zapisany w formacie HTML.
Test autostartu
Za pomocą aliasu startup ustalisz szybko, jakie procesy uruchamiają się automatycznie w systemie. Są wyszczególnione w folderze Autostart i
w kluczu "Run" rejestru.
Karta sieciowa
Alias nicconfig odczytuje dane konfiguracyjne wszystkich podzespołów sieciowych. Chcąc ograniczyć zakres podawanych informacji, aby
dotyczyły tylko karty sieciowej, użyj polecenia:
wmic nicconfig where index=1 get /value
Index 1 odnosi się zawsze do głównej karty sieciowej. Zwięzły spis wszystkich składników sieci uzyskasz poleceniem wmic nic get index,name.
Szybciej w sieci
Za pomocą argumentu wmic /failfast:on ... możesz przyspieszyć nawiązywanie połączeń sieciowych z innymi komputerami. Gdy pecet docelowy
jest nieosiągalny, konsola nie zwleka, lecz przechodzi do następnego komputera.
11. (De)instalowanie
Administratorzy sieci stoją często przed koniecznością zainstalowania lub odinstalowania tej samej aplikacji w licznych
komputerach podłączonych do sieci. Jeśli oprogramowanie to korzysta z modułu Windows Installer (MSI), jak np. pakiet Office,
można ułatwić sobie zadanie za pomocą konsoli WMIC.
"Zabójca" procesów na każde żądane - wykorzystujący możliwości WMI skrypt TaskKiller
tworzy listę wszystkich procesów i pozwala je łatwo zamykać.
Za instalowanie i odinstalowywanie aplikacji obsługiwanych przez Windows
Installer odpowiada w konsoli WMIC alias Product i należące do niego metody
install i uninstall. Większość programów i aktualizacji Microsoftu to pliki MSI.
Niektóre z tych aplikacji umieszczono w samodzielnie dekompresującym się
archiwum EXE, które należy rozpakować przed zainstalowaniem.
Aby instalacja w trybie zdalnym powiodła się, muszą być spełnione określone
warunki. Przede wszystkim musisz mieć zdalny dostęp do komputerów w sieci
(jak opisano w punkcie 9) - najlepiej bez wpisywania loginu i hasła. Ponadto
musisz skopiować folder instalowanej aplikacji do wszystkich żądanych
komputerów w sieci. W przeciwnym razie program instalacyjny nie odnajdzie
wymaganych plików. Kopiowanie wykonaj, korzystając z udostępnień
administratora. Folder z aplikacją do zainstalowania umieść np. w katalogu
Setup na partycji C: zdalnego komputera. Powtórz to w każdym z pecetów w
sieci. Potem możesz zainicjować instalowanie oprogramowania z poziomu
konsoli WMIC. Otwórz w tym celu okno wiersza poleceń i wpisz następujące
polecenie:
wmic /node:,,<...> product call install True,
"","C:\Setup\\.MSI"
Zamiast zmiennych i podaj stosowne identyfikatory komputerów w sieci lub ich adresy IP. Zamiast
zmiennej wpisz nazwę folderu (na dysku w komputerze zdalnym) zawierającego pliki instalacyjne, a
zmienną .MSI zastąp nazwą pliku wykonywalnego, który ma być uruchomiony w celu zainstalowania
aplikacji. Pamiętaj, że możesz dowolnie rozszerzać listę komputerów sieciowych, jak opisaliśmy w punkcie 9. Ważne tylko, aby
folder instalacyjny i login administratora były takie same we wszystkich systemach, w których należy przeprowadzić czynności
instalacyjne.
W skład bogatych możliwości konsoli WMIC wchodzi również odinstalowywanie programów obsługiwanych przez MSI. Najpierw
ustal nazwę aplikacji, a potem wprowadz następujące polecenie:
wmic /node:,,<...> product where "name=''" call uninstall
12. Aplikacje jak na smyczy
Zdalne uruchamianie i zatrzymywanie aplikacji w innych pecetach może przydawać się nie tylko administratorom sieci
korporacyjnych, lecz również użytkownikom skromnych sieci domowych. Jednak programy w systemach zdalnych uruchamiają
się w trybie nieinteraktywnym. Okno aplikacji nie jest widoczne dla użytkownika systemu, a więc nie ma on możliwości
sterowania jej działaniem ani wpisywania jakichkolwiek danych. Wynika z tego, że celowe jest zdalne przywoływanie tylko
oprogramowania rezydentnego działającego w tle (np. skanera antywirusowego).
Wymagania, co do zdalnego dostępu są dokładnie takie same, jak w wypadku instalowania aplikacji MSI, a stosowny alias to
process. Poniżej przedstawiamy składnię odpowiedniego polecenia:
wmic /node:, , <...> process call create ""
Zmienna ma zawierać przywołanie żądanej aplikacji. Jeśli znajduje się w którymś z folderów nieobjętych ścieżką
domyślnego wyszukiwania, musisz poprzedzić nazwę programu całkowitą ścieżką dostępu. Podobnie możesz zamykać procesy
w systemie zdalnym lub lokalnym. Na przykład polecenie:
wmic /node: process where "name='iexplore.exe'" call terminate
zamyka wszystkie egzemplarze Internet Explorera w zdalnym pececie, którego nazwa lub adres IP jest podany w zmiennej
.
13. Restart na odległość
W zdalnym sterowaniu grupy komputerów w sieci nie może brakować funkcji zamykania lub restartowania systemu
operacyjnego. Druga z wymienionych możliwości przydaje się do zakończenia rozpoczętych uprzednio czynności
instalacyjnych. Również w tym wypadku konsola WMIC udostępnia stosowne narzędzie. Alias os oferuje aż trzy metody -
shutdown, reboot i win32shutdown. Pamiętaj, że także podczas tej czynności obowiązują warunki dostępu zdalnego. W każdym
z komputerów, które chcesz wyłączyć lub zrestartować, musisz mieć uprawienia i konto administratora.
Aby ponownie uruchomić system w określonych lub wszystkich komputerach podłączonych do sieci, wpisz polecenie:
wmic /node:, ,<...> os where "status='ok'" call reboot
Jeżeli zamiast reboot użyjesz metody
shutdown, wybrane przez ciebie komputery
zostaną wyłączone.
Jeśli chcesz być absolutnie pewien, że nikt
ani nic nie powstrzyma zamknięcia zdalnie
sterowanego systemu, możesz zastosować
najbardziej rygorystyczny wariant. call
win32shutdown kończy działanie systemu
Windows niepowstrzymanie i bez względu na
otwarte pliki.
Wtórna literatura - więcej informacji o WMI(C)
znajdziesz w Internecie. Ten plik zawiera łącza do
najciekawszych witryn dotyczących tej tematyki.
Zamykanie systemu
Korzystając z metody win32shutdown aliasu os, podasz dodatkowy parametr, którym zadecydujesz, jaką operację ma wykonać system.
Możliwe są następujące czynności:
0 wylogowanie 1 zamknięcie 2 restart 4 wymuszony restart 8 wyłączenie komputera
Więcej informacji
Wszystkie przykłady zawarte w artykule znajdziesz w pliku Wmic_przyklady.rtf, a spis klas WMI w plikach Classes_call/get/set.txt na
płycie dołączonej do numeru 8/2005 PCWK.
Zestawienie witryn internetowych o tematyce poruszonej w artykule zamieszczamy w pliku Wmic_urls.htm.
Krzysztof Daszkiewicz
Zawartość pliku pcwwmic_4_xphome.bat (bo na nim, wg artykułu, opiera się cała możliwość zainstalowania WMI
w Windows XP home edition) można znalezć na tej stronie.


Wyszukiwarka

Podobne podstrony:
windows
Instalacja systemu Windows z pendrive a
Klucze Rejestru Windows
Windows Messages
Cwiczenie z Windows Server 2008 wysoka dostepnosc
WindowsFormsApplication1 csproj FileListAbsolute (11)
Windows 2 Laboratorium 4b
Lajtmana Rawa Kabala Tajna Nauka
Klastry pracy awaryjnej w srodowisku Windows Instalacja konfiguracja i zarzadzanie klastr
optymalizacja windowsa xp pod mach3
Aktualizacja do nowego Windowsa
Partycje na dysku twardym w Windows Vista
Zestaw poleceń Spikit dla Internet Explorer 11 Windows 7 8 1
Cwiczenie z Windows Server 2008 egzekwowanie zasad bezp

więcej podobnych podstron