Windows Server 2008 Core, cz. I     Windows Server 2008

Windows Server 2008 Core, cz. II Udostępnij na: Facebook

Zarządzanie z wiersza poleceń

Opublikowano: 25 września 2007 | Zaktualizowano: 15 stycznia 2008
Autor: Nataniel Zieliński

Zawartość strony
 Administracja bez GUI  Administracja bez GUI
 Initial Configuration  Initial Configuration
 GUI w Core  GUI w Core
Praca z systemem  Praca z systemem
Triki z cmd.exe  Triki z cmd.exe
Zakończenie  Zakończenie
Legenda  Legenda
Referencje  Referencje
Przeczytaj pozostałe części tego artykułu  Przeczytaj pozostałe części tego artykułu

Administracja bez GUI

Jednym z często stawianych systemom Microsoft Windows zarzutów jest brak możliwości pracy z wiersza poleceń. Jest to zarzut wynikający nie tyle z faktycznego braku takiej możliwości, a raczej z faktu, iż GUI jest tak dalece wygodniejsze i pozawala na zrobienie niemal wszystkich wymaganych operacji, że do narzędzi command-line sięgają niemal wyłącznie zaawansowani administratorzy. Ilość narzędzi służących do zarządzania Windows z wiersza poleceń jest multum – co jest równocześnie zbawieniem, jak i katorgą. Zbawieniem ze względów oczywistych (np. możliwość oskryptowania pewnych czynności administracyjnych) natomiast katorgą, ponieważ jest to zbiór narzędzi pisanych przez wiele osób, w różnym czasie (część z nich sięga początku lat 80. poprzedniego wieku!). W wyniku tego narzędzia są – ale ich używanie jest bardzo utrudnione, ze względu na różnorodność logiki, jaką wykorzystują. To zresztą każdy będzie miał okazję sam ocenić, czytając/wykorzystując przedstawione przykłady. Dla tego artykuł ten jest poniekąd skazany na szybkie przedawnienie – ponieważ jeśli pojawi się PowerShell dla wersji Core będzie to podstawowa powłoka pracy z systemem.

Dopóki to się jednak nie stanie, chciałem przedstawić podstawowe narzędzia opatrzone przykładami, ponieważ okazuje się, że najbardziej trywialne zadania, wcale nie są takie trywialne bez GUI – np. zastanów się, czy potrafisz sprawdzić, jakie są w systemie dostępne dyski (to, co widać w „Moim Komputerze”). Poniższe informacje, pomimo iż opatrzone słowem „Core” w tytule, zastosowanie mają w niemal wszystkich wersjach systemów Microsoft Windows.

 Do początku strony Do początku strony

Initial Configuration

Każdą wersją Windows 2000 i wyższą, można zarządzać zdalnie za pomocą snapinów mmc – dotyczy to również wersji Core. Jeśli ktoś linii poleceń nie lubi – nie ma obowiązku z niej korzystać, również w tej wersji - wystarczy ze stacji klienckiej połączyć się odpowiednim narzędziem do Server Core i zarządzać komponentami w sposób graficzny. Zanim jednak będzie się w stanie do takiej wersji podłączyć – trzeba wykonać wstępną konfigurację, która to umożliwi – Initial Configuration.

Zmiana hasła

Zmianę hasła obecnego użytkownika można wykonać standardowo, korzystając z GUI – tego niewielkiego fragmentu, który jest nawet w wersji Core – naciskając klawisze CTRL+ALT+DEL i wybierając „change password”. Bardziej uniwersalnym sposobem, pozwalającym zmienić hasło dowolnemu użytkownikowi, jest polecenie „net”.

Zmiana hasła dla konta lokalnego:

net user username password 
net user username *

Polecenie to pozwala od razu wpisać hasło, które ma być ustawione. Jeśli trzeba je wpisać tajnie – można użyć „*” – pojawi się prompt pozwalający wpisać hasło, nie wyświetlając go na ekranie.

Zmiana hasła dla konta domenowego będzie różnić się wyłącznie dodaniem parametru „/domain”:

net user username password /domain

Na końcu dokumentu znajdują się odnośniki do pełnych opisów wszystkich prezentowanych narzędzi - celem tego artykułu nie jest prezentacja wszystkich możliwości, a jedynie pomoc w rozpoczęciu pracy z linią poleceń – reszta należy do Ciebie.

Konfiguracja TCP/IP

Do konfiguracji parametrów sieci służy polecenie „netsh”. Zacznijmy od wylistowania dostępnych interfejsów:

netsh interface show interface

