Powershell VM克隆到数据存储的子目录

Powershell VM克隆到数据存储的子目录,powershell,vmware,esxi,powercli,Powershell,Vmware,Esxi,Powercli,我在vCenter中有一个数据存储,我正试图使用每周运行的PowerCLI脚本将其克隆到其中。我可以将虚拟机克隆到它,但我完全无法控制目录结构。它将每个虚拟机都放在数据存储根目录下以虚拟机命名的文件夹中 我理想的目录结构是根目录只用于活动虚拟机。存在“备份”文件夹。其中每周创建文件夹以存储每周克隆。今天的示例“20111004”。其中包含每个虚拟机的文件夹 $vm = <name of the virtual machine obtained programmatically> $d

我在vCenter中有一个数据存储,我正试图使用每周运行的PowerCLI脚本将其克隆到其中。我可以将虚拟机克隆到它,但我完全无法控制目录结构。它将每个虚拟机都放在数据存储根目录下以虚拟机命名的文件夹中

我理想的目录结构是根目录只用于活动虚拟机。存在“备份”文件夹。其中每周创建文件夹以存储每周克隆。今天的示例“20111004”。其中包含每个虚拟机的文件夹

$vm = <name of the virtual machine obtained programmatically>
$date = Get-Date -Format "YYYYMMDD"
$h = <ESXi host where the VM is located, obtained programatically>
$dsName = "DATASTORE1" #<Name of the datastore I'm targeting>
$dirPath = "BACKUPS/" + $date + "/" + $vm

New-VM -Name $vm-$date -VM $vm -VMHost -$h -Datstore $dsName -Location $dirPath
$vm=
$date=获取日期-格式为“YYYYMMDD”
$h=

$dsName=“DATASTORE1”#位置定义了虚拟机所在的vCenter文件夹,而不是数据存储中用于放置虚拟机文件的文件夹

据我所知,VMs文件必须放在数据存储的根目录上

当我第一次创建脚本时,我考虑过尝试做类似的事情,因为它使旧备份的存档更容易,但当时我找不到解决方案


很抱歉,我无法提供更多帮助…

听起来您正在尝试进行备份,我强烈建议您查看实际的备份产品,如或实用程序


正如@Mike所说,VM文件在数据存储的根目录下工作。您可以创建多个数据存储并循环使用它们进行备份,但如果您使用的是高性能磁盘,这可能会非常昂贵。

我尝试使用
$date=Get date-Format“yyyyymmdd”
,但结果是输出为
yyyy01dd

更改为
$date=获取日期-uformat”%d%m%Y

,我现在得到了
01012012

我很感谢您的回复。当我们使用VMware Workstation 7时,我已经设计出了一个很好的系统,使用bash脚本,并希望在您的vSphere 5 powershell脚本中复制同样的内容。我将按照Scott的建议检查数据恢复部分。我同意这是一种方法。但是,我在PowerCLI中找到了一种方法,可以在任何人读取此文件并希望复制时执行此操作。
$fileMgr.MoveDatastoreFile_任务(“[”+$dsName+“]”+$vm-$date)、$dc.MoRef、(“[”+$dsName+“]”+$dirPath)、$dc.MoRef、$false)
确保在数据存储所在的服务器上正确设置了时间设置。同时确保使用的powershell.2.0版本正确