Các lệnh PowerShell cơ bản cho Hyper-V: Chúng là gì và cách sử dụng

Việc quản lý môi trường Hyper-V có thể là một nhiệm vụ đầy thách thức. Do đó, bạn cần một công cụ quản lý mạnh mẽ để cấu hình và điều khiển hạ tầng ảo của mình từ một bảng điều khiển trung tâm. Ngoài giao diện người dùng đồ họa, Hyper-V còn cung cấp giao diện dòng lệnh sử dụng PowerShell để quản lý Hyper-V.

Trong bài viết blog này, chúng tôi sẽ mô tả cách PowerShell hoạt động, các lệnh PowerShell nào của Hyper-V có thể cải thiện hiệu suất của máy ảo (VM), và cách công cụ CLI này có thể đơn giản hóa đáng kể quy trình quản lý Hyper-V.

NAKIVO cho sao lưu Hyper-V

NAKIVO cho sao lưu Hyper-V

Sao lưu không cần cài đặt phần mềm đại lý, hỗ trợ nhận diện ứng dụng cho Hyper-V. Bảo vệ chống ransomware, khởi động máy ảo ngay lập tức từ bản sao lưu, hỗ trợ các nền tảng ảo hóa và vật lý khác, cùng nhiều tính năng khác.

PowerShell là gì?

PowerShell là một khung công tác tự động hóa tác vụ và quản lý cấu hình do Microsoft phát triển, bao gồm một vỏ dòng lệnh và ngôn ngữ kịch bản liên quan được xây dựng trên nền tảng .NET Framework và .NET Core.

Các lệnh PowerShell, còn được gọi là cmdlets, có thể được sử dụng để tự động hóa các tác vụ khác nhau bằng cách sắp xếp nhiều cmdlets trong một kịch bản PowerShell duy nhất. Microsoft đã phát triển hơn một trăm lệnh PowerShell cốt lõi có thể được sử dụng để thực hiện các tác vụ phức tạp cũng như cơ bản.

PowerShell có thể làm gì?

PowerShell có thể giúp các quản trị viên Hyper-V tự động hóa nhanh chóng các tác vụ quản lý hệ điều hành (Linux, macOS và Windows) cùng các quy trình liên quan. Khác với các công cụ giao diện đồ họa (GUI), PowerShell cho phép bạn quản lý toàn bộ hệ thống chỉ thông qua dòng lệnh.

Hơn nữa, bạn có thể lưu các lệnh PowerShell cần thiết cho Hyper-V vào một tệp văn bản (với phần mở rộng .ps1 ) và sau đó chạy tệp kịch bản này để thực hiện các tác vụ cụ thể. Hơn nữa, bạn có thể lên lịch cho các kịch bản PowerShell chạy vào một thời điểm cụ thể bằng Trình lập lịch tác vụ.

Cách mở PowerShell

Có một số cách để chạy PowerShell trong Hyper-V. Cách đơn giản nhất để truy cập PowerShell là kết nối trực tiếp với máy chủ Hyper-V và khởi chạy từ đó. Để kết nối từ xa với máy chủ Hyper-V, chúng ta cần đảm bảo rằng Remote Desktop đã được bật. Sau khi Remote Desktop được bật, chúng ta có thể sử dụng tiện ích Remote Desktop và kết nối từ xa với máy chủ như cách chúng ta làm với bất kỳ giao diện người dùng đồ họa (GUI) nào của Windows Server.

Mở PowerShell từ GUI

Để mở PowerShell trong hệ điều hành dựa trên GUI, hãy làm theo các bước sau:

  1. Bạn cần nhấp vào Start và nhập PowerShell vào thanh tìm kiếm.
  2. Nhấp chuột phải vào biểu tượng PowerShell và chọn Run as Administrator để mở PowerShell ở chế độ nâng cao.

How to run PowerShell in Windows

Mở PowerShell từ dòng lệnh