Netsh” pozwala na pracę w trybie konsoli – jeśli użyje się go bez żadnego parametru lub w trybie wsadowym – podając kolejno wszystkie instrukcje. Za jego pomocą można konfigurować IPSec, DHCP, firewall, RAS i wiele, wiele innych usług i ustawień systemu związanych z siecią. Podane przykłady to wierzchołek góry lodowej, na pewno więc warto zajrzeć do referencji i zapoznać się z nim lepiej. Ustawiając parametry interfejsu, należy posłużyć się jego nazwą – więc skoro już je wylistowaliśmy:

netsh interface ipv4 set address „Local Area Connection” static 192.168.0.10 255.255.255.0 192.168.0.1 1

Polecenie netsh może przyjąć również formę z prefiksem parametru:

netsh interface ipv4 set address name=„Local Area Connection” source=static address=192.168.0.10 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1

Forma taka jest niezbędna, jeśli trzeba pominąć któryś z parametrów – np. gateway. Używając formy skróconej, parametry muszą być podane w odpowiedniej kolejności. Podobnie ustawia się adres serwera DNS:

netsh interface ipv4 set dnsserver „Local Area Connection” static 127.0.0.1

Zawsze można sobie pomóc, sprawdzając kolejność i dostępność parametrów:

netsh interface ipv4 set /? 
netsh interface ipv4 set dnsserver /?

Ciekawostką jest fakt, że nazwy interfejsów niestety nie da się zmienić. Nawet po modyfikacji klucza rejestru, gdzie jest ona zapisana „netsh interface show interface”, pokaże zdefiniowaną wartość, jednak przy próbie konfiguracji – trzeba mimo to podać „Local Area Connection”.

Zmiana nazwy komputera i dodanie do domeny

Po konfiguracji TCP/IP warto przetestować dostępność domeny, korzystając z poleceń „ping” i „nslookup” – jeśli nie uda się skontaktować z kontrolerem lub rozwiązać nazwę domeny – nie ma tym bardziej szansy na dodanie komputera do domeny. Jeśli testy przebiegły prawidłowo, należy skorzystać z narzędzia „netdom”. Bardzo pozytywną zmianą w Windows Server 2008 jest fakt, iż większość narzędzi znanych z Support Tools oraz Reskit jest od razu dostępna w systemie (nigdy nie rozumiałem, czemu tak podstawowe i wartościowe narzędzia są jako oddzielny komponent).

netdom renamecomputer %computername% /newname:NAZWAKOMPUTERA /REB

