使用 Hyper-V 和 Windows PowerShell

返回 Hyper-V 命令列表

  1. 单击 Windows“开始”按钮,键入“PowerShell”。
  2. 运行以下命令以显示适用于 Hyper-V PowerShell 模块的 PowerShell 命令的可搜索列表。

PowerShell复制

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

获取的内容如下所示:

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

PowerShell复制

Get-Help Get-VM

该输出向你显示构建命令的方法、必需和可选参数定义以及可以使用的别名。

返回虚拟机列表

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

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

PowerShell复制

Get-VM

显示内容如下所示:

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

PowerShell复制

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

  1. 若要列出所有处于关机状态的虚拟机,请运行以下命令。 此命令是步骤 2 中的命令的副本,但筛选器从“正在运行”更改为“关闭”。

PowerShell复制

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

启动和关闭虚拟机

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

PowerShell复制

Start-VM -Name <virtual machine name>

  1. 若要启动所有当前已关机的虚拟机,请获取这些虚拟机的列表并将该列表通过管道传递到 Start-VM 命令:

PowerShell复制

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

  1. 若要关闭所有正在运行的虚拟机,请运行以下命令:

PowerShell复制

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

创建 VM 检查点

若要使用 PowerShell 创建检查点,请使用 Get-VM 命令选择虚拟机,然后通过管道将该虚拟机传递到 Checkpoint-VM 命令。 最后,使用 -SnapshotName 为该检查点命名。 完整命令如下所示:

PowerShell复制

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

创建新的虚拟机

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

  1. 若要打开 PowerShell ISE,请单击“开始”,键入 PowerShell ISE
  2. 运行以下代码来创建虚拟机。 有关 New-VM 命令的详细信息,请参阅 New-VM 文档。

PowerShell复制

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

与你的虚拟机共享设备

仅适用于 Windows 虚拟机。

增强会话模式可通过 RDP(远程桌面协议)将 Hyper-V 与虚拟机连接起来。 这不仅会改善你的整体虚拟机查看体验,而且使用 RDP 连接还可以使虚拟机与你的计算机共享设备。 由于 RDP 在 Windows 10 中默认打开,所以与 Windows 虚拟机连接时,你可能已经在使用 RDP。 本文着重介绍了一些好处和连接设置对话框中的隐藏选项。

RDP/增强会话模式:

  • 使虚拟机实现可调整大小和高 DPI 感知。
  • 改进虚拟机集成
    • 共享的剪贴板
    • 通过拖放和复制粘贴进行文件共享
  • 允许设备共享

    • 麦克风/扬声器
    • USB 设备
    • 数据磁盘(包括 C:)
    • 打印机

本文介绍了如何查看会话类型、进入增强会话模式和配置会话设置。

共享驱动器和设备

与虚拟机连接时会弹出一个连接窗口,增强会话模式的设备共享功能就隐藏在这个不显眼的连接窗口里面:

默认情况下,使用增强会话模式的虚拟机将共享剪贴板和打印机。 此外,它们还默认配置为将音频从虚拟机传递回计算机的扬声器。

如果要与虚拟机共享设备或者要更改这些默认设置:

  1. 显示更多选项
  1. 查看本地资源

共享存储和 USB 设备

默认情况下,使用增强会话模式的虚拟机将共享打印机、剪贴板,并将智能卡和其他安全设备转接到虚拟机,以便你可以在虚拟机上使用更多安全登录工具。

如果要共享其他设备,比如 USB 设备或 C: 驱动器,请选择“更多...”菜单:

在那里可以选择你想要同虚拟机共享的设备。 系统驱动器 (Windows C:) 对文件共享十分有用。

共享音频设备(扬声器和麦克风)

默认情况下,使用增强会话模式的虚拟机可以传递音频,因此你可以在虚拟机上听到音频。 虚拟机将使用当前在主机上选择的音频设备。

如果要更改这些设置或者要添加麦克风传递(以便你可以在虚拟机上录制音频):

