У меня есть хранилище данных в vCenter, которое я пытаюсь клонировать с помощью сценария PowerCLI, который я запускаю еженедельно. Я могу клонировать на него виртуальные машины, но у меня нет абсолютно никакого контроля над структурой каталогов. Он помещает каждую виртуальную машину в папку, названную в честь виртуальной машины, в корне хранилища данных.
Моя идеальная структура каталогов заключается в том, что корень используется только для активных виртуальных машин. папка «BACKUPS» существует. Внутри этих папок создаются еженедельные клоны. Пример «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
Пример «полного» пути
[DATASTORE1] BACKUPS / 20111004 / VIRTUALMACHINE
Это единственный фрагмент скрипта, который не работает. Когда команда вводится таким образом в PowerShell, она полностью игнорирует параметр -Location и создает клон в корне хранилища данных. Я еще не нашел никакой документации (насколько я понимаю) о том, как это должно быть отформатировано. Что-то связано с контейнером VIContainer ??
Исходный код скрипта, который я настраиваю:
http://www.mbnbusiness.co.uk/blog/2010/08/updated-powercli-vmware-vm-backup-script-v2-0/