Để chạy PowerShell nếu bạn đang sử dụng Windows Server Core hoặc Hyper-V Server, hãy làm theo các bước sau:

  1. Nhập PowerShell vào Command Prompt và nhấn Enter.
  2. Một phiên Windows PowerShell sẽ tự động khởi động trong cửa sổ Command Prompt. Tiền tố “PS” sẽ được thêm vào dòng lệnh để cho biết bạn đã khởi chạy phiên Windows PowerShell.
  3. Khi đã vào PowerShell, bạn có thể sử dụng các lệnh PowerShell dành riêng cho Hyper-V, mà chúng tôi sẽ đề cập chi tiết hơn ở phần sau của bài viết này.

How to run PowerShell in Windows command prompt

Cài đặt từ xa

Để kiểm tra cài đặt máy tính từ xa trong Windows Server Core hoặc Hyper-V Server, bạn có thể khởi chạy tiện ích sconfig nếu chưa được khởi chạy và cấu hình nó bằng tùy chọn 7. Ngoài ra, sau khi kết nối từ xa với máy chủ Hyper-V, bạn có thể sử dụng tùy chọn 15 để Exit to Command Line.

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

Khi vào đó, bạn đang ở trong môi trường cmd.exe thông thường – không phải PowerShell. Để khởi chạy môi trường PowerShell, chỉ cần gõ powershell vào dòng lệnh.

Running PowerShell commands

PowerShell từ xa

Sử dụng PowerShell, bạn cũng có thể tương tác từ xa với Hyper-V. Nói cách khác, bạn có thể thực thi các lệnh PowerShell trên máy chủ Hyper-V mà không cần thiết lập kết nối Remote Desktop.

Từ máy trạm quản trị nơi đã cài đặt các công cụ quản lý Hyper-V, chúng ta có thể thực thi các lệnh Hyper-V. Đầu tiên, chúng ta cần cài đặt các công cụ Hyper-V, bao gồm các lệnh này (cmdlets).

Install-WindowsFeature RSAT-Hyper-V-Tools

Sau khi cài đặt các công cụ, chúng ta có thể chạy các lệnh tương tự bằng cách sử dụng tham số ` -computername ` trỏ đến máy chủ Hyper-V của mình, như trong hình ảnh minh họa bên dưới. Chúng ta truyền tên máy chủ của mình vào lệnh PowerShell ` get-vm `.

Running PowerShell Hyper-V commands remotely

12 Lệnh PowerShell Hyper-V thiết yếu

Có một số lệnh PowerShell Hyper-V hiệu quả có thể giúp quá trình quản lý Hyper-V trở nên dễ dàng và đơn giản. Hãy cùng xem cách sử dụng các lệnh PowerShell Hyper-V khác nhau.

Get-Command

Hãy bắt đầu với một lệnh PowerShell Hyper-V hữu ích cho người dùng mới làm quen với PowerShell và chưa biết nên sử dụng cmdlet nào cũng như cách sử dụng. Bằng cách chạy cmdlet Get-Command , bạn có thể xem danh sách đầy đủ tất cả các cmdlet (lệnh Windows PowerShell), hàm và biệt danh đã cài đặt trên máy tính.

The Get-VM PowerShell cmdlet

Tuy nhiên, nếu bạn muốn thu hẹp phạm vi tìm kiếm và lấy danh sách các lệnh PowerShell của Hyper-V phù hợp với các tiêu chí cụ thể, bạn có thể sử dụng lệnh Get-Command *-VM để tìm danh sách các lệnh cho phép bạn điều khiển và cấu hình máy ảo (VM).

Using the Get-Command PowerShell cmdlet

Bằng cách thay đổi tham số VM thành VHD , bạn có thể lấy danh sách đầy đủ các cmdlet được sử dụng để quản lý đĩa cứng ảo. Do đó, bạn có thể thử các tham số tìm kiếm khác nhau để có được kết quả mong muốn. Using the Get-Command cmdlet to display commands to work with VHD

Get-Help

Sau khi đã quyết định sẽ sử dụng lệnh PowerShell Hyper-V nào, bạn có thể tìm hiểu thêm về lệnh đó. Để làm điều này, bạn có thể sử dụng lệnh Get-Help. Ví dụ, để tìm hiểu thêm về lệnh Get-VM, hãy nhập như sau:

Get-Help Get-VM

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

Get-VM

Lệnh PowerShell Get-VM cho phép bạn xem tất cả các máy ảo (VM) có sẵn trên một hoặc nhiều máy chủ Hyper-V. Để xem tất cả các máy ảo trên máy chủ Hyper-V cục bộ, bạn nên chạy lệnh PowerShell ` Get-VM `.

PowerShell Get-VM details

Trên màn hình PowerShell, bạn có thể xem danh sách các máy ảo có sẵn, bao gồm tên, trạng thái, sử dụng CPU, bộ nhớ được phân bổ, thời gian hoạt động, trạng thái và phiên bản.

Start-VM

Lệnh PowerShell ` ` `start VM` ` ` này giúp bạn khởi động một máy ảo. Để thực hiện điều này, hãy chạy lệnh PowerShell Hyper-V sau:

Start-VM -Name 'Windows Server 2016'

Kết quả là, máy ảo có tên Windows Server 2016 đã được khởi động trên máy chủ Hyper-V cục bộ của bạn. Hãy kiểm tra xem máy ảo đã thực sự khởi động chưa bằng cách chạy lệnh Get-VM cmdlet.

How to use the start VM PowerShell cmdlet

Hơn nữa, bạn có thể sử dụng phiên bản sửa đổi của lệnh Start-VM PowerShell cmdlet để khởi động các máy ảo chỉ khi tên của chúng bắt đầu bằng Hyper-V :

Start-VM -Name Hyper-V*

PowerShell start VM

Như bạn có thể thấy, máy ảo có tên Hyper-V Server Desktop đã khởi động thành công. Tuy nhiên, một máy ảo khác ( Hyper-V Server 2012 ) đã ở trạng thái đang chạy và PowerShell thông báo cho bạn về điều này.

Stop-VM

Lệnh Stop-VM cho phép bạn tắt hoặc ngừng hoạt động của một máy ảo. Để thực hiện điều này, bạn có thể chạy lệnh sau:

Stop-VM -Name 'Windows Server 2016'

Using Stop-VM and Get-VM PowerShell commands

Như bạn có thể thấy, máy ảo đã được chọn đã được tắt thành công thông qua hệ điều hành khách.

Một ví dụ khác là bạn có thể tắt các máy ảo có tên bắt đầu bằng Hyper-V :

Stop-VM -Name Hyper-V* -TurnOff

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

Nếu bạn phát hiện máy ảo của mình không phản hồi, bạn có thể buộc tắt máy ảo đó. Để thực hiện điều này, hãy chạy lệnh PowerShell sau:

Stop-VM -Name 'Windows Server 2016' -Force

Lưu ý rằng việc tắt máy ảo bắt buộc tương tự như việc ngắt nguồn trên máy tính vật lý, có nghĩa là nó có thể dẫn đến mất dữ liệu ứng dụng chưa được lưu. Trong trường hợp này, bạn nên lưu máy ảo để tránh mất dữ liệu tiềm ẩn. Để thực hiện việc này, bạn cần chạy lệnh Save-VM , tương đương với việc đưa máy tính vật lý vào chế độ ngủ đông:

Save-VM -Name 'Windows Server 2016'

Nếu bạn muốn lưu các máy ảo có tên bắt đầu bằng Hyper-V , hãy chạy lệnh Hyper-V PowerShell sau:

Get-VM -Name Hyper-V* | Save-VM

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

Checkpoint-VM

Lệnh Checkpoint-VM giúp bạn tạo Điểm kiểm tra máy ảo Hyper-V (còn được gọi là ảnh chụp nhanh Hyper-V). Chạy lệnh cmdlet sau để tạo điểm kiểm tra có tên Update1 cho máy ảo cụ thể ( Windows Server 2016 ):

Checkpoint-VM -Name 'Windows Server 2016' -SnapshotName Update1

Để xác minh rằng máy ảo đã được tạo thành công, hãy sử dụng lệnh Hyper-V PowerShell sau:

Get-VMSnapshot -VMName 'Windows Server 2016'

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

Mặt khác, nếu bạn muốn xóa một số bản chụp nhanh Hyper-V nhất định, bạn có thể sử dụng lệnh cmdlet Remove-VMSnapshot . Ví dụ, nếu chúng ta muốn xóa tất cả các bản sao lưu máy ảo có tên bắt đầu bằng Testing , chúng ta nên chạy lệnh cmdlet sau:

Get-VM 'Hyper-V Server 2012' | Remove-VMSnapshot -Name Testing*

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

Ảnh chụp màn hình trên minh họa toàn bộ quá trình xóa các bản sao lưu Hyper-V đã chọn.

Test-VHD

Lệnh PowerShell Hyper-V này được thiết kế để xác minh rằng tệp đĩa cứng ảo thực sự tồn tại và có thể được sử dụng cho triển khai Hyper-V. Cmdlet này như sau:

Test-VHD -Path C:Testing.vhd

Trong trường hợp đường dẫn VHD hợp lệ, bạn sẽ thấy kết quả sau trên màn hình:

An example of using the Test-VHD command

Để tìm hiểu thêm về quản lý đĩa cứng ảo bằng các cmdlet PowerShell, chúng tôi khuyên bạn nên đọc bài viết trên blog của chúng tôi về Những kiến thức cơ bản về việc làm việc với các tệp VHD và VHDX của Hyper-V.

Measure-VM

Lệnh PowerShell Hyper-V này cho phép bạn thu thập dữ liệu sử dụng tài nguyên cho một máy ảo cụ thể. Ví dụ, hãy chạy lệnh cmdlet sau để tìm hiểu về việc sử dụng CPU, RAM, dung lượng đĩa và lưu lượng mạng cho máy ảo có tên Windows Server 2016 :

Measure-VM -VMName 'Windows Server 2016'

PowerShell get VM information

Lưu ý rằng lệnh cmdlet Measure-VM chỉ có thể báo cáo dữ liệu cần thiết sau khi tính năng đo lường tài nguyên đã được bật trên máy ảo. Để bật tính năng đo lường tài nguyên, hãy sử dụng lệnh Hyper-V PowerShell sau:

Enable-VMResourceMetering -VMName 'Windows Server 2016'

Get-VMNetworkAdapter

Một cmdlet PowerShell hữu ích khác là Get-VMNetworkAdapter, cho phép bạn xác định các bộ điều hợp mạng ảo của máy ảo đã chọn. Ví dụ, nếu bạn muốn tìm các bộ điều hợp mạng ảo từ tất cả các máy ảo cũng như hệ điều hành quản lý, bạn nên chạy lệnh PowerShell Hyper-V sau:

Get-VMNetworkAdapter –All

Nếu mọi thứ đúng, bạn sẽ thấy thông tin sau trong cửa sổ PowerShell:

PowerShell get VM information about network adapters

Sử dụng các lệnh PowerShell Hyper-V, bạn có thể thực hiện các tác vụ đơn giản cũng như phức tạp với các bộ điều hợp mạng Hyper-V của mình. Hãy tham khảo hướng dẫn của chúng tôi về các lệnh cmdlet có thể giúp quản lý và cấu hình bộ điều hợp mạng ảo trong môi trường Hyper-V của bạn.

Update-VMVersion

PowerShell có một cmdlet cho phép bạn cập nhật phiên bản của máy ảo (VM) đã chọn:

Update-VMVersion -Name 'TestVM'

Sau khi chạy lệnh PowerShell của Hyper-V, máy ảo có tên TestVM có thể được cập nhật lên phiên bản máy ảo hiện tại. How to update VM Version in PowerShell

Get-Process

Lệnh PowerShell Hyper-V này có thể giúp bạn xem tất cả các tiến trình hiện tại trên máy tính cục bộ của mình. Sau khi chạy lệnh Get-Process , bạn sẽ thấy các thông tin sau hiển thị trên màn hình:

Viewing running processes on a Hyper-V host