选择“设置...”菜单以配置远程音频设置

现在来配置音频和麦克风设置

由于你的虚拟机可能正在本地运行,“在此计算机上播放”和“在远程计算机上播放”选项将产生相同结果。

重新启动连接设置

如果分辨率和设备共享对话框未出现,请尝试从 Windows 菜单或者以管理员身份从命令行单独启动 VMConnect。

Powershell复制

vmconnect.exe

查看会话类型

你可以使用虚拟机连接工具 (VMConnect) 顶部的增强会话模式图标来查看连接的类型。 你还可以通过此按钮在基本会话和增强会话模式之间进行切换。

图标连接状态

你当前正以增强会话模式运行。 单击此图标将以基本模式重新连接到虚拟机。

你当前正以基本会话模式运行,但增强会话模式现在可用。 单击此图标将以增强会话模式重新连接到虚拟机。

你当前正以基本模式运行。 增强会话模式不适用于此虚拟机。

使用检查点将虚拟机恢复到以前的状态

虚拟化的最大优势之一是能够轻松地保存虚拟机的状态。 在 Hyper-V 中,通过使用虚拟机检查点完成此操作。 你可能想要先创建虚拟机检查点,然后进行软件配置更改、应用软件更新或安装新的软件。 如果系统更改导致问题,可以将该虚拟机恢复为创建检查点时其所处的状态。

Windows 10 Hyper-V 包括两种类型的检查点:

  • 标准检查点: 在启动检查点时拍摄虚拟机和虚拟机内存状态的快照。 快照并非完整备份,并可能导致系统在 Active Directory 等不同节点之间复制数据时出现数据一致性问题。 Hyper-V 只提供 Windows 10 之前的标准检查点(以前称为快照)。
  • 生产检查点: 在 Linux 虚拟机上使用卷影复制服务或文件系统冻结来创建虚拟机的数据一致性备份。 没有获取任何虚拟机内存状态的快照。

默认情况下选择“生产检查点”,但可以使用 Hyper-V 管理器或 PowerShell 对该选择进行更改。

注意: Hyper-V PowerShell 模块具有若干别名,以便可以互换使用检查点和快照。
本文档使用检查点,但是请注意,你可能会看到使用术语快照的类似命令。

更改检查点类型

使用 Hyper-V 管理器

  1. 打开 Hyper-V 管理器。
  2. 右键单击虚拟机,然后选择设置
  3. 在“管理”下,选择检查点
  4. 选择所需的检查点类型。

使用 PowerShell

可以运行以下命令来使用 PowerShell 更改检查点。

设置为标准检查点:

PowerShell复制

Set-VM -Name <vmname> -CheckpointType Standard

设置为生产检查点(如果生产检查点失败,则创建标准检查点):

PowerShell复制

Set-VM -Name <vmname> -CheckpointType Production

设置为生产检查点(如果生产检查点失败,则不创建标准检查点)。

PowerShell复制

Set-VM -Name <vmname> -CheckpointType ProductionOnly

创建检查点

创建为虚拟机配置的类型的检查点。 有关如何更改此类型的说明,请参阅本文档前面的配置检查点类型部分。

使用 Hyper-V 管理器

若要创建检查点:

  1. 在 Hyper-V 管理器中,选择虚拟机。
  2. 右键单击虚拟机的名称,然后单击检查点
  3. 当此过程完成时,检查点将在Hyper-V 管理器中的检查点下显示。

使用 PowerShell

使用 CheckPoint-VM 命令创建检查点。

PowerShell复制

Checkpoint-VM -Name <VMName>

当检查点过程完成时,使用 Get-VMCheckpoint 命令查看虚拟机的检查点列表。

PowerShell复制

Get-VMCheckpoint -VMName <VMName>

应用检查点

如果你希望将虚拟机恢复到以前的时间点,你可以应用现有检查点。

