Spotkania grup offline

Biuletyny zabezpieczeń

Microsoft w Polsce

Statystyka

  • W tej chwili mamy:
    863 czytelników online
    117 243 zarejestrowanych
  • Do dziś zanotowaliśmy:
    121 730 636 odsłon
    60 448 odsłon / 24h
Microsoft Most Valuable Professional

Server Manager z linii poleceń

  • Data publikacji: 2008-03-21 08:00|
  • Odsłon: 6978|
  • Dodał: Robert Stuczynski|
  • Odbiorcy: IT PRO|

  • Poziom trudności: Nieokreślony|
  • Komentarze (9)

Robert Stuczynski (Noise)

Autor: Robert Stuczynski (Noise)


Inżynier systemowy pracujący w miedzynarodowej korporacji.
Członek SE Club.

Posiada certyfikaty:
Microsoft MVP
MCSE: Messaging, Security
MCTS: Windows Server 2008 Active Directory Configuration, Windows Server 2008 Network Infrastructure Configuration, Windows Vista Configuration

Wstęp

Zarządzanie systemem Windows Server 2008 zostało znacznie uproszczone poprzez dodanie zupełnie nowej przystawki MMC. Server Manager, bo tak nazywa się to narzędzie, przejmuje zadania wielu samodzielnych konsol znanych z poprzedniej wersji Windows Server, np. Manage Your Server, Configure Your Server czy Add or Remove Windows Components. Jej główne zadania to dodawanie, usuwanie i konfiguracja ról, usług ról oraz funkcji dodatkowych serwera. Dzięki Server Managerowi możliwa jest także diagnostyka serwera, wykonywanie kopii zapasowych, zarządzanie lokalnymi użytkownikami oraz grupami użytkowników.

Server Manager command-line tool

W Windows Server 2008 zostało dodane narzędzie Server Manager command-line. Jest to tekstowy odpowiednik graficznego Server Managera. Pozwala na wykonanie części zadań bez konieczności korzystania z Windows GUI. Za jego pomocą można instalować i usuwać role serwera oraz wykonywać zapytania o konfigurację systemu. Bardzo ważne jest to, że polecenie wykorzystuje pliki zgodne ze standardem XML.

Opcje

Na początku zostaną omówione przełączniki, jakie można użyć z poleceniem ServerManagerCMD.exe, czyli:

servermanagercmd.exe -query [<query.xml>] [-logPath <log.txt>]
servermanagercmd.exe -install <name>
                    [-setting <setting name>=<setting value>]* [-allSubFeatures]
                    [-resultPath <result.xml> [-restart] | -whatIf] [-logPath <log.txt>]
servermanagercmd.exe -remove <name>
                    [-resultPath <result.xml> [-restart] | -whatIf] [-logPath <log.txt>]
servermanagercmd.exe -inputPath <answer.xml>
                    [-resultPath <result.xml> [-restart] | -whatIf] [-logPath <log.txt>]
servermanagercmd.exe -help | -?
servermanagercmd.exe -version

-query [<query.xml>]

Wyświetla listę ról oraz funkcji dostępnych w systemie. Role zainstalowane na serwerze zostaną dodatkowo wyróżnione kolorem zielonym. Jeśli został dodany przełącznik <query.xml>, to wynik zapytania zostanie zapisany także do pliku w formacie XML. Posiadając taki plik, użytkownik dysponuje informacjami o tym, jakie role i funkcje zostały zainstalowane na serwerze. Skrócona forma przełącznika to -q.

UWAGA: Pliku wygenerowanego za pomocą przełącznika -query nie można użyć bezpośrednio jako parametru w -inputpath oraz -install (zostaną omówione w kolejnym akapicie). Przed jego zastosowaniem będą wymagane modyfikacje pliku XML. Opis i sposoby wykonania modyfikacji zostały umieszczone w dalszej części artykułu.

-inputpath <answer.xml>

Pozwala instalować oraz usuwać role i funkcje wymienione w pliku odpowiedzi podanym jako parametr <answer.xml>. Forma skrócona: -ip.

-install <name> [-setting <setting name>=<setting value>]* [-allSubFeatures]

Instaluje rolę lub funkcję podaną jako parametr <name>. Forma skrócona -i. Parametr Install posiada dodatkowe opcje:

-setting <setting name>=<setting value>

Pozwala na ustawienie dodatkowych parametrów instalacji. Skrócona forma: -s.

-allSubFeatures

