Upload Media to vCloud with PowerCLI

This script is a way in which you can upload your media to your vCloud Director Catalog.it is a really nice script for those of us with many ISOs you need to put somewhere safe. Hope it helps:

$isoFolder = “C:MyISOs”

$vdcName = “MyVDC”

$catalogName = “MyCatalog”

# create / delete a cloud media object

Get-ChildItem $isoFolder | %{

$media = New-Object VMware.VimAutomation.Cloud.Views.Media

$media.name = $_.name

$media.ImageType = ‘iso’

$media.size = $_.length

$media.Files = New-Object VMware.VimAutomation.Cloud.Views.FilesList

$media.Files.File = @(new-object VMware.VimAutomation.Cloud.Views.File)

$media.Files.File[0] = new-object VMware.VimAutomation.Cloud.Views.File

$media.Files.file[0].type = ‘iso’

$media.Files.file[0].name = $_.name

$vdc = Get-OrgVdc $vdcName


$filehref = (Get-Media $media.name | Get-CIView).files.file[0].link[0].href

$webclient = New-Object system.net.webclient


$webclient.Uploadfile($filehref, ‘PUT’, $_.fullname)


#Add non-catalog media to catalog

$mediaList = get-media | where {!$_.catalog}

$catalog = get-catalog $catalogName

foreach ($noCatMedia in $mediaList)


 $resEntity = $vdc.extensiondata.resourceEntities.resourceEntity | where {$_.name -eq $noCatMedia.name}

 $catitem = New-Object VMware.VimAutomation.Cloud.Views.CatalogItem

 $catitem.Entity = $resEntity.href

 $catitem.name = $resEntity.name

 $catitem.description = $media.description




Comments are closed.