Virtual Server 2005 R2 是否具有足够灵活的命令行界面?
情况如下。我在一台内存受限的旧机器上运行 Win2k VM。我为它分配了 378MB 的 RAM,VM 运行良好。每月一次,在 VM 内部,我会备份(非常大的)数据库,使用 7Zip 压缩它,然后通过 ftp 将其发送到备份站点(所有操作都在一个脚本中)。
不幸的是,压缩部分占用了大量的 RAM(远远超过 378MB),它会占用页面文件,使所有内容变得非常缓慢,如果无人看管,实际上需要 2-3 天的时间。因此,为了解决这个问题,我必须关闭虚拟机,暂时给它 768MB 的 RAM,然后整个过程将在 20 分钟内完成。
那么,有没有办法在脚本中从主机自动执行以下操作?
- 关闭客户操作系统(我想,我明白了部分)
- 将 RAM 分配从 378 更改为 768
- 重新启动客户操作系统
然后,一小时后,再按相反顺序重复所有操作。
编辑:感谢 Wesley 'Nonapeptide' 提供的链接。我编写了一个脚本,它运行起来非常顺畅。它将内存量作为参数。以下是任何可能想要执行此操作的人的参考:
if Wscript.Arguments.Count = 0 then
Wscript.Quit
end if
memory = Wscript.Arguments(0)
Set objVS = CreateObject("VirtualServer.Application")
Set objVM = objVS.FindVirtualMachine("vbRad.com")
Set objGuestOS = objVM.GuestOS
Set objTask = objGuestOS.Shutdown()
objTask.WaitForCompletion(600000)
objVM.Memory = memory
Set objTask = objVM.Startup()
objTask.WaitForCompletion(600000)
答案1
这.memory 属性您需要的是 VM 对象。请查看VM 对象上的方法和属性的列表。
这.startup 方法就是您要找的重新启动它的方法。
你可能还喜欢本教程的第二部分介绍如何使用 PowerShell 管理虚拟机。这显示了虚拟机配置如何被摆弄的几个例子。
最后,收藏MSDN Microsoft 虚拟服务器参考. 太棒了。