Narzędzia tego można użyć również do konfiguracji stacji zdalnej. Tutaj zamiast nazwy stacji użyta została zmienna %computername% - generowana automatycznie nazwa jest dość złożona, po co więc w ogóle ją znać (: Po restarcie można dodać komputer do domeny:

netdom join %computername% /domain:DOMAIN /REB /UserD:operator /PasswordD:*

Hasło, podobnie jak dla polecenia „net”, można podać jawnie lub zastąpić „*”.

Firewall

Ostatnim krokiem przed zdalnym zarządzaniem jest konfiguracja firewalla – to, co prawda można już wykonać za pomocą GPO, ale nie zawsze jest to pożądany sposób. Trzeba ustawić następujący wyjątek:

netsh firewall set service remoteadmin enable

 Do początku strony Do początku strony

GUI w Core

Nie jest do końca prawdą, iż wersja Core nie posiada GUI w ogóle. Cały system działa w trybie graficznym, a więc część bibliotek odpowiedzialnych za „rysowanie” pozostała. Okno logowania jest dokładnie identyczne, jak w pełnej wersji... co więc jeszcze pozostało?

Pozostało menu po wciśnięciu CTRL+ALT+DEL pozwalające zmienić hasło, wylogować się czy uruchomić Task Manager. Sam Task Manager również jest dostępny, pozwalając wylistować procesy, zabić je lub uruchomić nową aplikację – co jest sposobem na uruchomienie cmd, jeśli przypadkiem zamknie się konsolę. Swoją drogą procesy można wylistować poleceniem tasklist. Niestety tasklist nie ma opcji zabicia procesu – w tym celu można skorzystać z wmic (przykład w dalszej części artykułu).

Do założenia pliku można posłużyć się poleceniem notepad – który obok regedit stanowi pozostawione wyjątki aplikacji działające z GUI. O ile regedit jest pomysłem bardzo fajnym, bo praca z command-line’owym reg jest bardzo trudna, o tyle notepad ma alternatywę w postaci polecenia edit i moim skromnym zdaniem powinien zostać zlikwidowany (ze wszystkich wersji systemu – czas chyba na coś bardziej zaawansowanego?).

Kiedy wylistuje się katalog systemowy system32, okaże się, że można znaleźć dwa pliki control panela – timedate.cpl i intl.cpl. Pozwalają one w łatwy sposób ustawić wszelkie parametry strefy czasowej, datę i godzinę. Te ostatnie można oczywiście ustawić poleceniami date i time, ale ustawień regionalnych łatwo zmienić się nie da.

 Do początku strony Do początku strony

Praca z systemem

Kilka słów o wmic

Po wykonaniu opisanej konfiguracji logowanie lokalne (tzw. interaktywne) w zasadzie nie jest potrzebne. Niemniej dla zaspokojenia bardziej zaawansowanych administratorów przedstawiony zostanie szereg poleceń przydatnych w codziennej pracy z linią poleceń. Na początek proponuję zadanie podstawowe, przedstawione we wstępnie: jak sprawdzić, jakie dostępne są w systemie dyski? Dyski lokalne można sprawdzić i skonfigurować poleceniem diskpart. Dyski sieciowe – poleceniem „net use”. Sumarycznie byłoby to jednak czasochłonne i nadal brakuje wielu informacji. Aby utworzyć skrypt, najpierw trzeba utworzyć plik wsadowy dla diskpart, który uruchomiony z przełącznikiem wylistowałby partycje – jednak rozwiązanie takie ma niemal same wady.

Jest oczywiście rozwiązanie dużo łatwiejsze i uniwersalne – wmic. Narzędzie to jest tak uniwersalne, że mogłoby być odpowiedzią na niemal każde pytanie – również zmianę nazwy komputera czy konfigurację TCP/IP, jednak ze względu na to, że byłoby to znacznie bardziej złożone, akurat do tego celu lepiej użyć dedykowanych narzędzi. A tak można wylistować wszystkie dyski w systemie:

wmic logicaldisk

Nie ma też problemu, aby z gąszczu otrzymanych informacji wybrać tylko te, które nas interesują:

wmic logicaldisk get caption,description,freespace,size

wmic, podobnie jak netsh, ma dwa tryby działania – jako konsola (po użyciu bez parametru) lub w trybie wsadowym.
Parametrem „/?” można sprawdzić część z możliwości:

wmic /?

Należy jednak pamiętać, iż są to tylko predefiniowane aliasy, natomiast WMI jako mechanizm, pozwala na dużo, dużo więcej. Nie jest to jednak tematem niniejszego artykułu, ograniczę się więc tylko do podania kilku przykładów.

Tak można dodać komputer do domeny:

wmic computersystem where name=”%computername%” call JoinDomainOrWorkgroup name=”DOMAIN” username=”USERNAME” password=”PASSWORD”

Konfiguracja pagefile:

wmic pagefileset where name=”C:\\pagefile.sys” set InitialSize=500,MaximumSize=1000

Odinstalowanie aplikacji:

Wmic product get name /value  
Wmic product where name=”NAZWA_Z_LISTINGU” call uninstall

Wylistowanie działających procesów i zabicie wybranego:

wmic process get name 
wmic process where name=”proces.exe” call terminate 0

Instalacja sterowników

W jaki sposób zainstalować sterowniki, kiedy nie ma żadnych wizardów ani snapinów? Na początek dwa sposoby, pozwalające sprawdzić zainstalowane sterowniki:

driverquery |more

oraz ponieważ sterowniki są de facto usługami, można skorzystać z Service Control czyli sc:

sc query type= driver |more

Wykonując powyższe polecenie, trzeba uważać na specyfikę składni polecenia sc – spacja po znaku „=” nie jest przypadkowa. Jest to program z jedną z najdziwniejszych składni wśród narzędzi Windows – dlatego polecam używać jednak wmic, który pomimo że może na początku wydawać się trochę skomplikowany i trzeba sporo poczytać o WMI, to jednak da jednolity sposób wywołania dla bardzo wielu czynności systemowych:

wmic sysdriver |more

Aby do systemu dodać sterownik, należy go skopiować do dowolnego katalogu, a następnie użyć polecenia pnputil. Sterownik musi być w postaci plików inf i sys. Jeśli sterownik jest dostarczony w postaci paczki instalacyjnej msi lub exe, można na początek spróbować go uruchomić, jednak szanse zadziałania w ten sposób są nikłe. W takim wypadku trzeba znaleźć sposób na jego rozkompresowanie i wykonanie polecenia:

pnputil –i –a c:\drivers\somedriver.inf

Inne operacje systemowe

Poniżej już bez opisu kilka innych poleceń, które mogą okazać się przydatne przy pracy z linią poleceń. Podane są liczne triki i wybrane parametry poleceń – zachęcam do dalszego drążenia tematu.

Aktywacja systemu:

Cscript slmgr.vbs –ato

Weryfikacja aktywacji:

Cscript slmgr.vbs –did

Restart systemu:

shutdown /r /t 0

Włączenie usługi terminalowej i zrobienie wyjątku w firewallu:

cscript %windir%\sytem32\SCregEdit.wsf /ar 1 
netsh firewall set service remotedesktop enable

To samo polecenie służy do konfiguracji Windows Update i tak włączenie AU:

cscript %windir%\sytem32\SCregEdit.wsf /au 4

Instalacja hotfixa:

wuau hotfix.msu /quiet

Wylistowanie zainstalowanych hotfixów:

wmic qfe list

Wymuszenie sprawdzenia hotfixów na Windows Update:

Wuauclt /detectnow

Wylistowanie dostępnych i zainstalowanych ról i ficzerów (komponentów):

oclist

Instalacja wybranej roli lub ficzera (komponentu) (UWAGA! rozróżnia małe/wielkie litery):

start /w ocsetup RoleName

Konfiguracja usługi Error Reporting:

ServerWEROptin

Wyszukiwanie pliku na dysku w całym drzewie katalogów:

dir /s *file*.exe

 Do początku strony Do początku strony

Triki z cmd.exe

Na zakończenie drobny trik dla cmd.exe, który może ułatwić pracę. Zegarek w zasobniku systemowym pomaga nie przesiadywać bezpłatnych nadgodzin. W linii poleceń można również zapewnić sobie wyświetlanie aktualnego czasu za pomocą polecenia prompt:

prompt [$t]$p$g

Problem polega na tym, że trzeba to polecenie wpisać zawsze przy uruchomieniu cmd, ponieważ nie jest to zapisywane. Można ten proces zautomatyzować, modyfikując odpowiedni wpis w rejestrze – klucz autorun dla cmd:

  • uruchom regedit,
  • przejdź do klucza HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor,
  • jeśli nie ma w nim danej „AutoRun” – załóż ją, o typie „String”,
  • jako wartość możesz w niej umieścić nazwę skryptu lub polecenia, które mają się uruchomić podczas startu cmd - np. prompt.

W wierszu poleceń można w jednej linii uruchomić więcej niż jedno polecenie, korzystając z podwójnego znaku ampersand „&&”:

net stop SERVICE && net start SERVICE

Dzięki temu można w kluczu run wpisać więcej niż jedną komendę, jeśli nie chce się tam umieszczać skryptu. Na przykład można ustawić znak zachęty oraz ustawić kursor na c:\ :

prompt [$t]$s$p$g && cd c:\

 Do początku strony Do początku strony

Zakończenie

Mam nadzieję, że ten niewielki wstęp do zarządzania z linii poleceń zainspiruje do poszukiwania innych narzędzi oraz lepszego poznania istniejących (takich, jak wmic). Nie można mówić o sobie IT PRO, jeśli jest się bezradnym wobec braku narzędzi „okienkowych”. Administracja to przecież w dużej mierze automatyzacja zadań – a to da się osiągnąć tylko skryptami…

 Do początku strony Do początku strony

Legenda

Lucida – przykłady kodu

Italic-Bold – parametry wywołania zależne od użytkownika (np. odpowiednie hasło)

 Do początku strony Do początku strony

Referencje

Linki

Polecenia wiersza poleceń

 Do początku strony Do początku strony

Przeczytaj pozostałe części tego artykułu


Nataniel Zieliński Nataniel Zieliński (konsultant ISCG)
Przygodę z komputerem zaczynał na polskich 8-bitowcach Bosman 8 w późnych latach 80-tych. Po bogatych doświadczeniach z licznymi systemami, rozpoczął karierę jako administrator systemów Windows NT w Polsko-Japońskiej Wyższej Szkole Technik Komputerowych, gdzie zgłębiał tajemnice kolejnych wersji Windows NT, zarówno od strony technicznej - administrując, jak teoretycznej - prowadząc kursy MOC w Akademickim Centrum Szkoleniowym. Od kilku lat pracuje w roli konsultanta oraz trenera MCT w firmie ISCG Sp. z o.o., Gold Partnera Microsoft, dalej pogłębiając swoją wiedzę w dziedzinie kolejnych produktów ze stacji Microsoft. Od dłuższego czasu członek elitarnego klubu inżynierów Microsoft - SEClub.

 

 Do początku strony Do początku strony

Windows Server 2008 Core, cz. I     Windows Server 2008