使用 Hyper-V 管理器

  1. Hyper-V 管理器中的虚拟机下,选择虚拟机。
  2. 在“检查点”部分中,右键单击你想要使用的检查点,然后单击应用
  3. 将显示一个带有以下选项的对话框:
  • 创建检查点并应用:在虚拟机应用以前的检查点之前创建新的检查点。
  • 应用:仅应用已选择的检查点。 不能撤消此操作。
  • 取消:在不执行任何操作的情况下,关闭该对话框。

选择任一“应用”选项来创建“应用检查点”。

使用 PowerShell

  1. 若要查看虚拟机的检查点列表,请使用 Get-VMCheckpoint 命令。
    PowerShell复制
    Get-VMCheckpoint -VMName <VMName>
  2. 若要应用检查点,请使用 Restore-VMCheckpoint 命令。
    PowerShell复制
    Restore-VMCheckpoint -Name <checkpoint name> -VMName <VMName> -Confirm:$false

重命名检查点

在某个特定点上创建多个检查点。 为他们提供可识别的名称, 以便在创建检查点时更容易记住有关系统状态的详细信息。

默认情况下,检查点的名称是虚拟机的名称与采用该检查点时的日期和时间的组合。 这是标准格式:

复制

virtual_machine_name (MM/DD/YYY -hh:mm:ss AMPM)

名称限制为 100 个字符,并且名称不能为空。

使用 Hyper-V 管理器

  1. Hyper-V 管理器,选择虚拟机。
  2. 右键单击检查点,然后选择重命名
  3. 输入检查点的新名称。 它必须小于 100 个字符,并且该字段不能为空。
  4. 完成后,单击Enter

使用 PowerShell

PowerShell复制

Rename-VMCheckpoint -VMName <virtual machine name> -Name <checkpoint name> -NewName <new checkpoint name>

删除检查点

删除检查点可以帮助在 Hyper-V 主机上创建空间。

在后台,检查点在与虚拟机的 .vhdx 文件的相同位置中存储为 .avhdx 文件。 在删除检查点时,Hyper-V 会为你合并 .avhdx 和 .vhdx 文件。 完成后,将从文件系统中删除检查点的 .avhdx 文件。

不应直接删除 .avhdx 文件。

使用 Hyper-V 管理器

若要完全删除检查点:

  1. Hyper-V 管理器,选择虚拟机。
  2. 在 "检查点" 部分中, 右键单击要删除的检查点, 然后单击 "删除"。 你还可以删除检查点和所有后续检查点。 若要执行此操作,请右键单击要删除的最早的检查点,然后单击****删除检查点子树
  3. 系统可能会询问你确认是否要删除该检查点。 请确认它是正确的检查点,然后单击删除

使用 PowerShell

PowerShell复制

Remove-VMCheckpoint -VMName <virtual machine name> -Name <checkpoint name>

导出检查点

导出会将检查点捆绑为虚拟机,以便检查点可以移动到新的位置。 导入后,检查点将还原为虚拟机。 导出的检查点可用于备份。

使用 PowerShell

PowerShell复制

Export-VMCheckpoint -VMName <virtual machine name> -Name <checkpoint name> -Path <path for export>

启用或禁用检查点

  1. Hyper-V 管理器中,右键单击虚拟机的名称,然后单击设置
  2. 管理部分中,选择检查点
  3. 若要允许采用此虚拟机的检查点,请确保已选中“启用检查点”,这是默认的行为。
    若要禁用检查点,请取消选中启用检查点复选框。
  4. 单击应用以应用你的更改。 如果已完成操作,请单击确定来关闭对话框。

配置检查点位置

如果虚拟机没有检查点,你可以更改检查点配置和已保存状态文件的存储位置。

  1. Hyper-V 管理器中,右键单击虚拟机的名称,然后单击设置
  2. 管理部分中,选择检查点检查点文件位置
  3. 检查点文件位置中,输入你希望存储文件的文件夹的路径。
  4. 单击应用以应用你的更改。 如果已完成操作,请单击确定来关闭对话框。

用于存储检查点配置文件的默认位置是:%systemroot%ProgramDataMicrosoftWindowsHyper-VSnapshots

