我想编写一个脚本,每 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 中创建的脚本文件。效果很好。我希望有人觉得它有用。