Bảng này bao gồm các thông tin về:

  • số lượng handle mà quá trình đã mở
  • lượng bộ nhớ không được phân trang mà quá trình đang sử dụng
  • lượng bộ nhớ có thể phân trang mà quá trình đang sử dụng
  • kích thước của tập làm việc của quá trình
  • lượng bộ nhớ ảo mà quá trình đang sử dụng
  • lượng thời gian xử lý đã được phân bổ cho tất cả các bộ xử lý
  • ID của quá trình
  • tên của quá trình

Để thu hẹp phạm vi tìm kiếm và tìm một quá trình cụ thể, bạn nên nhập tên hoặc ID của quá trình. Ví dụ, nếu bạn muốn biết Microsoft Word hiện đang hoạt động như thế nào, bạn nên xem qua danh sách tất cả các quá trình đang chạy và tìm dòng chứa thông tin về Microsoft Word (tức là WinWord), bao gồm ID quá trình của nó. Sử dụng ID quá trình, bạn có thể chạy lệnh cmdlet sau để lấy dữ liệu cần thiết:

Get-Process -ID 8892

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

Hơn nữa, dữ liệu về các quá trình WinWord hiện tại có thể được hiển thị dưới định dạng khác, tức là dưới dạng danh sách các thuộc tính. Chạy lệnh cmdlet này để nhận kết quả chi tiết hơn:

Get-Process WINWORD | Format-List *

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

Sau khi thu thập được dữ liệu quá trình, bạn có thể chạy các lệnh cmdlet sau:

  • Stop-Process cho phép bạn dừng một hoặc nhiều quá trình đang chạy.
  • Wait-Process cho phép bạn chờ một hoặc nhiều quá trình đang chạy bị dừng trước khi cho phép bất kỳ đầu vào nào khác.
  • Start-Process cho phép bạn khởi động một hoặc nhiều quá trình trên máy tính cục bộ.
  • Debug-Process cho phép bạn gắn trình gỡ lỗi vào một hoặc nhiều quá trình đang chạy trên máy tính cục bộ.

Ví dụ: nếu bạn muốn khởi chạy ứng dụng Notepad từ PowerShell, bạn nên chạy cmdlet sau:

Start-Process -FilePath "notepad.exe"

Một ví dụ khác là khi bạn đã mở PowerShell ở chế độ “bình thường”, nhưng bạn cần chạy PowerShell ở chế độ nâng cao để có quyền quản trị. Trong trường hợp này, hãy chạy lệnh Hyper-V PowerShell sau:

Start-Process -FilePath "powershell" -Verb RunAs

How to run PowerShell commands in the elevated mode

Mặt khác, nếu một trong các quy trình đang chạy ngừng phản hồi, bạn có thể chạy lệnh cmdlet Stop-Process để dừng ứng dụng bị lỗi:

Stop-Process -Name "notepad"

Trong trường hợp này, tất cả các phiên bản của ứng dụng Notepad trên máy tính cục bộ sẽ bị dừng.

Mỗi phiên bản Notepad có ID quy trình riêng. Nếu bạn muốn dừng một phiên bản Notepad cụ thể, bạn nên sử dụng tham số ID trong lệnh Stop-Process. Để thực hiện việc này, trước tiên bạn cần chạy lệnh ` ` `Get-Process` ` `, tìm các tiến trình đang hoạt động cần thiết và xác định ID tiến trình mà bạn muốn dừng.

Stopping the needed process in PowerShell

Ví dụ: bạn có thể dừng tiến trình Notepad cụ thể bằng cách xác định ID tiến trình của nó và chạy lệnh PowerShell Hyper-V sau:

Stop-Process -ID 5052

Kết quả là chỉ có tiến trình Notepad đã chọn bị dừng.

Các lệnh PowerShell này cho phép bạn phát hiện một tiến trình đang tiêu tốn tài nguyên không mong muốn và làm giảm hiệu suất Hyper-V để kết thúc tiến trình này.

Where-Object

