5

我在vmware ESXi和上运行虚拟机vmware workstation
我需要从来宾内部执行“恢复到快照

我已经做了很多搜索,但到目前为止提出的所有解决方案都建议从“外部”进行 - 一些外部机器或主机本身。
其他解决方法建议启用自动恢复到power off事件快照。

请不要那个方向提出任何建议。我真的需要从客人内部执行它。例如:

  • 作为计划任务
  • 作为批处理脚本(在完成一些其他任务结束时)

编辑:
这就是我认为必须有某种方法来实现这一点的原因:在来宾内部有“vmare 工具”作为系统服务运行。所以我希望这个组件也能公开一个功能来触发主机/管理程序将当前虚拟机恢复为快照。
如果目前无法做到这一点,则应将其作为新功能实现:)

如果目前无法“从内部”执行它:那也将是一个“答案”......

4

1 回答 1

9

我最近实际上已经这样做了,试试这个:

  1. 安装 VMware vSphere PowerCLI 5.1(它是 ESX 的命令行脚本界面)
  2. 编写一个包含以下代码的脚本(可能在记事本中):

    Connect-VIServer <vCenter Server IP>
    Set-VM <VM name> -Snapshot <Snapshot name> -Confirm:$false
    

    这将连接到您的 vCenter 服务器并将您的虚拟机恢复到指定的快照。将脚本另存为 revert_snapshot.ps1(PowerShell 文件扩展名)

  3. 使用 Windows 任务计划,创建新任务。General 和 Triggers 选项卡是不言自明的,但 Actions 选项卡是您配置计划任务以启动 PowerShell 脚本的地方。
  4. 对于“操作”,选择“启动程序”。在“程序/脚本”下,输入以下内容:

    C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
    
  5. 对于“添加参数”字段,您将指定 PowerShell 脚本的路径:

    -psc "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" "<path to your script>"
    

注意:vim.psc1 在最新版本的 PowerCLI 中不可用。

  1. 保存您的任务并手动运行它作为测试。请耐心等待,因为有时登录 vCenter (Connect-VIServer) 的 cmdlet 可能需要几秒钟才能连接。
于 2012-12-13T12:12:38.983 回答