Export and Import Customization Specs Using PowerCLI
June 22nd, 2010
No comments
Here are a couple of functions to help you export and import OS customization specs in vCenter. Be aware that if you do this between vCenters or the certificate changes then you will have to set any encrypted passwords to their correct value after the import.
These functions and the standard *-OSCustomizationSpec cmdlets should allow you to replicate your customization specs between multiple vCenters fairly easily.
Function Export-OSCustomizationSpec { param ( [string]$specName, [string]$exportFile = "$specname.xml" ) $csmgr = Get-View CustomizationSpecManager if ($csmgr.DoesCustomizationSpecExist($specName)) { $spec = $csmgr.GetCustomizationSpec($specName) $csmgr.CustomizationSpecItemToXml($spec) | Out-File $exportFile } else { throw "Spec $specName not found" } } Function Import-OSCustomizationSpec { param ( [string]$importFile, [string]$specName #Use to change the spec name from that defined in the file ) $specXml = Get-Content $importFile $csmgr = Get-View CustomizationSpecManager $spec = $csmgr.XmlToCustomizationSpecItem($specXml) # Change the name if a new one was given. if ($specName) { $spec.Info.Name = $specName } if ($csmgr.DoesCustomizationSpecExist($spec.Info.Name)) { throw "Spec $specName already exists." } else { $csmgr.CreateCustomizationSpec($spec) } }