检查点演示

本练习将演练创建和应用标准检查点与生产检查点。 对于此示例,将对虚拟机进行简单更改并观察不同的行为。

标准检查点

  1. 登录到虚拟机并在桌面上创建文本文件。
  2. 用“记事本”打开该文件,然后输入文本“这是标准检查点”。 不要保存文件或者关闭记事本
  3. 将检查点更改为标准 - 此处提供相关说明。
  4. 创建新检查点。

使用 Hyper-V 管理器应用标准检查点

现在,检查点已存在,对虚拟机进行修改,然后应用该检查点以将该虚拟机恢复为已保存状态。

  1. 如果文本文件仍处于打开状态, 请将其关闭, 并将其从虚拟机的桌面中删除。
  2. 打开 Hyper-V 管理器、右键单击标准检查点,然后选择“应用”。
  3. 在“应用检查点通知”窗口上,选择“应用”。

应用该检查点后,请注意,不但文本文件存在,而且该系统仍处于创建检查点时其所处的状态。 在这种情况下,“记事本”处于打开状态并且已加载该文本文件。

生产检查点

现在让我们检验生产检查点。 此过程与使用标准检查点几乎完全相同,但结果略有不同。 开始之前,请确保你已有虚拟机并已将检查点类型更改为生产检查点。

修改虚拟机并创建生产检查点

  1. 登录到虚拟机并创建新的文本文件。 如果您已按照前面的练习进行, 则可以使用现有文本文件。
  2. 在该文本文件中输入“这是生产检查点”, 在文本文件中,保存该文件,但不要关闭记事本
  3. 打开 Hyper-v 管理器, 右键单击虚拟机, 然后选择 "检查点"。
  4. 在“生产检查点创建”窗口上,单击确定

使用 Hyper-V 管理器应用生产检查点

现在,检查点已存在,对系统进行修改,然后应用该检查点以将该虚拟机恢复为已保存状态。

  1. 如果文本文件仍处于打开状态, 请将其关闭, 并将其从虚拟机的桌面中删除。
  2. 打开 Hyper-v 管理器, 右键单击生产检查点, 然后选择 "应用"。
  3. 在“应用检查点通知”窗口上,选择应用

应用生产检查点后,请注意,该虚拟机将处于关闭状态。

  1. 启动并登录到虚拟机。
  2. 请注意,该文本文件已还原。 但不同于标准检查点,“记事本”未处于打开状态。

无论采用何种网络配置或远程管理设置,均可以在 Hyper-V 主机上的 Windows 10 或 Windows Server 2016 虚拟机中使用 PowerShell Direct 运行任意 PowerShell。

下面是一些可直接运行 PowerShell 的方法:

  • 用作使用 Enter-PSSession cmdlet 的交互式会话
  • 使用调用命令 cmdlet 执行单个命令或脚本的单用途部分
  • 使用新的 PSSession、复制项和 Remove cmdlet 作为 persistant 会话 (内部版本14280和更高版本)

要求

操作系统要求:

  • 主机:运行 Hyper-V 的 Windows 10、Windows Server 2016 或更高版本。
  • 来宾/虚拟机:Windows 10、Windows Server 2016 或更高版本。

如果要管理较旧的虚拟机,请使用虚拟机连接 (VMConnect) 或为虚拟机配置虚拟网络

配置要求:

  • 虚拟机必须在主机上本地运行。
  • 虚拟机必须开启,且运行时需至少具有一个配置的用户配置文件。
  • 必须以 Hyper-V 管理员身份登录主机计算机。
  • 必须为虚拟机提供有效用户凭据。

创建并退出交互式 PowerShell 会话

在虚拟机上运行 PowerShell 命令的最简单方法是启动交互会话。

会话启动时,所键入的命令会在虚拟机上运行,其效果就像直接在虚拟机上将其键入到 PowerShell 会话中那样。

启动交互会话:

  1. 在 HYPER-V 主机上以管理员身份打开 PowerShell。
  2. 运行以下命令之一以使用虚拟机名称或 GUID 创建交互会话:

PowerShell复制

Enter-PSSession -VMName <VMName>
Enter-PSSession -VMId <VMId>

出现提示时,提供虚拟机的凭据。

  1. 在虚拟机上运行命令。

你应该会看到作为 PowerShell 提示符前缀的 VMName 显示如下:

复制

[VMName]: PS C:>

所有运行的命令将会在虚拟机上进行。 若要测试,可运行 ipconfighostname 以确保这些命令正在虚拟机中运行。

  1. 完成后,运行以下命令来关闭会话:
    PowerShell复制
    Exit-PSSession

请注意:如果你的会话未连接,请参阅疑难解答了解可能的原因。

若要了解有关这些 cmdlet 的详细信息,请参阅 Enter-PSSessionExit-PSSession


使用 Invoke-Command 运行脚本或命令

配合使用 PowerShell Direct 和 Invoke-Command 非常适合需要在虚拟机上运行一个命令或一个脚本但在这一点之外无需继续与虚拟机进行交互的情况。

运行单个命令:

  1. 在 HYPER-V 主机上以管理员身份打开 PowerShell。
  2. 通过使用虚拟机名称或 GUID 运行以下命令之一来创建会话:
    PowerShell复制
    Invoke-Command -VMName <VMName> -ScriptBlock { command } Invoke-Command -VMId <VMId> -ScriptBlock { command }
    出现提示时,提供虚拟机的凭据。
    该命令将在虚拟机上执行,如果存在到控制台的输出,会把此输出打印到控制台。 命令一运行将会自动关闭连接。

运行脚本:

  1. 在 HYPER-V 主机上以管理员身份打开 PowerShell。
  2. 通过使用虚拟机名称或 GUID 运行以下命令之一来创建会话:
    PowerShell复制
    Invoke-Command -VMName <VMName> -FilePath C:hostscript_pathscript.ps1 Invoke-Command -VMId <VMId> -FilePath C:hostscript_pathscript.ps1
    出现提示时,提供虚拟机的凭据。
    该脚本将在虚拟机上执行。 命令一运行将会自动关闭连接。

若要了解有关此 cmdlet 的详细信息,请参阅 Invoke-Command


使用 New-PSSession 和 Copy-Item 复制文件

注意: PowerShell Direct 仅支持 Windows 版本 14280 及更高版本中的持久性会话

在编写用于跨一个或多个远程计算机协调操作的脚本时,持久性 PowerShell 会话会非常有用。 一经创建后,持久性会话会一直存在于后台,直到你决定将其删除。 这意味着你可以使用 Invoke-CommandEnter-PSSession 反复引用同一个会话而无需传递凭据。

通过使用相同的令牌,会话将保持原有状态。 由于持久性会话具有持久性,在会话中创建的或传递给会话的任何变量将跨多个调用被保留。 有多种工具可用于持久性会话。 在此示例中,我们将使用 New-PSSessionCopy-Item 在主机和虚拟机之间移动数据。

创建会话,然后复制文件:

  1. 在 HYPER-V 主机上以管理员身份打开 PowerShell。
  2. 运行以下命令之一使用 New-PSSession 将持久性 PowerShell 会话创建到虚拟机。

PowerShell复制

$s = New-PSSession -VMName <VMName> -Credential (Get-Credential)
$s = New-PSSession -VMId <VMId> -Credential (Get-Credential)

出现提示时,提供虚拟机的凭据。

警告:
14500 之前的版本中存在一个 Bug。 如果不使用 -Credential 标志显式指定凭据,来宾操作系统中的服务将崩溃,并且将需要重新启动。 如果你遇到此问题,可在此处获取解决方法说明。

  1. 将文件复制到虚拟机内。

要将 C:host_pathdata.txt 从主机复制到虚拟机内,运行:

PowerShell复制

Copy-Item -ToSession $s -Path C:host_pathdata.txt -Destination C:guest_path

  1. 从虚拟机复制文件(到主机)。

