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

[玩转系统] Hyper-V PowerShell 模块:完成更多工作

作者:精品下载站 日期:2024-12-14 13:07:47 浏览:12 分类:玩电脑

Hyper-V PowerShell 模块:完成更多工作


如果您使用 Microsoft 的 Hyper-V 虚拟化平台来运行虚拟机,您可能熟悉使用 Hyper-V 管理器。但您是否知道使用 Hyper-V PowerShell 模块可以在更短的时间内完成更多的工作?

在本教程中,您将学习如何使用 PowerShell 管理 Hyper-V 虚拟机,包括创建、删除,您还将了解虚拟机快照!

先决条件

对于本教程,您将需要下列各项:

  • 用于连接到远程 Hyper-V 主机的 Windows 客户端。本教程使用 Windows 10 专业版。
  • 启用了 PowerShell 远程处理的 Hyper-V 主机。本教程的 Hyper-V 主机名为 HYPER,位于工作组中,但加入 Active-Directory 的客户端和主机也可以工作。
  • Hyper-V 主机上本地管理员组或 Hyper-V 管理员组中的用户帐户。本教程将使用名为 localadmin 的帐户。

连接到远程 Hyper-V 主机

要在 PowerShell 上使用 Hyper-V,您必须能够以某种方式与 Hyper-V 主机进行通信。您可以通过运行提供 Hyper-V 主机名称的 Hyper-V PowerShell cmdlet 在本地执行此操作,也可以使用 PowerShell 远程连接到 Hyper-V 主机本身。

在本教程中,您将与 Hyper-V 主机建立持久连接,并在 Hyper-V 主机本身上运行命令。

1. 在本地计算机上打开 PowerShell。

2. 运行 Enter-PSSession cmdlet,为 ComputerName 参数提供远程 Hyper-V 主机的主机名。此操作将创建一个交互式会话,并允许您在远程 Hyper-V 主机上以交互方式运行命令。

Enter-PSSession -ComputerName HYPER -Credential (Get-Credential)

如果您的客户端和 Hyper-V 主机是同一 Active Directory 域的成员,则不必使用 Credential 参数。

3. 然后,系统将提示您输入用户名和密码以连接到 Hyper-V 主机。该用户名和密码将是远程主机上的本地管理用户。连接后,您应该会看到 PowerShell 提示符已更改为显示 Hyper-V 主机的主机名。

您现在准备好开始运行命令了!

使用 PowerShell 创建 Hyper-V 虚拟机

假设您现在已使用 PowerShell Remoting 连接到 Hyper-V 主机,让我们开始通过创建 Hyper-V VM 来运行命令。

创建一个简单的虚拟机

在连接到远程 Hyper-V 主机的 PSRemoting 会话中时:

运行 New-VM cmdlet 以创建新虚拟机。使用 New-VM cmdlet 创建 VM 时,您有许多不同的选项可供选择如何创建它。

1. 在下面的示例中,教程将使用以下内容创建 VM:

  • MyVM 的名称 (HYPER)
  • 512MB RAM (MemoryStartupBytes)
New-VM -Name "HYPER" -MemoryStartupBytes 512MB

[玩转系统] Hyper-V PowerShell 模块:完成更多工作

根据其他虚拟机属性创建虚拟机

有时您需要创建一个与另一个虚拟机具有相似属性的虚拟机。您可以这样做,但将各种 VM 属性分配给变量,然后在创建新 VM 时使用这些变量。举个例子:

1. 运行 Get-VM 查询现有 VM 的属性,并将输出分配给变量,如下所示。

$VMold = Get-VM "HYPER_old"

2. 运行 Get-VMMemory cmdlet,提供要从中收集属性的虚拟机名称(在本例中为内存),并将内存值分配给变量。

$memory = (Get-VMMemory -VMName $VMold.name).Startup

3. 接下来,使用 New-VM cmdlet 创建一个新 VM,并提供 Name,VM 代 (Generation) 使用 Generation 来自其他 VM 的属性,以及从其他 VM 获取的值的内存量。

New-VM -Name "newVM" -Generation $VMold.Generation -MemoryStartupBytes $memory

[玩转系统] Hyper-V PowerShell 模块:完成更多工作

使用 PowerShell 列出现有 VM

现在您已经在 Hyper-V 主机上至少创建了两个虚拟机,让我们探讨一下如何枚举创建的虚拟机。要做到这一点:

1. 单独运行 Get-VM cmdlet。当您不带参数运行时,Get-VM 会查询 Hyper-V 主机中的所有现有 VM。 获取VM

Get-VM

[玩转系统] Hyper-V PowerShell 模块:完成更多工作

2. 也许您只想查找单个虚拟机。在这种情况下,请使用 -Name 参数。以下代码命令在 Hyper-V 中查询之前创建的名为 HYPER_old 的虚拟机。 获取 VM -名称 HYPER_old

Get-VM -Name HYPER_old

[玩转系统] Hyper-V PowerShell 模块:完成更多工作

接下来,也许您需要查找处于特定状态的所有虚拟机。没问题。为此,请运行 Get-VM,它会查询所有虚拟机,但将输出通过管道传输到 Where-Object cmdlet。

在下面的示例中,管道“|”将 Get-VM 的输出限制为仅那些 StateRunning 的 VM 对象。 获取 VM -VMName HYPER_old | Where-Object {$_.State -eq '正在运行'}

Get-VM -VMName HYPER_old | Where-Object {$_.State -eq 'Running'}

[玩转系统] Hyper-V PowerShell 模块:完成更多工作

启动和停止 VM

此时,之前创建的VM可能已停止。让我们通过启动它来改变这一点,然后学习如何停止虚拟机。

在远程 Hyper-V 主机的 PowerShell 会话中:

1. 运行 Start-VM cmdlet,为其提供之前使用 -Name 参数创建的虚拟机的名称 (Name)

Start-VM -Name NewVM

[玩转系统] Hyper-V PowerShell 模块:完成更多工作

现在 VM 已启动,请使用 Stop-VM cmdlet 停止它,并通过 Name 参数提供 VM 的名称。

Stop-VM -Name HYPER_old

一旦运行上面的命令,您将看到虚拟机关闭,如下面的屏幕截图所示;

[玩转系统] Hyper-V PowerShell 模块:完成更多工作

修改 Hyper-V VM

虚拟机并不总是保持不变。也许您需要增加 CPU 资源,或者虚拟机始终内存不足。在这种情况下,Set-VM cmdlet 就是您的好帮手。

作为修改现有 VM 的示例,在远程 Hyper-V 主机的 PowerShell 会话中:

运行 Set-VM cmdlet 以自动关闭当前正在运行的 HYPER_old VM。使用 Name 参数指定要设置的虚拟机,并将 Shutdown 指定为 AutomaticStopAction 参数的值,以确保虚拟机自动关闭当 Hyper-V 主机关闭时正确关闭。

Set-VM -Name HYPER_old -AutomaticStopAction Shutdown

保存 Hyper-V VM

在远程 Hyper-V 主机的 PowerShell 会话中,您可能需要保存创建的 VM,以保留 VM 内存的状态以供以后使用。为此,请使用 Save-VM cmdlet,并使用 Name 参数指定要保存的虚拟机的名称。

请注意,您要保存的虚拟机必须处于“正在运行”状态。

Save-VM -Name HYPER_old

[玩转系统] Hyper-V PowerShell 模块:完成更多工作

管理 Hyper-V 虚拟机检查点

如果您需要在进行更改或恢复虚拟机更改之前保存虚拟机的现有状态,则应该了解检查点。检查点是快速保存任何 Hyper-V VM 的磁盘和内存状态的便捷方法。

在 Hyper-V 主机上运行 Checkpoint-VM cmdlet,提供要保存的虚拟机名称和检查点名称。

参数名称 SnapshotName 仍然引用 Hyper-V 2012 中使用的旧术语。快照与检查点是同一回事。

Checkpoint-VM -Name HYPER_old -SnapshotName MyVMSnapshot

[玩转系统] Hyper-V PowerShell 模块:完成更多工作

创建检查点后,您可以使用 Get-VMSnapshot cmdlet 检索存储在 Hyper-V 主机上的所有快照。您可以在下面看到 VM HYPER_old 有三个检查点。

Get-VMSnapshot -VMName HYPER_old

[玩转系统] Hyper-V PowerShell 模块:完成更多工作

结论

如果您已完成本教程中的所有演示,那么您已经可以顺利使用 PowerShell 管理 Hyper-V 虚拟机了。您现在应该具备管理 1 个、10 个甚至 100 个虚拟机所需的知识!

您认为现在可以使用 PowerShell 和 Hyper-V 自动执行哪些任务?

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

取消回复欢迎 发表评论:

关灯