Lệnh PowerShell Hyper-V này cho phép bạn lọc các đối tượng trong đường ống và tìm chính xác dữ liệu mà bạn cần. Trong trường hợp này, bạn cần tạo một tập lệnh PowerShell trong đó bạn chỉ định các đối tượng nào có thể được truyền qua đường ống. Sử dụng các tiêu chí tìm kiếm khác nhau, bạn có thể tìm bất kỳ đối tượng nào trên máy tính cục bộ.

Ví dụ, nếu bạn muốn tìm các quy trình đã ngừng chạy, hãy sử dụng cmdlet này:

Get-Service | Where-Object {$_.Status -eq 'Stopped'}

Một ví dụ khác về việc sử dụng cmdlet Where-Object là khi bạn muốn tìm một cmdlet cụ thể. Lệnh PowerShell Hyper-V sau đây có thể giúp bạn tìm tất cả các cmdlet bắt đầu bằng Wait :

Get-Command | Where-Object {$_.Name -like '*wait*'}

An example of using the Where-Object cmdlet in PowerShell

Cmdlet Where-Object tiếp theo có thể giúp bạn tìm một quy trình cụ thể chỉ dựa trên tên của nó. Bằng cách chạy lệnh sau, bạn có thể lấy danh sách tất cả các quy trình có tên bắt đầu bằng sys :

Get-Process | Where-Object {$_.ProcessName -Match "^sys.*"}

How to find the process based only on its name

Cách tạo máy ảo Hyper-V bằng PowerShell

Một trong những tính năng tích hợp mạnh mẽ của Hyper-V là cho phép sử dụng PowerShell cho các hoạt động quản lý. Trong số nhiều việc chúng ta có thể làm với PowerShell trong Hyper-V là tạo máy ảo. Hãy cùng xem một bộ lệnh PowerShell của Hyper-V để tạo máy ảo mới.

Các lệnh PowerShell để tạo máy ảo mới

Để tạo một máy ảo Thế hệ 2 mới với ổ cứng VHDX 60 GB hoàn toàn mới và kết nối nó với một bộ chuyển mạch ảo (trong trường hợp này là “ ExternalSwitch ”) cụ thể, hãy chạy các lệnh PowerShell sau trên máy chủ Hyper-V của bạn.

  1. Tạo máy ảo (VM):

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

  2. Để thêm ổ đĩa DVD cùng với tệp ISO để khởi động, chúng ta có thể thực thi các lệnh sau:

    Add-vmscsicontroller -vmname WSTEST

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

  3. Nếu muốn tạo đĩa có kích thước cố định và gắn vào máy ảo, chúng ta có thể thực thi các lệnh sau để tạo tệp VHDX có kích thước cố định và gắn vào máy ảo:

    new-vhd -path "d:hyper-vvirtual hard disks.wstest.vhdx" -sizebytes 60GB -fixed

    add-vmharddiskdrive -vmname WSTEST -path "d:hyper-vvirtual hard diskswstest.vhdx"

Kết luận

PowerShell có thể ban đầu trông có vẻ đáng sợ, nhưng một khi bạn đã nắm được cách sử dụng, bạn sẽ nhanh chóng khám phá cách sử dụng các lệnh PowerShell của Hyper-V và tối ưu hóa việc quản lý trong môi trường Hyper-V của mình. Hãy nhớ rằng dù bạn sử dụng công cụ nào để quản lý máy ảo, bạn cần tạo bản sao lưu để tránh mất dữ liệu và thời gian ngừng hoạt động.

NAKIVO Backup & Replication là một giải pháp bảo vệ dữ liệu đáng tin cậy và mạnh mẽ, có thể giúp bạn bảo vệ các môi trường VMware, Hyper-V, Nutanix, AWS EC2, Linux, Windows và Microsoft 365.

Hãy thử NAKIVO Backup & Replication

Hãy thử NAKIVO Backup & Replication

Đăng ký dùng thử miễn phí để khám phá toàn bộ các tính năng bảo vệ dữ liệu của giải pháp. Dùng thử miễn phí trong 15 ngày. Không có bất kỳ giới hạn nào về tính năng hay dung lượng. Không cần thẻ tín dụng.

People also read