Pozwala zainstalować wszystkie role i funkcje podrzędne wraz z rolą lub funkcją nadrzędną wyspecyfikowaną w parametrze -install <name>.

-remove <name>

Usuwa rolę lub funkcję podaną jako parametr <name>. Forma skrócona: -r.

Parametry install oraz remove posiadają także parametry resultPath, restart oraz whatif, które zostały omówione poniżej:

-resultPath <result.xml>

Zapisuje rezultat działania do pliku wskazanego jako parametr <result.xml>. Skrócona forma: -rp.

-restart

Jeśli po instalacji/usunięciu roli lub funkcji konieczny jest restart, to zostanie on wykonany automatycznie.

-whatIf

Zastosowanie przełącznika spowoduje tylko wyświetlenie rezultatu polecenia, które chcemy wykonać. Samo polecenie nie zostanie wykonane. Skrócona forma: -w.

UWAGA: Nie jest możliwe użycie -resultPath wraz z parametrem -whatif.

-logPath <log.txt>

Parametr pozwala na określenie innej niż domyślna ścieżki oraz nazwy pliku logu. Domyślnie plik zostaje zapisany w: %windir%\temp\servermanager.log. Skrócona forma: -l.

-help

Wyświetla pomoc dotyczącą polecenia ServerManagerCMD.exe. Skrócona forma: -?

-version

Jako wynik zwraca wersję Server Managera. Skrócona forma: -v.

Przykłady użycia

ServerManagerCmd.exe może zostać użyty w wielu scenariuszach. Poniżej zostanie przedstawionych kilka prostych zastosowań.

Wyświetlenie zainstalowanych ról i funkcji serwera

Wszystkie role i funkcje serwera wyświetlimy, wywołując polecenie:

servermanagercmd.exe -query lista.xml

Zainstalowane funkcje i role zostaną wyróżnione w spisie kolorem zielonym.

Zainstalowane role i funkcje

Lista najpierw wyświetla role, a dopiero później funkcje.

Opcjonalny parametr lista.xml dodatkowo spowoduje zapisanie listy do pliku w formacie XML. Fragment listy przedstawiono poniżej:

<ServerManagerConfigurationQuery Time="2008-03-17T12:17:32" Language="en"
 xmlns="http://schemas.microsoft.com/sdm/Windows/ServerManager/Configuration/2007/1">
   <Role DisplayName="Active Directory Certificate Services" Installed="false" Id="AD-Certificate">
      <RoleService DisplayName="Certification Authority" Installed="false" Id="ADCS-Cert-Authority"
       Default="true" />
      <RoleService DisplayName="Certification Authority Web Enrollment" Installed="false" 
       Id="ADCS-Web-Enrollment" />
      <RoleService DisplayName="Online Responder" Installed="false" Id="ADCS-Online-Cert" />
      <RoleService DisplayName="Network Device Enrollment Service" Installed="false" 
       Id="ADCS-Device-Enrollment" />
   </Role>
   <Role DisplayName="Active Directory Domain Services" Installed="true">
      <RoleService DisplayName="Active Directory Domain Controller" Installed="true" 
       Id="ADDS-Domain-Controller" Default="true" />
      <RoleService DisplayName="Identity Management for UNIX" Installed="false" Id="ADDS-Identity-Mgmt">
         <RoleService DisplayName="Server for Network Information Services" Installed="false" Id="ADDS-NIS"
       Default="true" />
         <RoleService DisplayName="Password Synchronization" Installed="false" Id="ADDS-Password-Sync" 
       Default="true" />
         <RoleService DisplayName="Administration Tools" Installed="false" Id="ADDS-IDMU-Tools" 
       Default="true" />
      </RoleService>
   </Role>

Plik może zostać otwarty za pomocą dowolnego edytora tekstowego. Jako że jest to plik w formacie XML to w prosty sposób można odczytać, jakie role i funkcje są zainstalowane w systemie.

Aby sprawdzić, czy w systemie jest zainstalowany klient lub serwer Telnet, możemy posłużyć się poleceniem:

servermanagercmd.exe -query | find "Telnet"
Filtr

Z rysunku powyżej wynika, że w systemie została zainstalowana tylko funkcja klienta Telnet.

Instalacja oraz usuwanie ról i funkcji serwera

Dodanie roli lub funkcji jest bardzo proste - wymaga jedynie znajomości jej nazwy. Odnośnik do spisu wszystkich ról i funkcji można znaleźć na końcu artykułu.

