Top Menu

Tag Archives Windows PowerShell

Wczoraj napisałem post Sprawdzenie wersji komponentów integracyjnych Hyper-V z poziomu gościa, w którym przedstawiłem jak sprawdzić wersję komponentów integracyjnych Hyper-V z poziomu gościa na dwa sposoby. Tym razem pokażę, jak to uczynić za pomocą PowerShell w Windows Server 8 Hyper-V z poziomu hosta.

Wystarczy wydać następujące polecenie:

Get-VM | Format-Table Name, IntegrationServicesVersion

CheckICPS001

W tym przypadku ograniczyłem się jedynie do wyświetlenia tabeli z dwoma kolumnami: nazwa maszyny wirtualnej oraz wersja komponentów integracyjnych. Tabela pokazuje wszystkie (w moim przypadku akurat jest jedna) maszyny wirtualne na hoście, na którym został wykonany cmdlet.

Zachęcam do zabaw z PowerShell. Poniżej kilka moich przykładów.:

To samo co w głównym przykładzie, ale na innym hoście (zdalnie):

Get-VM –ComputerName 'MyHVHost' | Format-Table Name, IntegrationServicesVersion

Przypisanie wersji komponentów integracyjnych konkretnej maszyny wirtualnej do zmiennej:

$MyVMIC = Get-VM –Name 'MyVM' | Select-Object IntegrationServicesVersion

To samo co powyżej, lecz na zdalnym hoscie Hyper-V:

$MyVMIC = Get-VM –Name 'MyVM' –ComputerName 'MyHVHost' | Select-Object IntegrationServicesVersion

Wyświetlenie zmiennej $MyVMIC z podaniem właściwości. Wtedy PowerShell, sam ładnie podzieli wersje na Major, Minor, Build oraz Revision Smile

Write-Output $MyVMIC.IntegrationServicesVersion

CheckICPS002

UWAGA! Aby “zbadać” wersję komponentów integracyjnych na Hyper-V w Windows Server 8, maszyny wirtualne muszą być uruchomione!

Firma Microsoft od jakiegoś czasu w każdy swój nowo powstały produkt stara się opakować w komandlety PowerShell. Nie ukrywam, że mnie się ten pomysł podoba. Dlaczego? Bo PowerShell jest power Winking smile

Nadchodzący Windows 8 jest również dopakowany nowymi cmdletami. Jednym z nich jest Show-Command. Co to takiego, ze poświęcam temu jednemu cmdletowi aż cały post? Otóż jest to cmdlet, który powstał dla osób, które mają bariery w nauce PowerShell i przestawienia się w pełni na niego (to jest moja definicja tego cmdletu). Ok, do rzeczy…

Jak uruchomię ten cmdlet to pokaże się okienko GUI z dostanymi cmdletami w systemie. Mogę dzięki temu przejrzeć sobie listę i wyszukać coś czego potencjalnie mogę użyć. Łatwo można się domyślić czego się oczekuję, ze względu na budowę cmdletów PowerShell: Czasownik-Rzeczownik.

Show-Command

PSSC001

Zakładając, że wiem jaki cmdlet potrzebuję to mogę połączyć Show-Command z moim cmdletem (np. Get-VM). Wtedy zostanie wyświetlone okienko GUI z parametrami mojego cmdletu.

Show-Command Get-VM

PSSC002

Teraz po wypełnieniu potrzebnych dla mnie pól z parametrami mogę zrobić dwie operacje. Jedną z nich jest Copy. Wtedy zostanie skopiowana do schowka składnia wybranego cmdletu wraz z parametrami.

PSSC003

Drugą opcją jest Run. Po wybraniu tej opcji, cmdlet zostanie bezpośrednio przekazany cmdlet do powłoki PowerShell i wykonany.

PSSC004

Małym minusem wg mnie jest to, że mógł by się on najpierw pokazać w postaci “pisanej”, a nie zwracać tylko wynik – ale to już takie moje czepianie się lekko na siłę Smile with tongue out

Miłej zabawy z Show-Command. Mnie się podoba Smile

W dotychczasowych wersjach Hyper-V dostępnych w Widnows Server 2008 oraz Widnows Server 2008 R2 nie było komandletów PowerShell dla Hyper-V – przynajmniej dostępnych oficjalnie z pudełka prosto od producenta. Jak ktoś chciał to mógł skorzystać z nieoficjalnej otwartej biblioteki PowerShell management Library for Hyper-V i cieszyć się komandletami PowerShell dla Hyper-V, które w rzeczywistości tylko mapowały klasy wirtualizacyjne Windows Management Instrumentation (WMI).

Sytuacja zmienia się w Hyper-V w Windows Server 8 – są oficjalne komandlety PowerShell dla Hyper-V. Na chwilę obecną jest ich 162 i można zrobić nimi praktycznie wszystkie zadanie administracyjne oraz konfigurację Hyper-V. Oczywiście komandlety oparte są o PowerShell w wersji 3.

Spora ilość komandletów PowerShell dla Hyper-V jest już częściowo udokumentowana na stronach TechNet pod tym adresem: http://technet.microsoft.com/en-us/library/hh848559.aspx

Aby wyświetlić wszystkie komandlaty PowerShell dla Hyper-V, użyj polecenia Get-Command:

Get-Command -Module Hyper-V

PSHVInfo001

Aby ograniczyć się do komandletów z określonym słowem klucz (np. network) w rzeczowniku, użyj parametru -Noun:

Get-Command -Module Hyper-V -Noun *network*

PSHVInfo002

Aby ograniczyć się do komandletów z określonym słowem klucz (np. Get) w czasowniku, użyj parametru -Verb:

Get-Command -Module Hyper-V -Verb Get

PSHVInfo005

Aby zobaczyć podstawową pomoc dotyczącą użycia konkretnego komandletu (np. Get-VMNetworkAdapter), daj na koniec parametr “znak zapytania” -?:

Get-VMNetworkAdapter -?

PSHVInfo003

Aby zobaczyć rozszerzoną pomoc dotyczącą użycia konkretnego komandletu (np. Get-VMNetworkAdapter), użyj polecenia Get-Help z parametrem -Full:

Get-Help Get-VMNetworkAdapter -Full

PSHVInfo004

Close