Najważniejsze polecenia PowerShell dla Hyper-V: czym są i jak z nich korzystać
Zarządzanie środowiskami Hyper-V może stanowić nie lada wyzwanie. Dlatego potrzebne jest wydajne narzędzie do zarządzania, które pozwoli konfigurować i kontrolować infrastrukturę wirtualną z poziomu centralnej konsoli. Oprócz graficznego interfejsu użytkownika Hyper-V oferuje interfejs wiersza poleceń wykorzystujący PowerShell do zarządzania Hyper-V.
W tym wpisie na blogu opisujemy, jak działa PowerShell, które polecenia PowerShell dla Hyper-V mogą poprawić wydajność maszyn wirtualnych (VM) oraz w jaki sposób to narzędzie CLI może znacznie uprościć proces zarządzania Hyper-V.
Czym jest PowerShell?
PowerShell to platforma do automatyzacji zadań i zarządzania konfiguracją opracowana przez firmę Microsoft, obejmująca powłokę wiersza poleceń oraz powiązany język skryptowy oparty na platformach .NET Framework i .NET Core.
Polecenia PowerShell, znane również jako cmdlety, można wykorzystać do automatyzacji różnych zadań poprzez połączenie kilku cmdletów w jednym skrypcie PowerShell. Firma Microsoft opracowała ponad sto podstawowych poleceń PowerShell, które można wykorzystać do wykonywania zarówno złożonych, jak i podstawowych zadań.
Co potrafi PowerShell?
PowerShell może pomóc administratorom Hyper-V w szybkiej automatyzacji zadań związanych z administracją systemami operacyjnymi (Linux, macOS i Windows) oraz powiązanymi procesami. W przeciwieństwie do narzędzi GUI, PowerShell pozwala zarządzać całym systemem wyłącznie za pomocą wiersza poleceń.
Ponadto można zapisać wymagane polecenia PowerShell dla Hyper-V w pliku tekstowym (z rozszerzeniem .ps1 ), a następnie uruchomić ten skrypt w celu wykonania określonych zadań. Co więcej, za pomocą Harmonogramu zadań można zaplanować uruchamianie skryptów PowerShell o określonej porze.
Jak otworzyć PowerShell
Istnieje kilka sposobów uruchomienia PowerShell w Hyper-V. Łatwym sposobem uzyskania dostępu do PowerShell jest bezpośrednie połączenie się z serwerem Hyper-V i uruchomienie go stamtąd. Aby połączyć się zdalnie z hostem Hyper-V, musimy upewnić się, że funkcja Pulpit zdalny jest włączona. Po włączeniu funkcji Pulpit zdalny możemy użyć narzędzia Pulpit zdalny i połączyć się zdalnie z serwerem tak samo, jak w przypadku dowolnego graficznego interfejsu użytkownika (GUI) systemu Windows Server.
Otwieranie programu PowerShell z poziomu GUI
Aby otworzyć program PowerShell w systemie operacyjnym opartym na GUI, wykonaj następujące czynności:
- Należy kliknąć
Starti wpisaćPowerShellw pasku wyszukiwania. - Kliknij prawym przyciskiem myszy ikonę PowerShell i wybierz
Run as Administrator, aby otworzyć PowerShell w trybie podwyższonym.
Otwieranie PowerShell z wiersza poleceń
Aby uruchomić PowerShell w systemie Windows Server Core lub Hyper-V Server, wykonaj następujące czynności:
- Wpisz
PowerShellw wierszu poleceń i naciśnijEnter. - Sesja Windows PowerShell powinna uruchomić się automatycznie w oknie wiersza poleceń. W wierszu poleceń zostanie wówczas dodany prefiks „PS”, wskazujący, że uruchomiono sesję Windows PowerShell.
- Po przejściu do środowiska PowerShell można korzystać z poleceń PowerShell przeznaczonych dla platformy Hyper-V, które omówimy w dalszej części tego wpisu.
Ustawienia zdalne
Aby sprawdzić ustawienia pulpitu zdalnego w systemie Windows Server Core lub Hyper-V Server, można uruchomić narzędzie sconfig (jeśli nie zostało jeszcze uruchomione) i skonfigurować je za pomocą opcji 7. Ponadto po nawiązaniu zdalnego połączenia z hostem Hyper-V można użyć opcji 15 do Exit to Command Line.
Po przejściu do tego miejsca użytkownik znajdzie się w zwykłym środowisku cmd.exe — a nie w PowerShell. Aby uruchomić środowisko PowerShell, wystarczy wpisać powershell w wierszu poleceń.
Zdalny PowerShell
Korzystając z PowerShell, można również zdalnie współpracować z Hyper-V. Innymi słowy, można zdalnie wykonywać polecenia PowerShell na hoście Hyper-V bez nawiązywania połączenia z Pulpitem zdalnym.
Z stacji roboczej do administracji, na której zainstalowano narzędzia do zarządzania Hyper-V, można uruchamiać polecenia Hyper-V. Najpierw należy zainstalować narzędzia Hyper-V, w tym te polecenia (cmdlets).
Install-WindowsFeature RSAT-Hyper-V-Tools
Po załadowaniu narzędzi możemy uruchamiać te same typy poleceń, używając parametru -computername wskazującego na nasz host Hyper-V, tak jak na poniższym zrzucie ekranu. Przekazujemy nazwę naszego hosta do polecenia PowerShell get-vm .
12 podstawowych poleceń PowerShell dla Hyper-V
Istnieje wiele skutecznych poleceń PowerShell dla Hyper-V, które mogą ułatwić i uprościć proces zarządzania Hyper-V. Przyjrzyjmy się, jak można używać różnych poleceń PowerShell dla Hyper-V.
Get-Command
Zacznijmy od polecenia PowerShell dla Hyper-V, które jest pomocne dla użytkowników, którzy dopiero zaczynają przygodę z PowerShell i nie wiedzą, których cmdletów należy używać i w jaki sposób. Uruchamiając cmdlet Get-Command , można wyświetlić pełną listę wszystkich dostępnych cmdletów (poleceń Windows PowerShell), funkcji i aliasów zainstalowanych na komputerze.
Jeśli jednak chcesz zawęzić wyszukiwanie i uzyskać listę poleceń PowerShell Hyper-V spełniających określone kryteria, możesz użyć polecenia cmdlet Get-Command *-VM w celu znalezienia listy poleceń umożliwiających sterowanie i konfigurację maszyn wirtualnych.
Zmieniając parametr VM na VHD , można uzyskać pełną listę poleceń cmdlet służących do zarządzania wirtualnymi dyskami twardymi. W ten sposób można wypróbować różne parametry wyszukiwania, aby uzyskać potrzebne wyniki. 
Get-Help
Po wybraniu polecenia PowerShell dla Hyper-V, którego chcesz użyć, możesz uzyskać więcej informacji na temat tego polecenia. W tym celu możesz skorzystać z polecenia Get-Help. Na przykład, aby dowiedzieć się więcej o poleceniu Get-VM, wpisz:
Get-Help Get-VM
Get-VM
Polecenie PowerShell Get-VM pozwala wyświetlić wszystkie maszyny wirtualne dostępne na jednym lub kilku hostach Hyper-V. Aby wyświetlić wszystkie maszyny wirtualne na lokalnym hoście Hyper-V, należy uruchomić polecenie PowerShell Get-VM .
Na ekranie PowerShell można wyświetlić listę dostępnych maszyn wirtualnych, w tym ich nazwy, stan, wykorzystanie Procesora, przydzieloną pamięć, czas pracy, status i wersję.
Start-VM
To konkretne polecenie PowerShell start VM pomaga uruchomić maszynę wirtualną. W tym celu należy uruchomić następujące polecenie PowerShell dla Hyper-V:
Start-VM -Name 'Windows Server 2016'
W rezultacie maszyna wirtualna o nazwie Windows Server 2016 zostanie uruchomiona na lokalnym hoście Hyper-V. Sprawdźmy, czy maszyna wirtualna faktycznie się uruchomiła, uruchamiając polecenie cmdlet Get-VM .
Ponadto można użyć zmodyfikowanej wersji polecenia cmdlet PowerShell Start-VM do uruchamiania maszyn wirtualnych tylko wtedy, gdy ich nazwy zaczynają się od Hyper-V :
Start-VM -Name Hyper-V*
Jak widać, maszyna wirtualna o nazwie Hyper-V Server Desktop uruchomiła się pomyślnie. Jednak inna maszyna wirtualna ( Hyper-V Server 2012 ) była już w stanie uruchomienia i PowerShell powiadamia o tym.
Stop-VM
Polecenie cmdlet Stop-VM pozwala wyłączyć lub zamknąć maszynę wirtualną. W tym celu można uruchomić następujące polecenie cmdlet:
Stop-VM -Name 'Windows Server 2016'
Jak widać, wybrana maszyna wirtualna została pomyślnie wyłączona za pośrednictwem systemu operacyjnego gościa.
Innym przykładem jest wyłączenie maszyn wirtualnych, których nazwy zaczynają się od Hyper-V :
Stop-VM -Name Hyper-V* -TurnOff
Jeśli okaże się, że maszyna wirtualna nie odpowiada, można wymusić jej wyłączenie. W tym celu należy uruchomić następujący polecenie cmdlet PowerShell:
Stop-VM -Name 'Windows Server 2016' -Force
Należy pamiętać, że wymuszone wyłączenie jest podobne do odłączenia zasilania w przypadku komputera fizycznego, co oznacza, że może skutkować utratą niezapisanych danych aplikacji. W takim przypadku zaleca się zapisanie maszyny wirtualnej, aby uniknąć potencjalnej utraty danych. W tym celu należy uruchomić polecenie cmdlet Save-VM , co jest równoważne z przełączeniem komputera fizycznego w stan hibernacji:
Save-VM -Name 'Windows Server 2016'
Jeśli chcesz zapisać maszyny wirtualne, których nazwy zaczynają się od Hyper-V , uruchom następujące polecenie PowerShell dla Hyper-V:
Get-VM -Name Hyper-V* | Save-VM
Checkpoint-VM
Polecenie cmdlet Checkpoint-VM pomaga utworzyć Punkt kontrolny maszyny wirtualnej Hyper-V (znany również jako migawka Hyper-V). Uruchom poniższy cmdlet, aby utworzyć punkt kontrolny o nazwie Update1 dla określonej maszyny wirtualnej ( Windows Server 2016 ):
Checkpoint-VM -Name 'Windows Server 2016' -SnapshotName Update1
Aby sprawdzić, czy maszyna wirtualna została pomyślnie utworzona, użyj następującego polecenia PowerShell dla Hyper-V:
Get-VMSnapshot -VMName 'Windows Server 2016'
Z drugiej strony, jeśli chcesz usunąć określone migawki Hyper-V, możesz użyć cmdletu Remove-VMSnapshot . Na przykład, jeśli chcemy usunąć wszystkie migawki maszyn wirtualnych, których nazwy zaczynają się od Testing , powinniśmy uruchomić następujący cmdlet:
Get-VM 'Hyper-V Server 2012' | Remove-VMSnapshot -Name Testing*
Powyższy zrzut ekranu przedstawia cały proces usuwania wybranych migawek Hyper-V.
Test-VHD
Polecenie PowerShell dla Hyper-V służy do sprawdzania, czy plik wirtualnego dysku twardego faktycznie istnieje i czy można go użyć do wdrażania Hyper-V. Polecenie to wygląda następująco:
Test-VHD -Path C:Testing.vhd
Jeśli ścieżka do pliku VHD jest poprawna, na ekranie pojawi się następujący wynik:
Aby dowiedzieć się więcej o zarządzaniu wirtualnymi dyskami twardymi za pomocą poleceń PowerShell, zalecamy przeczytanie naszego wpisu na blogu na temat Podstawy pracy z plikami VHD i VHDX w Hyper-V.
Measure-VM
To polecenie PowerShell dla Hyper-V pozwala zebrać dane dotyczące wykorzystania zasobów dla konkretnej maszyny wirtualnej. Na przykład uruchom następujący cmdlet, aby uzyskać informacje o wykorzystaniu procesora, pamięci RAM, pojemności dysku i ruchu sieciowym dla maszyny wirtualnej o nazwie Windows Server 2016 :
Measure-VM -VMName 'Windows Server 2016'
Należy pamiętać, że cmdlet Measure-VM może zgłaszać wymagane dane dopiero po włączeniu pomiaru zasobów na maszynie wirtualnej. Aby włączyć pomiar zasobów, użyj następującego polecenia PowerShell Hyper-V:
Enable-VMResourceMetering -VMName 'Windows Server 2016'
Get-VMNetworkAdapter
Innym pomocnym poleceniem cmdlet PowerShell jest Get-VMNetworkAdapter, które pozwala zidentyfikować wirtualne karty sieciowe wybranej maszyny wirtualnej Hyper-V. Na przykład, jeśli chcesz znaleźć wirtualne karty sieciowe ze wszystkich maszyn wirtualnych, a także z systemu operacyjnego zarządzania, uruchom następujące polecenie PowerShell Hyper-V:
Get-VMNetworkAdapter –All
Jeśli wszystko jest w porządku, w konsoli PowerShell powinny pojawić się następujące informacje:
Korzystając z poleceń PowerShell Hyper-V, możesz wykonywać różne proste, a także złożone zadania związane z kartami sieciowymi Hyper-V. Zapoznaj się z naszym przewodnikiem po poleceniach, które mogą pomóc zarządzanie i konfigurowanie wirtualnych kart sieciowych w Twoim środowisku Hyper-V.
Update-VMVersion
PowerShell posiada polecenie cmdlet, które pozwala zaktualizować wersję wybranej maszyny wirtualnej:
Update-VMVersion -Name 'TestVM'
Po uruchomieniu polecenia PowerShell Hyper-V maszyna wirtualna o nazwie TestVM może zostać zaktualizowana do aktualnej wersji. 
Get-Process
To polecenie PowerShell dla środowiska Hyper-V pozwala wyświetlić wszystkie bieżące procesy na komputerze lokalnym. Po uruchomieniu Get-Process cmdletu na ekranie pojawią się następujące informacje:
Tabela ta zawiera informacje dotyczące:
- liczbie uchwytów otwartych przez proces
- ilości pamięci niepodstronicowej używanej przez proces
- ilości pamięci podstronicowej używanej przez proces
- rozmiarze zestawu roboczego procesu
- ilości pamięci wirtualnej używanej przez proces
- czasie procesora przydzielonym wszystkim procesorom
- identyfikatorze procesu
- nazwie procesu
Aby zawęzić wyszukiwanie i znaleźć konkretny proces, należy wpisać nazwę lub identyfikator procesu. Na przykład, jeśli chcesz dowiedzieć się, jak obecnie działa program Microsoft Word, przejrzyj listę wszystkich uruchomionych procesów i znajdź wiersz zawierający informacje o programie Microsoft Word (tj. WinWord), w tym jego identyfikator procesu. Korzystając z identyfikatora procesu, możesz uruchomić następujący cmdlet, aby uzyskać niezbędne dane:
Get-Process -ID 8892
Ponadto dane dotyczące bieżących procesów WinWord mogą być przedstawione w innym formacie, tj. jako lista właściwości. Uruchom ten cmdlet, aby uzyskać bardziej szczegółowy wynik:
Get-Process WINWORD | Format-List *
Po uzyskaniu danych procesu możesz uruchomić następujące cmdlety:
Stop-Processpozwala zatrzymać jeden lub więcej uruchomionych procesów.Wait-Processpozwala poczekać na zatrzymanie jednego lub więcej uruchomionych procesów przed umożliwieniem jakiegokolwiek innego wprowadzania danych.Start-Processpozwala uruchomić jeden lub więcej procesów na komputerze lokalnym.Debug-Processpozwala podłączyć debugger do jednego lub więcej uruchomionych procesów na komputerze lokalnym.
Na przykład, jeśli chcesz uruchomić aplikację Notatnik z poziomu PowerShell, należy uruchomić następujący cmdlet:
Start-Process -FilePath "notepad.exe"
Innym przykładem jest sytuacja, w której otworzyłeś PowerShell w trybie „normalnym”, ale musisz uruchomić PowerShell w trybie podwyższonym, aby uzyskać dostęp do uprawnień związanych z administracją. W takim przypadku uruchom następujące polecenie Hyper-V PowerShell:
Start-Process -FilePath "powershell" -Verb RunAs
Z drugiej strony, jeśli jeden z uruchomionych procesów przestanie odpowiadać, możesz uruchomić polecenie cmdlet Stop-Process , aby zatrzymać aplikację, w której wystąpiła awaria:
Stop-Process -Name "notepad"
W tym przypadku wszystkie instancje aplikacji Notatnik na komputerze lokalnym zostaną zatrzymane.
Każda instancja Notatnika ma swój własny identyfikator procesu. Jeśli chcesz zatrzymać konkretną instancję Notatnika, powinieneś użyć parametru ID w poleceniu cmdlet Stop-Process. W tym celu musisz najpierw uruchomić polecenie cmdlet Get-Process , znaleźć wymagane aktywne procesy i zidentyfikować identyfikator procesu, który chcesz zatrzymać.
Na przykład możesz zatrzymać konkretny proces Notatnika, identyfikując jego identyfikator i uruchamiając następujące polecenie PowerShell dla Hyper-V:
Stop-Process -ID 5052
W rezultacie zatrzymany zostanie tylko wybrany proces Notatnika.
Te polecenia PowerShell pozwalają wykryć proces, który zużywa niepożądane zasoby i obniża wydajność Hyper-V, aby zakończyć ten proces.
Where-Object
To polecenie PowerShell dla Hyper-V pozwala filtrować obiekty potoku i znaleźć dokładnie te dane, których potrzebujesz. W tym przypadku musisz utworzyć skrypt PowerShell, w którym określisz, które obiekty mogą być przekazywane wzdłuż potoku. Korzystając z różnych kryteriów wyszukiwania, można znaleźć dowolny obiekt na komputerze lokalnym.
Na przykład, jeśli chcesz zlokalizować procesy, które przestały działać, użyj tego cmdletu:
Get-Service | Where-Object {$_.Status -eq 'Stopped'}
Innym przykładem użycia cmdletu Where-Object jest sytuacja, gdy chcesz znaleźć konkretny cmdlet. Poniższe polecenie PowerShell Hyper-V pomoże Ci znaleźć wszystkie cmdlety, które zaczynają się od Wait :
Get-Command | Where-Object {$_.Name -like '*wait*'}
Kolejny cmdlet Where-Object pomoże Ci znaleźć konkretny proces wyłącznie na podstawie jego nazwy. Uruchamiając poniższe polecenie, można uzyskać listę wszystkich procesów, których nazwy zaczynają się od sys :
Get-Process | Where-Object {$_.ProcessName -Match "^sys.*"}
Jak utworzyć maszynę wirtualną Hyper-V za pomocą PowerShell
Jedną z potężnych wbudowanych funkcji Hyper-V jest umożliwienie korzystania z PowerShell do operacji zarządzania. Wśród wielu rzeczy, które możemy zrobić za pomocą PowerShell w Hyper-V, jest tworzenie maszyn wirtualnych. Przyjrzyjmy się zestawowi poleceń PowerShell dla Hyper-V służących do tworzenia nowych maszyn wirtualnych.
Polecenia PowerShell do tworzenia nowej maszyny wirtualnej
Aby utworzyć nową maszynę wirtualną generacji 2 z zupełnie nowym dyskiem twardym VHDX o pojemności 60 GB i podłączyć ją do konkretnego przełącznik wirtualny (w tym przypadku „ ExternalSwitch ”), uruchom następujące polecenia PowerShell na hoście Hyper-V.
-
Tworzenie maszyny wirtualnej:
new-vm -Name "WSTEST" -MemoryStartupBytes 2GB -Generation 2 -NewVHDPath "D:hyper-vvirtualhard disksWSTEST.vhdx" -NewVHDSizeBytes 60000000000 -Switchname "ExternalSwitch" -
Aby dodać napęd DVD wraz z obrazem ISO do uruchamiania, możemy wykonać dodatkowe polecenia:
Add-vmscsicontroller -vmname WSTESTAdd-vmdvddrive -vmnname WSTEST -controllernumber 1 -controllerlocation 0 -path D:ISOmy.iso -
Jeśli chcemy utworzyć dysk o stałym rozmiarze i podłączyć go do naszej maszyny wirtualnej, możemy wykonać poniższe polecenia, aby utworzyć plik VHDX o stałym rozmiarze i podłączyć go do naszej maszyny wirtualnej:
new-vhd -path "d:hyper-vvirtual hard disks.wstest.vhdx" -sizebytes 60GB -fixedadd-vmharddiskdrive -vmname WSTEST -path "d:hyper-vvirtual hard diskswstest.vhdx"
Wnioski
PowerShell może początkowo wydawać się onieśmielający, ale gdy już nauczysz się z nim pracować, szybko odkryjesz, jak korzystać z poleceń Hyper-V PowerShell i usprawnić administrację w swoim środowisku Hyper-V. Pamiętaj tylko, że niezależnie od tego, czego używasz do zarządzania maszynami wirtualnymi, musisz wykonać kopie zapasowe, aby uniknąć utraty danych i przestojów.
NAKIVO Backup & Replication to niezawodne i wydajne rozwiązanie do ochrony danych, które pomaga chronić środowiska VMware, Hyper-V, Nutanix, AWS EC2, Linux, Windows i Microsoft 365.
























