Tag Archives Windows PowerShell
Poradę opublikowałem na portalu WSS.pl: [Porada] Instalacja roli Hyper-V w Windows Server 2012 z poziomu 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
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
Write-Output $MyVMIC.IntegrationServicesVersion
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
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
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
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.
Drugą opcją jest Run. Po wybraniu tej opcji, cmdlet zostanie bezpośrednio przekazany cmdlet do powłoki PowerShell i wykonany.
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łę
Miłej zabawy z Show-Command. Mnie się podoba
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
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*
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
Aby zobaczyć podstawową pomoc dotyczącą użycia konkretnego komandletu (np. Get-VMNetworkAdapter), daj na koniec parametr “znak zapytania” -?:
Get-VMNetworkAdapter -?
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