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.

NAKIVO do tworzenia kopii zapasowej Hyper-V

NAKIVO do tworzenia kopii zapasowej Hyper-V

Kopie zapasowe bezagentowe spójne z aplikacją dla Hyper-V. Ochrona przed oprogramowaniem wymuszającym okup, natychmiastowe uruchamianie maszyn wirtualnych z kopii zapasowej, wsparcie dla innych platform wirtualnych i fizycznych oraz wiele innych funkcji.

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:

  1. Należy kliknąć Start i wpisać PowerShell w pasku wyszukiwania.
  2. Kliknij prawym przyciskiem myszy ikonę PowerShell i wybierz Run as Administrator , aby otworzyć PowerShell w trybie podwyższonym.

How to run PowerShell in Windows

Otwieranie PowerShell z wiersza poleceń

Aby uruchomić PowerShell w systemie Windows Server Core lub Hyper-V Server, wykonaj następujące czynności:

  1. Wpisz PowerShell w wierszu poleceń i naciśnij Enter.
  2. 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.
  3. 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.

How to run PowerShell in Windows command prompt

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.

Enabling Remote desktop to run PowerShell commands on a Hyper-V host

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ń.

Running PowerShell commands

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 .

Running PowerShell Hyper-V commands remotely

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.

The Get-VM PowerShell cmdlet

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.

Using the Get-Command PowerShell cmdlet

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. Using the Get-Command cmdlet to display commands to work with VHD

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

Using the Get-Help and Get-VM Hyper-V PowerShell commands

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 .

PowerShell Get-VM details

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 .

How to use the start VM PowerShell cmdlet

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*

PowerShell start VM

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'

Using Stop-VM and Get-VM PowerShell commands

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

Using the Stop-VM and Get-VM PowerShell Hyper-V commands

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

Using the Save-VM and Get-VM PowerShell commands for Hyper-V

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'

Using the Hyper-V PowerShell commands to create a VM snapshot (checkpoint)

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*

Windows PowerShell commands to delete snapshots for a Hyper-V VM

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:

An example of using the Test-VHD command

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'

PowerShell get VM information

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:

PowerShell get VM information about network adapters

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. How to update VM Version in PowerShell

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:

Viewing running processes on a Hyper-V host

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

Viewing the ID of the running process on a Hyper-V host

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 *

Viewing the details about the process on a Hyper-V host in PowerShell

Po uzyskaniu danych procesu możesz uruchomić następujące cmdlety:

  • Stop-Process pozwala zatrzymać jeden lub więcej uruchomionych procesów.
  • Wait-Process pozwala poczekać na zatrzymanie jednego lub więcej uruchomionych procesów przed umożliwieniem jakiegokolwiek innego wprowadzania danych.
  • Start-Process pozwala uruchomić jeden lub więcej procesów na komputerze lokalnym.
  • Debug-Process pozwala 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

How to run PowerShell commands in the elevated mode

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ć.

Stopping the needed process in PowerShell

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*'}

An example of using the Where-Object cmdlet in PowerShell

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.*"}

How to find the process based only on its name

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.

  1. Tworzenie maszyny wirtualnej:

    new-vm -Name "WSTEST" -MemoryStartupBytes 2GB -Generation 2 -NewVHDPath "D:hyper-vvirtualhard disksWSTEST.vhdx" -NewVHDSizeBytes 60000000000 -Switchname "ExternalSwitch"

  2. Aby dodać napęd DVD wraz z obrazem ISO do uruchamiania, możemy wykonać dodatkowe polecenia:

    Add-vmscsicontroller -vmname WSTEST

    Add-vmdvddrive -vmnname WSTEST -controllernumber 1 -controllerlocation 0 -path D:ISOmy.iso

  3. 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 -fixed

    add-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.

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby poznać wszystkie funkcje rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie trzeba podawać danych karty kredytowej.

People also read