Powershell 脚本从快照恢复虚拟机

Powershell 脚本从快照恢复虚拟机

我想编写一个脚本,每 20 天从快照恢复一次 Hyper-V 中的虚拟机。

我知道可以使用 Windows 任务计划程序实现自动化。主要问题是我无法真正自己编写该脚本。我希望得到一些有关该主题的指导。我运行的是 Microsoft Server 2012 R2。

答案1

您可以使用 VMSnapshot 小程序。检索 HYPERV 服务器上虚拟机的快照的示例:

Get-VMSnapshot -computername shyperv3 Server1

VMName      Name                                                    SnapshotType CreationTime        ParentSnapshotName                   
------      ----                                                    ------------ ------------        ------------------                   
Server1 Server1 - (16/08/2017 - 14:55:33)                   Standard     01/01/1601 01:00:00                                      
Server1 Server1 - (21/08/2017 - 12:11:24)                   Standard     21/08/2017 12:11:29 Server1 - (16/08/2017 - 14:55:33)
Server1 Server1 - (21/08/2017 - 16:06:58) OK                Standard     21/08/2017 16:07:03 Server1 - (21/08/2017 - 12:11:24)

此外,为了恢复虚拟机,您可以使用 Restore-VMSnapshot 示例: https://technet.microsoft.com/en-us/itpro/powershell/windows/hyper-v/restore-vmsnapshot

答案2

谢谢回复。解决方案其实很简单。请注意,只有当您想要从最新快照恢复时,它才有效。就我而言,我只需要一个快照。我去了 PowerShell ISE 并编写了这个脚本:

PS C:\> Get-VM | Foreach-Object { $_ | Get-VMSnapshot | Sort CreationTime | Select -Last 1 | Restore-VMSnapshot -Confirm:$false }

就像我说的,它会获取最新的快照并加载它,而无需确认。然后我继续在服务器管理器内的任务计划程序并创建一个基本任务。设置日期并加载您在 PowerShell ISE 中创建的脚本文件。效果很好。我希望有人觉得它有用。

相关内容