要将 C:guest_pathdata.txt 从虚拟机复制到主机,运行:

PowerShell复制

Copy-Item -FromSession $s -Path C:guest_pathdata.txt -Destination C:host_path

  1. 使用 Remove-PSSession 停止持久性会话。

PowerShell复制

Remove-PSSession $s


疑难解答

PowerShell Direct 显示了一小部分的常见错误消息。 以下是最常见的错误消息、一些原因和诊断问题的工具。

-VMName 或 -VMID 参数不存在

问题:Enter-PSSession``Invoke-CommandNew-PSSession 不具有 -VMName-VMId 参数。

可能的原因:
最可能的问题是你的主机操作系统不支持 PowerShell Direct。

可以运行以下命令检查你的 Windows 版本:

PowerShell复制

[System.Environment]::OSVersion.Version

如果你运行的是支持的版本,则有可能你的 PowerShell 版本不运行 PowerShell Direct。 对于 PowerShell Direct 和 JEA,主版本必须为 5 或更高版本。

可以运行以下命令检查你的 PowerShell 版本:

PowerShell复制

$PSVersionTable.PSVersion

错误:远程会话可能已结束

注意:
对于主机版本在 10240 与 12400 之间的 Enter-PSSession,下面的所有错误都报告为“一个远程会话可能已结束”。

错误消息:

复制

Enter-PSSession : An error has occurred which Windows PowerShell cannot handle. A remote session might have ended.

可能的原因:

  • 虚拟机存在但未运行。
  • 来宾操作系统不支持 PowerShell Direct(请参阅要求)
  • PowerShell 尚不可用于来宾
    • 操作系统没有完成启动
    • 操作系统无法正常启动
    • 某些启动时事件需要用户输入

可使用 Get-VM cmdlet 进行检查以查看主机上正在运行哪些虚拟机。

错误消息:

复制

New-PSSession : An error has occurred which Windows PowerShell cannot handle. A remote session might have ended.

可能的原因:

  • 上面列出的原因之一 - 它们都同等适用于 New-PSSession
  • 当前版本中的一个 Bug,在这些版本中,必须使用 -Credential 显式传递凭据。 发生这种情况时,整个服务将在来宾操作系统中挂起,并需要重新启动。 可以检查是否仍可通过 Enter-PSSession 使用会话。

若要解决凭据问题,使用 VMConnect 登录到虚拟机,打开 PowerShell,并使用以下 PowerShell 重新启动 vmicvmsession 服务:

PowerShell复制

Restart-Service -Name vmicvmsession

错误:无法解析参数集

错误消息:

复制

Enter-PSSession : Parameter set cannot be resolved using the specified named parameters.

可能的原因:

  • -RunAsAdministrator 在连接到虚拟机时,不受支持。
    连接到 Windows 容器时,-RunAsAdministrator 标志将允许管理员连接,而无需显式凭据。 由于虚拟机未授予主机默示的管理员访问权限,因此你需要显式输入凭据。

使用 -Credential 参数或通过在系统提示时手动输入,可将管理员凭据传递给虚拟机。

错误:凭据无效。

错误消息:

复制

Enter-PSSession : The credential is invalid.

可能的原因:

  • 无法验证来宾凭据

    • 提供的凭据不正确。
    • 来宾操作系统中没有任何用户帐户(操作系统以前未启动)
    • 如果以管理员身份进行连接:管理员还未设置为活动用户。 在此处了解详细信息。

错误:输入的 VMName 参数未解析为任何虚拟机。

错误消息:

复制

Enter-PSSession : The input VMName parameter does not resolve to any virtual machine.

可能的原因:

  • 你不是 HYPER-V 管理员。
  • 虚拟机不存在。

尝试 Hyper-V 的预发行功能

  • 2016/05/02

这是初步内容,可能还会更改。
预发行版虚拟机用于开发或测试环境,仅因为它不受 Microsoft 支持。

