使用 Hyper-V 和 Windows PowerShell 进行操作

完成部署 Hyper-V、创建虚拟机和管理这些虚拟机的基础知识后,让我们了解如何使用 PowerShell 自动执行其中许多活动。

返回 Hyper-V 命令的列表

  1. 选择 Windows 开始按钮,然后键入 PowerShell

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

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

你将获得如下所示的内容:

“Out Grid 视图”的屏幕截图,其中显示了“命令类型”、“名称”、“版本”和“源”字段。

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

    Get-Help Get-VM
    

    输出显示如何构造命令、所需参数和可选参数以及可以使用的别名。

    管理员 Windows Power Shell 屏幕的屏幕截图,其中显示了如何构造命令的输出。

返回虚拟机列表

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

  1. 在 PowerShell 中运行以下命令:

    Get-VM
    

    这将显示如下所示的内容:

    管理员 Windows Power Shell 屏幕的屏幕截图,其中显示了输入 Get V M 后的输出。

  2. 若要返回仅在虚拟机上启用的列表,请将 Get-VM 筛选器添加到命令。 可以使用命令添加 Where-Object 筛选器。 有关筛选的详细信息,请参阅 使用 Where-Object 文档。

    Get-VM | where {$_.State -eq 'Running'}
    
  3. 若要列出处于关闭状态的所有虚拟机,请运行以下命令。 此命令是步骤 2 中命令的副本,筛选器从“正在运行”更改为“关闭”。

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

启动和关闭虚拟机

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

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

    Get-VM | where {$_.State -eq 'Off'} | Start-VM
    
  3. 若要关闭所有正在运行的虚拟机,请运行以下命令:

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

创建虚拟机检查点

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

Get-VM -Name <VM Name> | Checkpoint-VM -SnapshotName <name for snapshot>

创建新的虚拟机

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

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

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

     $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
    

总结和引用

本文档演示了浏览 Hyper-V PowerShell 模块的一些简单步骤,以及一些示例方案。 有关 Hyper-V PowerShell 模块的详细信息,请参阅 Windows PowerShell 参考中的Hyper-V Cmdlet