Hyper-v命令行

Hyper-v使用命令行是为了方便使用脚本管理。。。

查看本地帮助

  1. 选择 Windows 开始按钮,然后右键选择,点击 PowerShell

  2. 可以运行以下命令以显示 Hyper-V PowerShell 模块提供的 PowerShell 命令的可搜索列表。

1
Get-Command -Module hyper-v | Out-GridView

若要了解有关特定 PowerShell 命令的详细信息,请使用 Get-Help。 例如,运行以下命令将返回有关 Get-VM Hyper-V 命令的信息。

需要加载一会

image-20250819211730497

查看现有的虚拟机

Get-VM使用命令返回虚拟机列表

  1. PowerShell 中运行以下命令:
1
Get-VM

image-20250819213333357

若要查看开机的虚拟机,可以使用命令添加 Where-Object 筛选器。

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

查看关及状态的所有虚拟机

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

启动和关闭虚拟机

  1. 若要启动一台虚拟机,请使用虚拟机的名称运行以下命令:

    1
    Start-VM -Name 虚拟机名字
  2. 若要启动当前关闭的所有虚拟机,请获取这些计算机的列表,并将列表通过管道传递给 Start-VM 命令:

    1
    Get-VM | where {$_.State -eq 'Off'} | Start-VM
  3. 若需要启动以debia 开头的虚拟机:

    1
    Start-VM -Name debia*   
  4. 关闭以debia 开头的虚拟机:

    1
    Stop-VM debia* 
  5. 强制关机

    1
    Stop-VM -Name '虚拟机名' –Force
  6. 若要关闭所有正在运行的虚拟机,请运行以下命令:

1
Get-VM | where {$_.State -eq 'Running'} | Stop-VM
  1. 保存虚拟机
1
Save-VM -Name 'debian'
  1. 保存以debia*开头的虚拟机
    1
    Get-VM -Name debia* | Save-VM

创建虚拟机检查点(快照)

若要使用 PowerShell 创建检查点,使用命令选择虚拟机 Get-VM ,并将其传递给 Checkpoint-VM 命令。 最后,使用 -SnapshotName 为检查点命名。 完整的命令如下所示:

创建虚拟机debian的名为Update1的检查点。

1
Checkpoint-VM -Name 'debian' -SnapshotName Update1

查看检查点:

1
Get-VMSnapshot -VMName 'debian'

如果要删除名称以“ Update”开头的所有快照,则应运行以下命令:

1
Get-VM 'debian' | Remove-VMSnapshot -Name Update*

创建新的虚拟机

以下示例演示如何在 PowerShell 集成脚本环境(ISE)中创建新的虚拟机。 这是一个简单的示例,可以将其扩展为包括其他 PowerShell 功能和更高级的 VM 部署。

  1. 若要打开 PowerShell ISE 单击“开始”,请键入 PowerShell ISE

  2. 运行以下代码以创建虚拟机。 有关命令的详细信息,请参阅 New-VM 文档。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $VMName = "VMNAME"

    $VM = @{
    Name = $VMName
    MemoryStartupBytes = 2147483648
    Generation = 2
    NewVHDPath = "C:\Virtual Machines\$VMName\$VMName.vhdx"
    NewVHDSizeBytes = 53687091200
    BootDevice = "VHD"
    Path = "C:\Virtual Machines\$VMName"
    SwitchName = (Get-VMSwitch).Name
    }

    New-VM @VM

查看虚拟机状态

首先需要启用资源计量。

1
Enable-VMResourceMetering -VMName 'debian'

查看名为debian的虚拟机的CPU使用率,RAM使用率,磁盘容量和网络流量

1
Measure-VM -VMName 'debian'

下方的还没有测试