提前获得 Windows Server 2016 Technical Preview 上 Hyper-V 的预发行功能,在你的开发或测试环境中试用。 你可以率先了解最新的 Hyper-V 功能,通过提供早期反馈帮助产品定型。

作为预发行版创建的虚拟机不具有内部版本到内部版本的兼容性或将来的支持。 请勿在生产环境中使用。

以下是为何它们仅适用于非生产环境的其他原因:

  • 预发行版虚拟机没有向前兼容性。 无法将这些虚拟机升级到新的配置版本。
  • 预发行版虚拟机的内部版本间的定义不一致。 如果更新主机操作系统,则现有的预发行版虚拟机可能与主机不兼容。 这些虚拟机可能无法启动,或可能最初看起来工作正常,但后来会遇到重大的兼容性问题。
  • 如果将预发行版虚拟机导入到具有其他内部版本的主机,则结果不可预知。 可以将预发行版虚拟机移动到另一台主机。 但只有两台主机运行相同的内部版本,这种情况才应该会正常工作。

创建预发行版虚拟机

可以在运行 Windows Server 2016 Technical Preview 的 Hyper-V 主机上创建预发行版虚拟机。

  1. 在 Windows 桌面上,单击“开始”按钮并键入名称 Windows PowerShell 的任一部分。
  2. 右键单击Windows PowerShell,然后选择以管理员身份运行
  3. 将 NEW-VM cmdlet 与 -Prerelease 标志配合使用,以创建预发行版虚拟机。 例如,运行以下命令,其中 VM 名称是你想要创建的虚拟机的名称。

PowerShell复制

New-VM -Name <VM Name> -Prerelease

使用 -Prerelease 标志的其他示例:

  • 若要创建使用现有的虚拟硬盘或新硬盘的虚拟机,请参阅 Create a virtual machine in Hyper-V on Windows Server 2016 Technical Preview(在 Windows Server 2016 Technical Preview 上的 Hyper-V 中创建虚拟机)中的 PowerShell 示例。
  • 若要创建引导到操作系统映像的新虚拟硬盘,请参阅 Deploy a Windows Virtual Machine in Hyper-V on Windows 10(在 Windows 10 上的 Hyper-V 中部署 Windows 虚拟机)中的 PowerShell 示例。

这些文章中介绍的示例适用于运行 Windows 10 或 Windows Server 2016 Technical Preview 的 Hyper-V 主机。 但现在,你只能使用 -Prerelease 标志在运行 Windows Server 2016 Technical Preview 的 Hyper-V 主机上创建预发行版虚拟机。

感谢微软公司,微软社区工程师的无私奉献,谢谢

