当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 管理 Hyper-V 虚拟机

作者:精品下载站 日期:2024-12-14 23:20:56 浏览:12 分类:玩电脑

使用 PowerShell 管理 Hyper-V 虚拟机


本文介绍如何从 PowerShell 控制台管理 Hyper-V 虚拟机。我们将了解如何创建虚拟交换机和虚拟机、更改虚拟机设置以及管理虚拟机。您可以使用这些命令手动管理 Hyper-V VM,或在 PowerShell 脚本中自动执行各种任务。

如何在 Windows Server 和 Windows 10/11 上启用 Hyper-V 角色

要安装 Hyper-V 角色,主机必须具有支持 SLAT 且支持虚拟化的 CPU。在 Windows Server 上,使用以下 PowerShell 命令安装 Hyper-V 角色:

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

在桌面版本(Windows 10 和 11)中,Hyper-V 角色的安装方式如下:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

要管理 Hyper-V 主机,必须在计算机上安装 Hyper-V PowerShell 模块。您可以显示可用命令的完整列表(它们取决于您的 Windows 版本),如下所示:

Get-Command -Module hyper-v

[玩转系统] 使用 PowerShell 管理 Hyper-V 虚拟机

在 Windows Server 2022 中,Hyper-V 模块中有 245 个可用的 cmdlet。

要显示 Hyper-V 主机设置列表,请使用以下命令:

Get-VMHost|fl *

仅显示有关可用 CPU 核心和 RAM 数量的信息:

Get-VMHost| select LogicalProcessorCount, MemoryCapacity

[玩转系统] 使用 PowerShell 管理 Hyper-V 虚拟机

使用

Set-VMHost

更改 Hyper-V 主机设置。以下命令将更改虚拟磁盘和虚拟机配置文件的默认路径:

Set-VMHost -VirtualMachinePath E:\VMs -VirtualHardDiskPath E:\VMs\VHD'

使用 PowerShell 创建 Hyper-V 虚拟交换机

首先,在 Hyper-V 主机上创建一个虚拟交换机。虚拟机只能通过虚拟交换机访问网络。

让我们显示 Hyper-V 主机上可用物理网络适配器的列表:

Get-NetAdapter | where {$_.status -eq "up"}

如果您的服务器支持SR-IOV(单根输入/输出 (I/O) 虚拟化),请注意,您应该在创建交换机时启用该选项。您无法为现有 vSwitch 启用 SR-IOV。详细了解如何为 Hyper-V VM 启用 SR-IOV 支持。

创建外部虚拟交换机:

New-VMSwitch -Name "ExternalVMSwitch" -AllowManagementOS $True -NetAdapterName Ethernet0 -SwitchType External

[玩转系统] 使用 PowerShell 管理 Hyper-V 虚拟机

使用 PowerShell 创建 Hyper-V 虚拟机

要创建新的 Hyper-V 虚拟机,

New-VM

使用 cmdlet。在此示例中,我们将创建一个具有 1GB RAM 和 10 GB VHDX 磁盘的新第 2 代 VM。

$VMName = "mun-prx2"
$VM = @{
Name = $VMName
MemoryStartupBytes = 1Gb
Generation = 2
NewVHDPath = "E:\HV$VMName$VMName.vhdx"
NewVHDSizeBytes = 10Gb
BootDevice = "VHD"
Path = "E:\HV$VMName"
SwitchName = "ExternalVMSwitch"
}
New-VM @VM

[玩转系统] 使用 PowerShell 管理 Hyper-V 虚拟机

以下是使用 PowerShell 在 Hyper-V 上创建 Windows 11 虚拟机的示例。

让我们看看可用于更改虚拟机设置的命令。

要增加 VM 的 RAM 大小:

Get-VM -Name mun-prx2| Set-VMMemory -StartupBytes 2Gb

要更改 vCPU 数量:

Set-VMProcessor mun-prx2 -Count 2

启用 Hyper-V 虚拟机自动启动:

Get-VM -VMname mun-prx2 | Set-VM -AutomaticStartAction Start

要将附加虚拟磁盘连接到 VM,请首先创建 vhdx 文件:

New-VHD -Path 'C:\VM\new-prx2-drive.vhdx' -SizeBytes 2GB

然后将其连接到您的虚拟机:

Add-VMHardDiskDrive -VMName mun-prx2 -Path 'C:\VM\new-prx2-drive.vhdx'

如何使用 PowerShell 管理 Hyper-V 虚拟机?

要显示 Hyper-V 主机上的虚拟机列表:

Get-VM

[玩转系统] 使用 PowerShell 管理 Hyper-V 虚拟机

该命令返回具有一些基本属性的虚拟机列表。要显示所有 VM 属性,请运行以下命令:

Get-VM -Name mun-dmz1 | fl *

仅显示正在运行的虚拟机:

Get-VM | where {$_.State -eq 'Running'}

要启动虚拟机:

Start-VM -Name mun-app01

要启动所有已停止的虚拟机:

Get-VM | where {$_.State -eq 'Off'} | Start-VM

关闭 VM(使用来宾操作系统中的集成服务正确关闭):

Stop-VM -Name mun-app01

要关闭虚拟机电源,请使用 TurnOff 选项:

Stop-VM -Name mun-app01 -TurnOff

了解如何停止无响应的 Hyper-V 虚拟机。

将 ISO 文件装载到虚拟 CD/DVD 设备:

Set-VMDvdDrive -VMName mun-app01 -Path c:\iso\WinSrv2022.iso

您可以使用 USB 直通将 USB 设备(介质/驱动器)重定向到 Hyper-V VM。

要将所有虚拟机文件即时移动到另一个磁盘,请使用以下命令:

Move-VMStorage mun-app01 -DestinationStoragePath D:\VM\mun-app01

您可以使用以下命令扩展或缩小虚拟磁盘文件

Resize-VHD

小命令:

Resize-VHD -Path 'C:\VM\mun-fs01.vhdx' -SizeBytes 50Gb

创建 VM 的检查点(快照):

Get-VM -Name mun-app01| Checkpoint-VM -SnapshotName "Before upgrading SAP"

要显示可用检查点的列表:

Get-Vm -Name mun-app01| Get-VMCheckpoint

[玩转系统] 使用 PowerShell 管理 Hyper-V 虚拟机

要将虚拟机从检查点恢复到之前的状态:

Restore-VMCheckpoint -Name "Before upgrading SAP" -VMName mun-app01 -Confirm:$false

要删除快照:

Remove-VMCheckpoint -VMName mun-app01 -Name "Before upgrading SAP"

本文介绍了在 Hyper-V 中导出、导入和克隆 VM:

Export-VM -Name mun-app01 -Path 'C:\VHD\export' -CaptureLiveState CaptureCrashConsistentState

您可以使用内置的 Windows Server Backup (WSB) 来备份 Hyper-V 虚拟机。

要获取虚拟机的来宾操作系统的 IP 地址:

Get-VM | Select -ExpandProperty NetworkAdapters | Select VMName, IPAddresses, Status

要连接到虚拟机控制台:

vmconnect.exe localhost mun-app01

[玩转系统] 使用 PowerShell 管理 Hyper-V 虚拟机

您可以使用 PowerShell Direct 通过 vmbus(在 Windows Server 2016、Windows 10 及更高版本中可用)直接连接到虚拟机的来宾操作系统。使用 Invoke-Command(运行脚本)和 Enter-PSSession(运行交互式 PowerShell 会话):

Invoke-Command -VMName mun-app01 -ScriptBlock {Get-Process}
Enter-PSSession -VMName mun-app01

要使用 PowerShell Direct 将文件从 Hyper-V 主机复制到虚拟机,请使用以下命令:

$PSSession = New-PSSession -VMName mun-app01 -Credential (Get-Credential)
Copy-Item -ToSession $PSSession -Path E:\ISO\install_image.iso -Destination D:\ISO\

您可以使用 PowerShell 以及 Hyper-V Manager 控制台或 Windows Admin Center 等图形工具来本地或远程管理 Hyper-V 主机上的虚拟机(在 Windows Server Full GUI 或 Server Core 模式、免费的 Windows Hyper-V Server 或 Windows 10 上)。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