虚拟机配置管理

  1. 修改虚拟机配置

    1
    2
    3
    4
    5
    6
    7
    8
    # 修改虚拟机内存(动态内存)
    Set-VMMemory -VMName "VMName" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 4GB -StartupBytes 2GB

    # 修改虚拟机处理器数量
    Set-VMProcessor -VMName "VMName" -Count 4

    # 修改虚拟机启动顺序(仅适用于第2代虚拟机)
    Set-VMFirmware -VMName "VMName" -BootOrder @("HardDiskDrive", "NetworkAdapter")
  2. 添加或移除硬件

    1
    2
    3
    4
    5
    6
    7
    8
    # 添加虚拟硬盘
    Add-VMHardDiskDrive -VMName "VMName" -Path "D:\VHDs\disk2.vhdx"

    # 添加网络适配器
    Add-VMNetworkAdapter -VMName "VMName" -SwitchName "External Switch"

    # 移除硬件(例如移除第2个硬盘)
    Remove-VMHardDiskDrive -VMName "VMName" -ControllerLocation 1
  3. # 查看所有虚拟交换机
    Get-VMSwitch
    
    # 创建外部虚拟交换机
    New-VMSwitch -Name "External Switch" -NetAdapterName "Ethernet" -AllowManagementOS $true
    
    # 创建内部或专用交换机
    New-VMSwitch -Name "Internal Switch" -SwitchType Internal
    
    # 删除虚拟交换机
    Remove-VMSwitch -Name "Internal Switch" -Force
    
    1
    2
    3
    4
    5
    6

    ------

    ### 虚拟硬盘管理

    1. **创建和管理虚拟硬盘**
    # 创建新的动态扩展虚拟硬盘 New-VHD -Path "C:\VHDs\new_disk.vhdx" -SizeBytes 50GB -Dynamic # 挂载虚拟硬盘到主机(便于修改内容) Mount-VHD -Path "C:\VHDs\disk.vhdx" # 卸载虚拟硬盘 Dismount-VHD -Path "C:\VHDs\disk.vhdx" # 压缩虚拟硬盘(回收未使用空间) Optimize-VHD -Path "C:\VHDs\disk.vhdx" -Mode Full
1
2
3
4
5
6
7
8
9

------

### 高级监控与性能

1. **实时监控**

powershell

查看虚拟机CPU、内存、磁盘、网络实时使用情况(持续刷新)

Get-VM -Name “VMName” | Get-VMResourceMetering | Format-List

启用资源计量(如未启用)

Enable-VMResourceMetering -VMName “VMName”

1
2
3
4
5

2. **导出性能数据**

powershell

导出虚拟机性能数据到CSV

Measure-VM -Name “VMName” | Export-Csv -Path “C:\perf.csv” -NoTypeInformation

1
2
3
4
5
6
7
8
9

------

### 导入和导出虚拟机

1. **导出虚拟机**

powershell


Export-VM -Name “VMName” -Path “D:\Exports"
1
2
3
4
5

2. **导入虚拟机**

powershell


Import-VM -Path “D:\Exports\VMName\Virtual Machines\VMID.xml” -Copy -GenerateNewId
1
2
3
4
5
6
7
8
9

------

### 虚拟机复制(Replication)

1. **配置复制**

powershell

启用虚拟机复制

Enable-VMReplication -VMName “VMName” -ReplicaServerName “ReplicaHost” -ReplicaServerPort 80 -AuthenticationType Kerberos -CompressionEnabled $true

1
2
3
4
5

2. **启动复制**

powershell


Start-VMInitialReplication -VMName “VMName”
1
2
3
4
5
6
7
8
9

------

### 安全检查点(快照)管理

1. **还原到检查点**

powershell


Restore-VMSnapshot -Name “SnapshotName” -VMName “VMName” -Confirm:$false
1
2
3
4
5

2. **重命名检查点**

powershell


Rename-VMSnapshot -VMName “VMName” -Name “OldName” -NewName “NewName”
1
2
3
4
5
6
7
8
9

------

### 其他实用命令

1. **查看Hyper-V主机信息**

powershell


Get-VMHost
1
2
3
4
5

2. **查看虚拟机集成服务状态**

powershell


Get-VMIntegrationService -VMName “VMName”
1
2
3
4
5

3. **启用或禁用集成服务**

powershell


Enable-VMIntegrationService -VMName “VMName” -Name “Time Synchronization”
Disable-VMIntegrationService -VMName “VMName” -Name “Time Synchronization”














参考链接
[微软官网文档](https://learn.microsoft.com/zh-cn/powershell/module/hyper-v/?view=windowsserver2019-ps) 可以左上角根据自己的系统调整