因为在此系统上禁止运行脚本。有关详细信息_win10系统下Hyper-V基本(网上资源整合)3相关推荐

  1. npm : 无法加载文件 D:\...\nodejs\npm.ps1,因为在此系统上禁止运行脚本

    问题: 在VSCode终端使用npm命令时,出现如下报错信息: npm : 无法加载文件 D:\ProgramFiles\nodejs\npm.ps1,因为在此系统上禁止运行脚本.有关详细信息,请参阅 ...

  2. vscode运行虚拟环境virtualenv时报错:\Scripts\Activate.ps1,因为在此系统上禁止运行脚本

    Windows PowerShell 版权所有 (C) Microsoft Corporation.保留所有权利.尝试新的跨平台 PowerShell https://aka.ms/pscore6PS ...

  3. npm : 无法加载文件 D:\Program Files\nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本。

    npm : 无法加载文件 D:\Program Files\nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本.有关详细信息,请参阅 https: /go.microso ...

  4. PowerShell yarn : 无法加载文件 C:\Users\Admin\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本。

    PowerShell yarn : 无法加载文件 C:\Users\Admin\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本. 解决办法: 收藏 79 设置如下 ...

  5. nrm : 无法加载文件 C:\Users\hc\AppData\Roaming\npm\nrm.ps1 ,因为在此系统上禁止运行脚本。

    nrm : 无法加载文件 C:\Users\hc\AppData\Roaming\npm\nrm.ps1 ,因为在此系统上禁止运行脚本. 问题:使用nrm报错. 解决: 1.右键win图标,打开Win ...

  6. 实测解决:在此系统上禁止运行脚本。有关详细信息,请参阅 httpsgo.microsoft.comfwlinkLinkID=135170 中的 about_Execution_Policies。

    实测解决:在此系统上禁止运行脚本.有关详 细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Polici ...

  7. bash不能运行c语言,解决:无法加载文件 C:\\Program Files\\.. 因为在此系统上禁止运行脚本。...

    有时我们在运行PowerShell脚本的时候,会突然遇到这个问题: 无法加载文件 C:\Program Files\nodejs\node_global\express.ps1, 因为在此系统上禁止运 ...

  8. nodemon运行 提示错误:无法加载文件 C:\Users\gxf\AppData\Roaming\npm\nodemon.ps1,因为在此系统上禁止运行脚本。...

    nodemon运行 提示错误:无法加载文件 C:\Users\gxf\AppData\Roaming\npm\nodemon.ps1,因为在此系统上禁止运行脚本. 这是你笔记本禁止运行脚本,解决办法 ...

  9. rimraf : 无法加载文件 C:\Users\Admin\AppData\Roaming\npm\rimraf.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅

    报错信息: rimraf : 无法加载文件 C:\Users\Lenovo\AppData\Roaming\npm\rimraf.ps1,因为在此系统上禁止运行脚本.有关详细信息,请参阅 https: ...

  10. yarn : 无法加载文件 D:\nodejs\node_global\yarn.ps1,因为在此系统上禁止运行脚本。

    yarn : 无法加载文件 D:\nodejs\node_global\yarn.ps1,因为在此系统上禁止运行脚本. 步骤一:获取当前执行策略 get-ExecutionPolicy 步骤二:更改执 ...

最新文章

  1. 在CodeMash 2012的“ Wat”演讲中提到的这些怪异JavaScript行为的解释是什么?
  2. 返回数据给上一个活动
  3. Python学习-logging
  4. 南方cass快捷键命令修改在哪_南方CASS快捷命令
  5. zune自搭虚拟服务器离线升级,Zune 30g 购买/使用 个人经验贴,希望可以帮到有需要的烧友~...
  6. 联想V470C 禁用触摸板
  7. Technorati使用小结
  8. 【ESP 保姆级教程】疯狂Node.js服务器篇 ——案例:ESP8266 + MQ3酒精传感器 + NodeJs本地服务 + 文件存储数据
  9. ubuntu--ogv格式转mp4格式
  10. 计算机l符号代表什么意思,衣服sml代表什么意思 分别是什么的标记
  11. 互联网巨头们为什么钟爱咖啡?
  12. 蜗牛星际C单下实现黑群的局域网唤醒
  13. DFRobot新品Fermion:MCP9808高精度数字温度传感器的简介和工作原理介绍
  14. 阿里巴巴普惠_河北省辛集市与阿里巴巴举行数字乡村合作项目签约仪式
  15. 【搞定工作】无惧尾款,打工就要来这里!
  16. 《男女诗篇》 - 肖复兴
  17. Messagepack Java实例
  18. Flink1.11的CDC-Connectors操作记录
  19. 粘包/拆包问题——如何获取一个完整的网络包?
  20. 【技术贴】如何把搜狗浏览器的收藏夹导入到360浏览器的在线收藏夹

热门文章

  1. Cisco AP1240多SSID配置简解
  2. 程序员面试金典——18.5单词最近的距离
  3. 【EOS】2.3 深入理解ABI文件
  4. 拆散组合思路求解期望,方差
  5. Gram-Schmidt正交化
  6. Pytorch 的迁移学习的理解
  7. 牛客 黑龙江大学程序设计竞赛重现 19-4-25 D
  8. JavaScript之基础语法整理
  9. spring 官方文档
  10. 在磁盘上给文件快速预留一大片空间