W poniższym przykładzie pokazano, jak za pomocą przełącznika -install (-i) dodać funkcję serwera, jaką jest Telnet Client. Instalacja ról serwera jest równie prosta i sprowadza się do wpisania odpowiedniej nazwy roli jako parametru. Oczywiście, należy pamiętać o tym, że rolę należy później poprawnie skonfigurować.

servermanagercmd.exe -i telnet-client
Instalacja klienta Telnet

Kolejny przykład przedstawia zastosowanie przełącznika whatif, który wyświetla tylko i wyłącznie wynik wykonania operacji bez wykonania polecenia. W poniższym przykładzie przełącznik whatif poinformuje, że instalacja nie powiedzie się, ponieważ funkcja telnet-client jest już zainstalowana.

servermanagercmd.exe -i telnet-client -whatif
Demonstracja przełącznika -whatif

Poniżej przykład usunięcia roli Active Directory Lightweight Directory Services.

servermanagercmd.exe -remove ADLDS
Usunięcie roli

Instalacja z pliku XML

Role i funkcje można instalować na podstawie pliku odpowiedzi. Poniższy plik XML został przygotowany w celu instalacji klienta Telnet oraz serwera DHCP. Na podstawie tego przykładu można w dość prosty sposób przygotować plik do instalacji dowolnej roli lub funkcji.

<ServerManagerConfiguration Action="Install" 
 xmlns="http://schemas.microsoft.com/sdm/Windows/ServerManager/Configuration/2007/1">
      <Feature Id="Telnet-Client" /> 
      <Role Id="DHCP" /> 
</ServerManagerConfiguration> 

Powyższy listing pliku XML posłużył do wywołania polecenia:

servermanagercmd -inputpath c:\aktu.xml

Wynik został przedstawiony na rysunku poniżej. Warto zwrócić uwagę na sposób, w jaki Server Manager działa. Sprawdza on, czy role lub funkcje są zainstalowane. W przykładzie klient Telnet był już zainstalowany i dlatego jego instalacja została pominięta. Serwer nie posiadał roli DHCP, więc została ona dodana.

Instalacja z XML

Praca z plikami XML

Po prostych przykładach przyszedł czas na coś bardziej złożonego.

Na pewno głównym zastosowaniem, jakie znajdzie ServerManagerCMD, będzie odwzorowanie zainstalowanych usług serwera na innym. Można to wykonać poprzez eksport ustawień do pliku XML z serwera wzorcowego i zainstalowanie ról na podstawie informacji zawartych w tymże pliku.

Zadanie wydaje się banalnie proste. Najpierw generowanie pliku wzor.xml za pomocą polecania:

ServerManagerCMD -query wzor.xml

A następnie w celu instalacji usług użycie polecenia:

ServerManagerCMD -inputPath wzor.xml

Niestety, to się nie uda! A przynajmniej nie w ten prosty sposób. Plik wyjściowy oraz wejściowy posiadają inny schemat.

Co można w takim razie zrobić? Są dwa rozwiązania. Pierwsze: plik wejściowy można przygotować ręcznie, co zostało pokazane w jednym z wcześniejszych przykładów. Drugie rozwiązanie, które zostanie za moment omówione, polega na użyciu programu msxsl.exe do konwersji pliku wyjściowego do odpowiedniego formatu wejściowego.

Program msxsl.exe

Aby poprawnie wykonać konwersję, musimy mieć trzy rzeczy:

- bezpłatny program Program Command Line Transformation Utility (msxsl.exe) do konwersji plików (link na końcu artykułu),

- plik lub pliki potrzebne do transformacji: instalacja.xsl, usuwanie.xsl, podglad.xsl (link na końcu artykułu),

- wygenerowany przez servermanagercmd.exe plik XML.

Za pomocą programów msxsl.exe, ServerManagerCMD.exe oraz odpowiedniego pliku xsl można wykonać 3 podstawowe konwersje, które mogą zostać użyte do:

- instalacji ról oraz funkcji serwera,

- usuwania ról oraz funkcji serwera,

- tworzenia pliku html do podglądu zainstalowanych ról oraz funkcji.

Instalacja ról i funkcji

