我在 WinXP 上运行VMWare Workstation 6.5 。
如何编写脚本来自动克隆我的 VM 映像?
我已经阅读了有关“ vmware-cmd
”工具的信息,但相信它仅适用于 VMWare ESX,不适用于 Workstation。
我在 WinXP 上运行VMWare Workstation 6.5 。
如何编写脚本来自动克隆我的 VM 映像?
我已经阅读了有关“ vmware-cmd
”工具的信息,但相信它仅适用于 VMWare ESX,不适用于 Workstation。
由于 VMWare 映像只是磁盘上的文件,因此您可以只使用 XCOPY。下次运行 VM 时,系统会提示您询问您是移动还是复制了 VM。确保选择复制以确保为克隆的 VM 网卡分配不同的硬件 MAC 地址。
XCOPY /S /I WinXP WinXPClone
如果您的客人是基于 Windows 的机器,请确保您在克隆上生成新的 SID。如果您只是为了个人用途进行克隆, Sysprep会很痛苦,一个更快更简单的方法是使用NewSID。
vmrun 将做 vmware-cmd 所做的事情。它存在于 ESX、Workstation 和 Server 中。
我认为在 vSphere 中备份虚拟机时,使用脚本是一种不好的方法,我以前做过这种方法,但在移动虚拟机时遇到了麻烦,而有些机器有依赖关系,或者有人留下了虚拟磁盘仍然连接到克隆的机器。我认为您最好使用免费的 vMware 数据保护,这样做的缺点是您需要推荐 1.5TB 的可用空间,但其好处是牺牲存储空间
您可以尝试 PowerShell 脚本
Param(
[Parameter(Position=0,Mandatory=$true,HelpMessage="What Environment do you want exported?")]
[ValidateSet("VCAC","IDENT","IAAS","ORCH","VCENTER","CA","DC","ALL")]
[String[]]$vmExports)
###connect to server statement -- add later
if ( (Get-PSSnapin -Name VMware.VimAutomation.Core -ErrorAction SilentlyContinue) -eq $null )
{
Add-PSsnapin VMware.VimAutomation.Core
}
if ($vmExports -Contains "ALL" )
{
$vmExports = ("VCENTER")
}
function exportova ([string[]]$servers)
{
foreach($server in $servers)
{
$date = Get-Date -format MMddyyyy
$datastore = ''
$VMhost = ''
$newVMName = $server+'_'+$date
$my_vm = New-VM -Name $newVMName -VM $server -Datastore $datastore -VMHost $VMhost
Export-VApp -Destination "E:\VMs\" -VM $newVMName -Format Ova
Remove-VM $newVMName -DeletePermanently -Confirm:$false
}
}
switch ($vmExports)
{
"VCENTER"
{
$servers= ("")
exportova $servers
}
}