Na początku zostanie zademonstrowana instalacja roli. To zadanie będzie chyba najczęściej wykonywane. Przykładem, kiedy można to wykorzystać, może być sytuacja, gdy firma wdrażająca system wysyła wstępne wymagania w postaci pliku XML. Wykorzystując taki plik, w bardzo prosty sposób mogą zostać przygotowane wstępne wymagania dotyczące ról i usług na serwerze. Oczywiście, nie da się skonfigurować usług ani ról, ale sama instalacja może zaoszczędzić dużo czasu. Pozwoli to także uniknąć sytuacji, w której została pominięta przez nieuwagę instalacja jakiegoś ważnego komponentu.

Utworzenie pliku zawierającego informacje o rolach i usługach wykonuje się w sposób następujący:

ServerManagerCmd.exe -query wzor.xml

Plik wzor.xml zawiera listę wszystkich ról i funkcji, które serwer pełni lub potencjalnie mógłby pełnić. Oczywiście, z listy w prosty sposób można dowiedzieć się, jakie już zostały zainstalowane.

Posiadając pliki wzor.xml i instalacja.xsl oraz program msxsl.exe, możemy przystąpić do konwersji na format akceptowalny jako wejściowy przez ServerManagerCMD.exe. Wywołanie polecenia jest bardzo proste:

msxsl.exe wzor.xml instalacja.xsl -o instalacja.xml

Plik, który otrzymamy jako wynik, został pozbawiony informacji nadmiarowych o rolach i funkcjach, które nie były zainstalowane na serwerze. Pozostały w nim tylko informacje o tych zainstalowanych, a reszta linii jest pusta, więc zostanie zignorowana. W tym miejscu należy podkreślić jedną ważną rzecz: plik nie zawiera także nazw ról ani funkcji, które zawierają inne usługi roli oraz funkcje podrzędne. Należy o tym wiedzieć, ale nie ma powodu, aby się tym martwić, ponieważ role i funkcje nadrzędne zostaną zainstalowane automatycznie.

Za pomocą otrzymanego jako wynik pliku instalacja.xml można już dodać wymagane role i funkcje.

ServerManagerCmd.exe -inputPath instalacja.xml
Instalacja z XML 2

Z przykładowego ekranu widać, że instalacja części ról została pominięta, ponieważ zostały one dodane wcześniej. Została dodana tylko funkcja Telnet Client, gdyż tylko ona nie była zainstalowana w systemie.

Usunięcie ról i funkcji

Może zdarzyć się sytuacja, gdy na postawie porównania do wzorcowego systemu trzeba pozbawić serwer zainstalowanych ról lub funkcji. Procedura jest bardzo podobna do instalacji. Tak jak poprzednio, na początku należy wygenerować plik stanu serwera na komputerze wzorcowym za pomocą polecenia:

ServerManagerCmd.exe -query wzor.xml

Następnie należy wykonać konwersję pliku wzor.xml do postaci, która zaakceptuje servermanagercmd.exe. Potrzebny będzie do tego plik usuwanie.xsl. Wykonuje się to w sposób następujący:

msxsl.exe wzor.xml usuwanie.xsl -o usuwanie.xml

Plik usuwanie.xml można wykorzystać do odinstalowania ról i funkcji:

ServerManagerCmd.exe -inputPath usuwanie.xml

Należy pamiętać o tym, że nie w każdej sytuacji można usunąć rolę lub funkcję. Taka sytuacja może się zdarzyć na przykład wtedy, gdy serwer jest kontrolerem domeny. Usunięcie roli Active Directory Domain Services nie powiedzie się, dopóki serwer nie zostanie zdegradowany do funkcji serwera członkowskiego.

View

Za pomocą konwersji w programie msxsl.exe można także wygenerować bardzo czytelny raport na temat wszystkich ról oraz funkcji, jakie pełni serwer. Wystarczy wykorzystać wcześniej przygotowany plik wzor.xml oraz podgląd.xsl:

msxsl.exe wzor.xml podglad.xsl -o podglad.html
Podgląd

Linki

Lista nazw ról oraz funkcji

Plik instalacja.xsl

Plik usuwanie.xsl

Plik podglad.xsl

Program Command Line Transformation Utility (msxsl.exe)

Wnioski

Najważniejszym udogodnieniem dla administratorów jest niewątpliwie to, że nowe narzędzie można będzie zastosować w skryptach. Ułatwi to na przykład przygotowanie nowych, podobnych funkcjonalnie środowisk, gdyż za pomocą plików odpowiedzi opartych na XML można będzie w prosty sposób zautomatyzować ten proces.

  • Ocena: 100,00% 0,00% (głosów: 8)
Autor

Komentarz


netz
Gość

wypowiedzi: 50
od: 2004-09-08

Server Manager z linii poleceń 2008-03-21 (Pt) 13:18
Jest błąd w tekście:

"Jako że jest to jest to plik w formacie XML to..."
Zaloguj się, żeby odpowiedzieć

Microsoft Most Valuable Professional (MVP) noise
Top10

wypowiedzi: 9390
od: 2003-09-19


Odp: Server Manager z linii poleceń 2008-03-21 (Pt) 13:24
Bardzo dziekuje za zwrocenie uwagi. Poprawilem zająknięcie ;)

--
Robert Stuczynski (Noise) - MVP
Blog - http://noiserobert.spaces.live.com http://www.8080.pl
https://www.quiz2008.pl
Zaloguj się, żeby odpowiedzieć

eremef2004
Gość

wypowiedzi: 36
od: 2004-10-07

Server Manager z linii poleceń 2008-03-21 (Pt) 13:38
Bardzo ciekawy artykul.
Najwazniejsz ze tematy ktore opsisujesz sa malo opsisywane. Mowie tu takze o sstp ktore opisales w poprzednim. Jako webcast tez bedzie ten material? Przyznam sie ze sluchalo sie twojego materailu o sstp bardzo przyjemnie - bardzo dobrze profesionalny przygotowany.
Zaloguj się, żeby odpowiedzieć

Microsoft Most Valuable Professional (MVP) noise
Top10

wypowiedzi: 9390
od: 2003-09-19


Odp: Server Manager z linii poleceń 2008-03-21 (Pt) 13:53
Z webcastem hmmmmm sam nie wiem. Poczekam na opinie innych czy warto robic na ten temat. Wydaje mi sie ze wystarczy w postaci artykulu. Ale moze tylko mi ;)

--
Robert Stuczynski (Noise) - MVP
Blog - http://noiserobert.spaces.live.com http://www.8080.pl
https://www.quiz2008.pl
Zaloguj się, żeby odpowiedzieć

Grimlock_
Junior

wypowiedzi: 434
od: 2007-10-30

Server Manager z linii poleceń 2008-03-21 (Pt) 14:55
Jak znalazł do znalezienia poprawnej odpowiedzi do dwóch pytań z administracji Win2K8 i zapewne kilku z wersji hard core ;)

___________________
Pozdrawiam
Grzesiek

MCTS Vista Configuring
Zaloguj się, żeby odpowiedzieć

Microsoft Most Valuable Professional (MVP) noise
Top10

wypowiedzi: 9390
od: 2003-09-19


Odp: Server Manager z linii poleceń 2008-03-21 (Pt) 15:50
niestety nie zdawalem tych egzminow na naszym portalu :) Ale jesli tak to dobrze ze juz sie przydaje!

--
Robert Stuczynski (Noise) - MVP
Blog - http://noiserobert.spaces.live.com http://www.8080.pl
https://www.quiz2008.pl
Zaloguj się, żeby odpowiedzieć

Microsoft Most Valuable Professional (MVP) Doktor
Ekspert WSS

wypowiedzi: 2036
od: 2006-07-26
Będę na C2C 2010


Odp: Server Manager z linii poleceń 2008-03-21 (Pt) 21:36
Hej - Dobry artykul ... powiedz mi jedno - jak sie robie takie fajne wydzierki ? :)

--
Jacek Doktor
MCSA+M
Zaloguj się, żeby odpowiedzieć

Microsoft Most Valuable Professional (MVP) noise
Top10

wypowiedzi: 9390
od: 2003-09-19




Odp: Server Manager z linii poleceń 2008-03-21 (Pt) 23:00
Dzieki :D Hmmmm SnagIt najlepszy lapacz ekranu - niestety platny. No ale nie wszystko co najlepsze jest za free. Polecam!

--
Robert Stuczynski (Noise) - MVP
Blog - http://noiserobert.spaces.live.com http://www.8080.pl
https://www.quiz2008.pl
Zaloguj się, żeby odpowiedzieć

Microsoft Most Valuable Professional (MVP) Doktor
Ekspert WSS

wypowiedzi: 2036
od: 2006-07-26
Będę na C2C 2010




Odp: Server Manager z linii poleceń 2008-03-22 (So) 01:25
Eeeeeeeee nie jest taki drogi :)

--
Jacek Doktor
MCSA+M
Zaloguj się, żeby odpowiedzieć