<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Automated Re-Deploy of VMs using VSC cmdlets (Powershell Script) in VMware Solutions Discussions</title>
    <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76217#M7321</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Matt,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tested your script and initially it looks like it is working, however I have a couple of&amp;nbsp; anomalies : -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt; When the script runs the Write-Host output does not display the Datastore name (highlighted below in red):-&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;Connected to VSC on IPAddress "xxx.xxx.xxx.xxx" on Port "xxxx"&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;Enumerated Managed Object Reference for "testrctemplate" as "VirtualMachine:vm-2001"&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;Enumerated Managed Object Reference for "" as "Datacenter:datacenter-21"&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="color: #ff0000; font-size: 8pt;"&gt;&lt;EM&gt;&lt;STRONG&gt;Enumerated Managed Object Reference for "" as "" &lt;/STRONG&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;Enumerating files for Virtual Machine Template "VirtualMachine:vm-2001"&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;Enumerating Virtual Machines deployed from Template&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;"VirtualMachine:vm-2001"&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;VirtualMachine:vm-2231&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;VirtualMachine:vm-2230&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;Initiated VSC Redeploy. VCenter TaskID "Task:task-26109"&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp; After running the script and returning to vSphere client I can see the task running and completing. However it never mentions "applying guest&lt;/LI&gt;&lt;/UL&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&amp;nbsp; customization", which is crucial for the redeploy as we sysprep the VM, then run a script included in the image, which does some funky stuff;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&amp;nbsp; join domain and move to OU in Active directory, then install certificates, etc, etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; If I power on the redeployed machine the guest customization does not start, which makes me think the redploy script has not included it when&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; submitting the task.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;IMG class="jiveImage" height="57" id="lb_image" src="https://community.netapp.com/servlet/JiveServlet/download/2-48985/pic22860.gif" width="543" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I appreciate your help with this issue to date and we are practically there bar these two small issues. If I could ask for your help one last time I&lt;/P&gt;&lt;P&gt;would be very grateful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Scott S&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 17 Dec 2013 16:09:20 GMT</pubDate>
    <dc:creator>SCOTTS2012</dc:creator>
    <dc:date>2013-12-17T16:09:20Z</dc:date>
    <item>
      <title>Automated Re-Deploy of VMs using VSC cmdlets (Powershell Script)</title>
      <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76201#M7318</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Recently we had a daily powershell script that ran and re-deployed a group of servers daily. The servers were originally deployed using FlexClone and we used a Powershell script that connected to Kamino and VIServer to issue the redeploy on a scheduled task.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This was all working fine when we were using vCenter 4.1 and the Kamino Powershell module. However we have recently upgraded to vCenter 5.5 and now use VSC 4.2.1. According to &lt;STRONG&gt;&lt;A class="jive-link-thread-small" data-containerid="3689" data-containertype="14" data-objectid="25368" data-objecttype="1" href="https://communities.netapp.com/thread/25368" target="_blank"&gt;https://communities.netapp.com/thread/25368&lt;/A&gt;&lt;/STRONG&gt; our old script should work with VSC with a few modifications to the Cmdlet names and importing the VSC .dll instead of Kamino.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However after modifying my script I can no longer connect to VSC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Powershell Script: -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;Import-Module C:\Windows\System32\WindowsPowerShell\v1.0\Modules\VSC\NetAppVSC.dll&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;$password = ConvertTo-SecureString -AsPlainText -Force "&amp;lt;password&amp;gt;"&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;$creds = New-Object System.Management.Automation.PSCredential "domain\username",$password&lt;/EM&gt;&lt;BR /&gt;&lt;EM style="font-size: 8pt;"&gt;$controllers = New-Object com.netapp.vsc.wsapi.controllerSpec[] 1&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;Write-Host "Connecting to vCenter ....."&lt;/EM&gt;&lt;BR /&gt;&lt;EM style="font-size: 8pt;"&gt;Connect-VIServer &amp;lt;IP Address&amp;gt; -User "domain\username" -Password ""&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;Write-Host "Connecting to VSC ...."&lt;/EM&gt;&lt;BR /&gt;&lt;EM style="font-size: 8pt;"&gt;Connect-VSC &amp;lt;IP Address&amp;gt; -Credential $creds -Timeout 120000 -ServiceHost &amp;lt;IP Address&amp;gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Results of running the above is:-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;Connecting to vCenter .....&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;EM style="font-size: 8pt;"&gt;Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Port&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; User&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;&amp;nbsp; ----&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;&amp;lt;IP Address&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 443&amp;nbsp;&amp;nbsp;&amp;nbsp; domain\username&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;Connecting to VSC on Ferndownvc....&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;VCenterHostname&amp;nbsp;&amp;nbsp;&amp;nbsp; : &amp;lt;IP Address&amp;gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;VCenterAddress&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;nbsp; &lt;EM style="font-size: 8pt;"&gt;&amp;lt;IP Address&amp;gt;&lt;/EM&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;VCenterCredentials : System.Net.NetworkCredential&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;ServiceHostname&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;nbsp; &lt;EM style="font-size: 8pt;"&gt;&amp;lt;IP Address&amp;gt;&lt;/EM&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;ServiceAddress&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;nbsp;&amp;nbsp; &lt;EM style="font-size: 8pt;"&gt;&amp;lt;IP Address&amp;gt;&lt;/EM&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;VCenterVersion&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cannot tell from the above whether it has connected to vCenter and / or VSC. Previously running the above command under vCenter 4.1 and Kamino it would result in the VCenterVersion field populated as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The next line of code fails, which I think is due to not actually being connected: -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;$targetMoref = Get-vscManagedObjectRef &amp;lt;datacenter name&amp;gt; Datacenter&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 8pt;"&gt;Write-Host $targetMoref&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Error message: -&lt;/P&gt;&lt;P&gt;Get-vscManagedObjectRef : The request failed with HTTP status 404: Not Found.&lt;/P&gt;&lt;P&gt;At C:\flexscripts\FlexRedeploy-rds_flexclone_a.ps1:19 char:39&lt;/P&gt;&lt;P&gt;+ $targetMoref = Get-vscManagedObjectRef &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;nbsp; &amp;lt;datacenter name&amp;gt; Datacenter&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; + CategoryInfo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : InvalidOperation: (com.netapp.vsc.vscServer:vscServer) [Get-vscManagedObjectRef], Web &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Exception&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; + FullyQualifiedErrorId : ApiError,com.netapp.vsc.cmdlets.GetvscManagedObjectRef&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think If I can get passed this stage the rest of the script should be ok, however I have exchausted my troubleshooting to get to this stage. Are there any logs or tools I can use to troubleshoot this further, or if this is down to incorrect syntax then please advise.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The reason we are scrapping and rebuilding these servers on a daily basis is because they are Remote Desktop Servers. Any changes we make to a master clone, is then&amp;nbsp; re-deployed, thus not having to install new software 50+ times.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As previously mentioned this has been working well for months and has only broke since moving to vCenter 5.5 and VSC cmdlet module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help on this matter would be much appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Scott S.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jun 2025 05:47:58 GMT</pubDate>
      <guid>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76201#M7318</guid>
      <dc:creator>SCOTTS2012</dc:creator>
      <dc:date>2025-06-05T05:47:58Z</dc:date>
    </item>
    <item>
      <title>Re: Automated Re-Deploy of VMs using VSC cmdlets (Powershell Script)</title>
      <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76208#M7319</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Scott,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've succeeded in getting this working in my lab. Hope this helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers Matt&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG src="http://community.netapp.com/legacyfs/online/24317_vsc_redeploy.png" width="450" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example output:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #1f497d; font-size: 8pt;"&gt;Connected to VSC on IPAddress "192.168.100.19" on Port "8143"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #1f497d; font-size: 8pt;"&gt;Enumerated Managed Object Reference for "testxp01" as "VirtualMachine:vm-163"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #1f497d; font-size: 8pt;"&gt;Enumerated Managed Object Reference for "Testlab" as "Datacenter:datacenter-2"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #1f497d; font-size: 8pt;"&gt;Enumerated Managed Object Reference for "Datastore1" as "Datastore:datastore-144"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #1f497d; font-size: 8pt;"&gt;Enumerating files for Virtual Machine Template "VirtualMachine:vm-163"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #1f497d; font-size: 8pt;"&gt;Enumerating Virtual Machines deployed from Template "VirtualMachine:vm-163"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #1f497d; font-size: 8pt;"&gt;VirtualMachine:vm-350&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #1f497d; font-size: 8pt;"&gt;VirtualMachine:vm-349&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #1f497d; font-size: 8pt;"&gt;VirtualMachine:vm-348&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #1f497d; font-size: 8pt;"&gt;Initiated VSC Redeploy. VCenter TaskID "Task:task-2368"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example source code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;lt;#'-----------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'Script Name : redeploy.ps1&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'Author&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Matthew Beattie&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'Email&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;A href="mailto:mbeattie@netapp.com" target="_blank"&gt;mbeattie@netapp.com&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'Created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 17/12/13&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'Description : This script invokes the "redeployVMs" method of the VSC API.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : It redeploys all virtual machines provisioned from a specifed&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : template to the source templates origional disk state. This &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : has the potential for data loss in all virtual machines&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : deployed from the template. Use at your own risk.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'Disclaimer&amp;nbsp; : (c) 2013 NetApp Inc., All Rights Reserved&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : NetApp disclaims all warranties, excepting NetApp shall provide&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : support of unmodified software pursuant to a valid, separate,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : purchased support agreement. No distribution or modification of&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : this software is permitted by NetApp, except under separate&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : written agreement, which may be withheld at NetApp's sole &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : discretion.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : THIS SOFTWARE IS PROVIDED BY NETAPP "AS IS" AND ANY EXPRESS OR&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NETAPP BE LIABLE FOR ANY&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;'-----------------------------------------------------------------------------#&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[String]$vscIPAddress&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "192.168.100.19"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[String]$vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "testvc01"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[Int]$portNumber&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 8143 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[String]$username&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "testlab\administrator"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[String]$templateName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "testxp01"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[String]$dataCenterName&amp;nbsp;&amp;nbsp;&amp;nbsp; = "Testlab"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[String]$vFilerHostName&amp;nbsp;&amp;nbsp;&amp;nbsp; = "testnv01"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[String]$vFilerIPAddress&amp;nbsp;&amp;nbsp; = "192.168.100.23"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[String]$customizationName = "testxp01"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Prompt for VSC credentials.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[String]$username = "testlab\administrator"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Security.SecureString]$password = `&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Read-Host "Please enter the password for user ""$username""" -AsSecureString&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Management.Automation.PSCredential]$vscCredentials = `&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;New-Object System.Management.Automation.PSCredential -ArgumentList $username, $password&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Connect to the VSC using the web service API.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$True}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[String]$uri = "&lt;A href="https://$vscIPAddress`$portNumber" target="_blank"&gt;https://$vscIPAddress`:$portNumber/kamino/public/api?wsdl&lt;/A&gt;"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Try{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$connection = `&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; New-WebServiceProxy -uri $uri -Credential $credentials -ErrorAction Stop&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Write-Host "Connected to VSC on IPAddress ""$ipAddress"" on Port ""$portNumber"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;}Catch{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Write-Host ("Error """ + $Error[0] + """ Connecting to ""$uri""")&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Create a namespace object from the connection object&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$namespace = $connection.GetType().Namespace&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Create a requestspec Object from the NameSpace object&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$requestSpecType = ($namespace + '.requestSpec')&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$requestSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($requestSpecType)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Enumerate the username and password from the credential object.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[String]$domain&amp;nbsp;&amp;nbsp;&amp;nbsp; = $credentials.GetNetworkCredential().domain&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[String]$user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $credentials.GetNetworkCredential().username&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[String]$password&amp;nbsp; = $credentials.GetNetworkCredential().password&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[String]$username&amp;nbsp; = "$domain\$user" &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Set the properties of the RequestSpec object.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&lt;SPAN&gt;$requestSpec.serviceUrl = "&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://" target="_blank"&gt;https://&lt;/A&gt;&lt;SPAN&gt;" + $vscHostName + "/sdk"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;$requestSpec.vcUser&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $username&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;$requestSpec.vcPassword = $password&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Enumerate the Managed Object Reference of the VMWare Template.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$templateMoref = $connection.getMoref($templateName, "VirtualMachine", $requestSpec)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Write-Host "Enumerated Managed Object Reference for ""$templateName"" as ""$templateMoref"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Enumerate the Managed Object Reference of the VMWare Datacenter.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$dataCenterMoref = $connection.getMoref($dataCenterName, "Datacenter", $requestSpec)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Write-Host "Enumerated Managed Object Reference for ""$dataCenterName"" as ""$dataCenterMoref"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Enumerate the Managed Object Reference of the Datastore.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$dataStoreMoref = $connection.getMoref($dataStoreName, "Datastore", $requestSpec)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Write-Host "Enumerated Managed Object Reference for ""$dataStoreName"" as ""$dataStoreMoref"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Enumerate the VMWare template files.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Write-Host "Enumerating files for Virtual Machine Template ""$templateMoref"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Try{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; $files = $connection.getVMFiles($templateMoref, $requestSpec)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;}Catch{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Write-Host ("Error """ + $Error[0] + """ Enumerating Virtual Machine Files for ""$templateMoref""")&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Enumerate the VMWare template files.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Write-Host "Enumerating Virtual Machines deployed from Template ""$templateMoref"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Try{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; $virtualMachines = $connection.getVMs($templateMoref, $requestSpec)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;}Catch{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Write-Host ("Error """ + $Error[0] + """ Enumerating Virtual Machines ""$templateMoref""")&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[Array]$vms = @()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;ForEach($virtualMachine In $virtualMachines){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [Array]$vms += $virtualMachine.vmMoref&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Write-Host $virtualMachine.vmMoref&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'---------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Create a controllerSpec Object from the NameSpace object and set properties.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'---------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$controllerType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ($namespace + '.controllerspec')&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$controllerSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($controllerType)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$controllerSpec.username&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $username&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$controllerSpec.password&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $password&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Set controller IP address (Ensure DNS A &amp;amp; PTR records exist)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$controllerSpec.ipAddress&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $vFilerIPAddress&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$controllerSpec.passthroughContext = $vFilerHostName&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$controllerSpec.ssl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $True&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Set the destination controller and datastore for each file.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;ForEach($file In $files){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; $file.destDatastoreSpec.controller = $controllerSpec;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Create a "cloneSpec" object from the NameSpace object and set properties.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$cloneSpecType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ($namespace + '.clonespec')&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$cloneSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($cloneSpecType)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$cloneSpec.templateMoref&amp;nbsp; = $templateMoref&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$cloneSpec.containerMoref = $dataCenterMoref&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Create objects for each clone and set their properties.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[Array]$clones = @()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;For($i = 0; $i -le ($vms.Count -1); $i++){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; #'Create a vmSpec Object from the NameSpace object and set properties.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [System.Object]$vmSpecType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ($namespace + '.vmSpec')&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [System.Object]$vmSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($vmSpecType)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; #'Create a cloneSpecEntry Object from the NameSpace object and set properties.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [System.Object]$cloneSpecEntryType = ($namespace + '.cloneSpecEntry')&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [System.Object]$cloneSpecEntry&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($cloneSpecEntryType)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; #'Create a guestCustomizationSpecType Object from the NameSpace object and set properties.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [System.Object]$guestCustomizationSpecType&amp;nbsp; = ($namespace + '.guestCustomizationSpec')&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [System.Object]$guestCustomizationSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($guestCustomizationSpecType)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [System.Object]$guestCustomizationSpec.Name = $customizationName&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [System.Object]$vmSpec.powerOn&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $powerOn&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [System.Object]$vmSpec.custSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $guestCustomizationSpec&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [System.Object]$vmSpec.vmMoref&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $vms[$i]&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [System.Object]$cloneSpecEntry.key&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $vms[$i]&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [System.Object]$cloneSpecEntry.Value&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $vmSpec&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [Array]$clones&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; += $cloneSpecEntry&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; #'Set the destination controller and datastore for the files.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; ForEach($file In $files){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file.destDatastoreSpec.controller = $controllerSpec;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file.destDatastoreSpec.mor&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $dataStoreMoref;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Set the properties of the cloneSpec Object.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$cloneSpec.files&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $files&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$cloneSpec.clones&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $clones&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;[System.Object]$requestSpec.cloneSpec = $cloneSpec&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'Initiate the Rapid clone task for the Even Numbered Clones.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Try{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [String]$taskId = $connection.redeployVMs($requestSpec, $controllerSpec)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; [String]$taskId = $taskId.SubString($taskId.LastIndexOf(" ") + 1)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Write-Host "Initiated VSC Redeploy. VCenter TaskID ""$taskId"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;}Catch{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed Initiating VSC Redeploy"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Dec 2013 23:14:57 GMT</pubDate>
      <guid>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76208#M7319</guid>
      <dc:creator>mbeattie</dc:creator>
      <dc:date>2013-12-16T23:14:57Z</dc:date>
    </item>
    <item>
      <title>Re: Automated Re-Deploy of VMs using VSC cmdlets (Powershell Script)</title>
      <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76212#M7320</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Matt,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Many thanks for taking the time to look at this - much appreciated. I will give this a try this afternoon but does look promising!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Scott S.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Dec 2013 08:43:47 GMT</pubDate>
      <guid>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76212#M7320</guid>
      <dc:creator>SCOTTS2012</dc:creator>
      <dc:date>2013-12-17T08:43:47Z</dc:date>
    </item>
    <item>
      <title>Re: Automated Re-Deploy of VMs using VSC cmdlets (Powershell Script)</title>
      <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76217#M7321</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Matt,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tested your script and initially it looks like it is working, however I have a couple of&amp;nbsp; anomalies : -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt; When the script runs the Write-Host output does not display the Datastore name (highlighted below in red):-&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;Connected to VSC on IPAddress "xxx.xxx.xxx.xxx" on Port "xxxx"&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;Enumerated Managed Object Reference for "testrctemplate" as "VirtualMachine:vm-2001"&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;Enumerated Managed Object Reference for "" as "Datacenter:datacenter-21"&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="color: #ff0000; font-size: 8pt;"&gt;&lt;EM&gt;&lt;STRONG&gt;Enumerated Managed Object Reference for "" as "" &lt;/STRONG&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;Enumerating files for Virtual Machine Template "VirtualMachine:vm-2001"&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;Enumerating Virtual Machines deployed from Template&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;"VirtualMachine:vm-2001"&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;VirtualMachine:vm-2231&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;VirtualMachine:vm-2230&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;EM&gt;Initiated VSC Redeploy. VCenter TaskID "Task:task-26109"&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp; After running the script and returning to vSphere client I can see the task running and completing. However it never mentions "applying guest&lt;/LI&gt;&lt;/UL&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&amp;nbsp; customization", which is crucial for the redeploy as we sysprep the VM, then run a script included in the image, which does some funky stuff;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&amp;nbsp; join domain and move to OU in Active directory, then install certificates, etc, etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; If I power on the redeployed machine the guest customization does not start, which makes me think the redploy script has not included it when&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; submitting the task.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;IMG class="jiveImage" height="57" id="lb_image" src="https://community.netapp.com/servlet/JiveServlet/download/2-48985/pic22860.gif" width="543" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I appreciate your help with this issue to date and we are practically there bar these two small issues. If I could ask for your help one last time I&lt;/P&gt;&lt;P&gt;would be very grateful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Scott S&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Dec 2013 16:09:20 GMT</pubDate>
      <guid>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76217#M7321</guid>
      <dc:creator>SCOTTS2012</dc:creator>
      <dc:date>2013-12-17T16:09:20Z</dc:date>
    </item>
    <item>
      <title>Re: Automated Re-Deploy of VMs using VSC cmdlets (Powershell Script)</title>
      <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76221#M7322</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Scott,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've had a look into this for you. When using the GUI or automated methods, the vCenter task results do not mention applying guest customization for the virtual machines that have been redeployed (nor does the Kamino.log) so I wrote a script to test if applying the customization post redeploy process would work (using the vmID's returned by the VSC getVMs methods). Note that VSC and VMware return a different virtual machine ID syntax so a replace of ":" with "-" is required. See results and code below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The customization fails to apply when running the script below after a VSC redeploy (invoked either using GUI or automation).&lt;/P&gt;&lt;P&gt;The error is "&lt;EM&gt;&lt;STRONG&gt;fault.CustomizationPending.summary&lt;/STRONG&gt;&lt;/EM&gt;" which seems to relate to:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://kb.vmware.com/kb/1006809" target="_blank"&gt;http://kb.vmware.com/kb/1006809&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG src="http://community.netapp.com/legacyfs/online/24343_vsc_redeploy.png" width="450" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Maybe due to the template being cloned with a customization in pending state. Would be interested to know if you get the same results if you run the script to apply the customization post VSC redeploy. I'm note sure why VSC isn't applying the customization (didn't work for me in the GUI either) but the script below offers a work around example to complete the process.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers Matt&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example Output:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Connected to Virtual Center "testvc01"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Enumerated Guest Customization "test1"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Connect to Virtual Machine "testxp022"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Failed Applying Guest Customization "test1" to "testxp022"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Connect to Virtual Machine "testxp021"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Failed Applying Guest Customization "test1" to "testxp021"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Connect to Virtual Machine "testxp020"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Failed Applying Guest Customization "test1" to "testxp020"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #575757; font-size: 8pt;"&gt;Done&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;lt;#'-----------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;'Script Name : ApplyCustomization.ps1&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;'Author&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Matthew Beattie&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&lt;SPAN&gt;'Email&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:mbeattie@netapp.com" target="_blank"&gt;mbeattie@netapp.com&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;'Created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 17/12/13&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;'Description : This script applies a guest customization to virtual machines&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : using the VMware API.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'----------------------------------------------------------------------------#&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;$vCenterName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "testvc01"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;$protocol&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "https"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;$snapInName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "VMware.VimAutomation.Core"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;$customizationName = "test1"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;$username&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "testlab\administrator"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'Prompt for credentials.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;[System.Security.SecureString]$password = `&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;Read-Host "Please enter the password for user ""$username""" -AsSecureString&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;[System.Management.Automation.PSCredential]$credentials = `&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;New-Object System.Management.Automation.PSCredential -ArgumentList $username, $password&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'Ensure the VMware PowerShell SnapIn is added.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;Try{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Add-PSSnapin -Name $snapInName -ErrorAction SilentlyContinue&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;}Catch{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Write-Host "The SnapIn ""$snapInName"" is added"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'Connect to Virtual Center.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;Try{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Connect-VIServer -Server $vCenterName -Protocol $protocol -Credential $credentials -Force -ErrorAction Stop | Out-Null&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Write-Host "Connected to Virtual Center ""$vCenterName"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;}Catch{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Write-Host "Error Connecting to ""$vCenterName"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'Get the VMWare Guest Customization.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;Try{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; $customSpec = Get-OSCustomizationSpec -Name $customizationName -ErrorAction Stop&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Write-Host "Enumerated Guest Customization ""$customizationName"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;}Catch{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed Enumerating Guest Customization ""$customizationName"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'Set the template for each VM (replace ":" with "-"). VSC and vSphere return different ID formats.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;$vms = @("VirtualMachine:vm-350","VirtualMachine:vm-349","VirtualMachine:vm-348")&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;ForEach($vm In $vms){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; $vmId = $vm -Replace(":", "-")&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; Do{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'Connect to the Virtual Machine by ID.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $virtualMachine = Get-VM -Id $vmId -ErrorAction Stop&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Connect to Virtual Machine ""$virtualMachine"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }Catch{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Failed Connecting to Virtual Machine ""$vmId"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'Set the guest customization for the virtual machine.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set-VM -VM $virtualMachine -OSCustomizationSpec $customSpec -Confirm:$False -ErrorAction Stop&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Applied Guest Customization ""$customizationName"" to ""$virtualMachine"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }Catch{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Failed Applying Guest Customization ""$customizationName"" to ""$virtualMachine"""&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Break;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; }Until($True)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;Write-Host "Done"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; font-size: 8pt;"&gt;#'------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Dec 2013 04:12:52 GMT</pubDate>
      <guid>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76221#M7322</guid>
      <dc:creator>mbeattie</dc:creator>
      <dc:date>2013-12-19T04:12:52Z</dc:date>
    </item>
    <item>
      <title>Re: Automated Re-Deploy of VMs using VSC cmdlets (Powershell Script)</title>
      <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76230#M7323</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Matt,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just a quick update to say I now have the two scripts working correctly. I have made a couple of adjustments mainly so it does not prompt for passwords (so the scripts can be scheduled to run in the early hours of the morning), instead uses a text file containing an encrypted password, this is purely to make the script a little more secure than keeping AD passwords in plain text. I also enumurate the VMs in the ApplyCustomization script instead of having to list them manually in the script.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again for all yor help in finding a resolution to this issue, couldn't have done it otherwise.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have attached the final three scripts for anyone else reading this post, wishing to redeploy their VMs and apply customization. The first script (one I found on Internet) is for creating the text file that will contain the encrypted password for the Redeploy and&amp;nbsp; the ApplyCusomization scripts.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;Encrypt Password and save to text file script&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;#STORED CREDENTIAL CODE&lt;/P&gt;&lt;P&gt;$AdminName = Read-Host "Enter your Admin AD username"&lt;/P&gt;&lt;P&gt;$CredsFile = "C:\usercredentials.txt"&lt;/P&gt;&lt;P&gt;$FileExists = Test-Path $CredsFile&lt;/P&gt;&lt;P&gt;if&amp;nbsp; ($FileExists -eq $false) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host 'Credential file not found. Enter your password:' -ForegroundColor Red&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Read-Host -AsSecureString | ConvertFrom-SecureString | Out-File $CredsFile&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $password = get-content $CredsFile | convertto-securestring&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist domain\$AdminName,$password}&lt;/P&gt;&lt;P&gt;else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Write-Host 'Using your stored credential file' -ForegroundColor Green&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $password = get-content $CredsFile | convertto-securestring&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist domain\$AdminName,$password}&lt;/P&gt;&lt;P&gt;#END OF STORED CREDENTIAL CODE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;Redeploy Script&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;#'-----------------------------------------------------------------------------&lt;BR /&gt;'Script Name : redeploy.ps1&amp;nbsp;&amp;nbsp; &lt;BR /&gt;'Author&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Matthew Beattie&lt;BR /&gt;&lt;SPAN&gt;'Email&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:mbeattie@netapp.com" target="_blank"&gt;mbeattie@netapp.com&lt;/A&gt;&lt;BR /&gt;'Created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 17/12/13&lt;BR /&gt;'Description : This script invokes the "redeployVMs" method of the VSC API.&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : It redeploys all virtual machines provisioned from a specifed&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : template to the source templates origional disk state. This &lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : has the potential for data loss in all virtual machines&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : deployed from the template. Use at your own risk.&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;BR /&gt;'Disclaimer&amp;nbsp; : (c) 2013 NetApp Inc., All Rights Reserved&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : NetApp disclaims all warranties, excepting NetApp shall provide&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : support of unmodified software pursuant to a valid, separate,&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : purchased support agreement. No distribution or modification of&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : this software is permitted by NetApp, except under separate&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : written agreement, which may be withheld at NetApp's sole &lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : discretion.&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;nbsp; &lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : THIS SOFTWARE IS PROVIDED BY NETAPP "AS IS" AND ANY EXPRESS OR&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR &lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NETAPP BE LIABLE FOR ANY&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS &lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING &lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;BR /&gt;'-----------------------------------------------------------------------------#&amp;gt;&lt;BR /&gt;[String]$vscIPAddress&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;IP Address&amp;gt;"&lt;BR /&gt;[String]$vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;VSC Host&amp;gt;"&lt;BR /&gt;[Int]$portNumber&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 8143 &lt;BR /&gt;[String]$username&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;Domain&amp;gt;\&amp;lt;Username&amp;gt;"&lt;BR /&gt;[String]$vmServiceCredFile = "&amp;lt;Path to text file containing encrypted password for above user&amp;gt;"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;[String]$templateName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;Template VM Name&amp;gt;"&lt;BR /&gt;[String]$dataCenterName&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;Datacenter Name&amp;gt;"&lt;BR /&gt;[String]$vFilerHostName&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;NetApp HostNAme&amp;gt;"&lt;BR /&gt;[String]$vFilerIPAddress&amp;nbsp;&amp;nbsp; = "&amp;lt;NetApp Host IP&amp;gt;"&lt;BR /&gt;[String]$customizationName = "&amp;lt;Name of customization file to use&amp;gt;"&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Prompt for VSC credentials.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[String]$username = "&amp;lt;Domain&amp;gt;\&amp;lt;Username&amp;gt;"&lt;BR /&gt;$vmServiceCreds = get-content $vmServiceCredFile | convertto-securestring&lt;BR /&gt;[System.Management.Automation.PSCredential]$vscCredentials = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $vmServiceCreds&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Connect to the VSC using the web service API.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$True}&lt;BR /&gt;&lt;SPAN&gt;[String]$uri = "&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://$vscIPAddress`$portNumber" target="_blank"&gt;https://$vscIPAddress`:$portNumber/kamino/public/api?wsdl&lt;/A&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;BR /&gt;Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$connection = New-WebServiceProxy -uri $uri -Credential $vscCredentials -ErrorAction Stop&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Write-Host "Connected to VSC on IPAddress ""$vscipAddress"" on Port ""$portNumber"""&lt;BR /&gt;}Catch{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Write-Host ("Error """ + $Error[0] + """ Connecting to ""$uri""")&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Break;&lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Create a namespace object from the connection object&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Object]$namespace = $connection.GetType().Namespace&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Create a requestspec Object from the NameSpace object&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Object]$requestSpecType = ($namespace + '.requestSpec')&lt;BR /&gt;[System.Object]$requestSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($requestSpecType)&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Convert Encrypted Password to Plain Text and Assign to Variable - ss&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;$EncrpytedPassword = get-content $vmServiceCredFile | convertto-securestring&lt;BR /&gt;&amp;nbsp;&amp;nbsp; # Get the plain text version of the password&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $password = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($EncrpytedPassword))&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Enumerate the username and password from the credential object.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[String]$domain&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;Domain&amp;gt;"&lt;BR /&gt;[String]$user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;Username&amp;gt;"&lt;BR /&gt;[String]$username&amp;nbsp; = "$domain\$user" &lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Set the properties of the RequestSpec object.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;&lt;SPAN&gt;$requestSpec.serviceUrl = "&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://" target="_blank"&gt;https://&lt;/A&gt;&lt;SPAN&gt;" + $vscHostName + "/sdk"&lt;/SPAN&gt;&lt;BR /&gt;$requestSpec.vcUser&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $username&lt;BR /&gt;$requestSpec.vcPassword = $password&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Enumerate the Managed Object Reference of the VMWare Template.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Object]$templateMoref = $connection.getMoref($templateName, "VirtualMachine", $requestSpec)&lt;BR /&gt;# Write-Host "Enumerated Managed Object Reference for ""$templateName"" as ""$templateMoref"""&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Enumerate the Managed Object Reference of the VMWare Datacenter.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Object]$dataCenterMoref = $connection.getMoref($dataCenterName, "Datacenter", $requestSpec)&lt;BR /&gt;# Write-Host "Enumerated Managed Object Reference for ""$dataCenterName"" as ""$dataCenterMoref"""&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Enumerate the Managed Object Reference of the Datastore.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Object]$dataStoreMoref = $connection.getMoref($dataStoreName, "Datastore", $requestSpec)&lt;BR /&gt;# Write-Host "Enumerated Managed Object Reference for ""$dataStoreName"" as ""$dataStoreMoref"""&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Enumerate the VMWare template files.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;# Write-Host "Enumerating files for Virtual Machine Template ""$templateMoref"""&lt;BR /&gt;Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; $files = $connection.getVMFiles($templateMoref, $requestSpec)&lt;BR /&gt;}Catch{&lt;BR /&gt;&amp;nbsp; # Write-Host ("Error """ + $Error[0] + """ Enumerating Virtual Machine Files for ""$templateMoref""")&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Break;&lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Enumerate the VMWare template files.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt; Write-Host "Enumerating Virtual Machines deployed from Template ""$templateMoref"""&lt;BR /&gt;Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; $virtualMachines = $connection.getVMs($templateMoref, $requestSpec)&lt;BR /&gt;}Catch{&lt;BR /&gt;&amp;nbsp; # Write-Host ("Error """ + $Error[0] + """ Enumerating Virtual Machines ""$templateMoref""")&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Break;&lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[Array]$vms = @()&lt;BR /&gt;ForEach($virtualMachine In $virtualMachines){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [Array]$vms += $virtualMachine.vmMoref&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Write-Host $virtualMachine.vmMoref&lt;BR /&gt;}&lt;BR /&gt;#'---------------------------------------------------------------------------&lt;BR /&gt;#'Create a controllerSpec Object from the NameSpace object and set properties.&lt;BR /&gt;#'---------------------------------------------------------------------------&lt;BR /&gt;[System.Object]$controllerType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ($namespace + '.controllerspec')&lt;BR /&gt;[System.Object]$controllerSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($controllerType)&lt;BR /&gt;[System.Object]$controllerSpec.username&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $username&lt;BR /&gt;[System.Object]$controllerSpec.password&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $password&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Set controller IP address (Ensure DNS A &amp;amp; PTR records exist)&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Object]$controllerSpec.ipAddress&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $vFilerIPAddress&lt;BR /&gt;[System.Object]$controllerSpec.passthroughContext = $vFilerHostName&lt;BR /&gt;[System.Object]$controllerSpec.ssl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $True&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Set the destination controller and datastore for each file.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;ForEach($file In $files){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; $file.destDatastoreSpec.controller = $controllerSpec;&lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Create a "cloneSpec" object from the NameSpace object and set properties.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Object]$cloneSpecType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ($namespace + '.clonespec')&lt;BR /&gt;[System.Object]$cloneSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($cloneSpecType)&lt;BR /&gt;[System.Object]$cloneSpec.templateMoref&amp;nbsp; = $templateMoref&lt;BR /&gt;[System.Object]$cloneSpec.containerMoref = $dataCenterMoref&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Create objects for each clone and set their properties.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[Array]$clones = @()&lt;BR /&gt;For($i = 0; $i -le ($vms.Count -1); $i++){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #'Create a vmSpec Object from the NameSpace object and set properties.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Object]$vmSpecType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ($namespace + '.vmSpec')&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Object]$vmSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($vmSpecType)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #'Create a cloneSpecEntry Object from the NameSpace object and set properties.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Object]$cloneSpecEntryType = ($namespace + '.cloneSpecEntry')&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Object]$cloneSpecEntry&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($cloneSpecEntryType)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #'Create a guestCustomizationSpecType Object from the NameSpace object and set properties.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Object]$guestCustomizationSpecType&amp;nbsp; = ($namespace + '.guestCustomizationSpec')&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Object]$guestCustomizationSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($guestCustomizationSpecType)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Object]$guestCustomizationSpec.Name = $customizationName&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Object]$vmSpec.powerOn&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $powerOn&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Object]$vmSpec.custSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $guestCustomizationSpec&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Object]$vmSpec.vmMoref&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $vms[$i]&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Object]$cloneSpecEntry.key&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $vms[$i]&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Object]$cloneSpecEntry.Value&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $vmSpec&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [Array]$clones&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; += $cloneSpecEntry&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #'Set the destination controller and datastore for the files.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp; ForEach($file In $files){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file.destDatastoreSpec.controller = $controllerSpec;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file.destDatastoreSpec.mor&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $dataStoreMoref;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Set the properties of the cloneSpec Object.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Object]$cloneSpec.files&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $files&lt;BR /&gt;[System.Object]$cloneSpec.clones&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $clones&lt;BR /&gt;[System.Object]$requestSpec.cloneSpec = $cloneSpec&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Initiate the Rapid clone task for the Even Numbered Clones.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [String]$taskId = $connection.redeployVMs($requestSpec, $controllerSpec)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [String]$taskId = $taskId.SubString($taskId.LastIndexOf(" ") + 1)&lt;BR /&gt;&amp;nbsp; # Write-Host "Initiated VSC Redeploy. VCenter TaskID ""$taskId"""&lt;SPAN style="text-decoration: underline;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;}Catch{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed Initiating VSC Redeploy"&lt;SPAN style="text-decoration: underline;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; Break;&lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------ &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;ApplyCustomization Script&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[String]$vscIPAddress&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;VSC IP Address&amp;gt;"&lt;BR /&gt;[String]$vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;VSC Hostname&amp;gt;"&lt;BR /&gt;[Int]$portNumber&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 8143 &lt;BR /&gt;[String]$username&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;Domain&amp;gt;\&amp;lt;username&amp;gt;"&lt;BR /&gt;[String]$vmServiceCredFile = "&amp;lt;Path and filename to text file containing encrypted password for above user&amp;gt;"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;[String]$templateName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;Template VM Name&amp;gt;"&lt;BR /&gt;[String]$dataCenterName&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;Datacentr Name&amp;gt;"&lt;BR /&gt;[String]$vFilerHostName&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;NetApp Hostname&amp;gt;"&lt;BR /&gt;[String]$vFilerIPAddress&amp;nbsp;&amp;nbsp; = "&amp;lt;NetApp IP Address&amp;gt;"&lt;BR /&gt;[String]$customizationName = "&amp;lt;Guest Customization to use&amp;gt;"&lt;BR /&gt;[String]$vCenterName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;FQDN of vCenter Server&amp;gt;"&lt;BR /&gt;[String]$protocol&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "https"&lt;BR /&gt;[String]$snapInName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "VMware.VimAutomation.Core"&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Provide VSC credentials from an encrypted string in text file.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[String]$username = "&amp;lt;domain&amp;gt;\&amp;lt;username&amp;gt;"&lt;BR /&gt;$vmServiceCreds = get-content $vmServiceCredFile | convertto-securestring&lt;BR /&gt;[System.Management.Automation.PSCredential]$vscCredentials = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $vmServiceCreds&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Connect to the VSC using the web service API.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$True}&lt;BR /&gt;&lt;SPAN&gt;[String]$uri = "&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://$vscIPAddress`$portNumber" target="_blank"&gt;https://$vscIPAddress`:$portNumber/kamino/public/api?wsdl&lt;/A&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;BR /&gt;Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$connection = New-WebServiceProxy -uri $uri -Credential $vscCredentials -ErrorAction Stop&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Write-Host "Connected to VSC on IPAddress ""$vscipAddress"" on Port ""$portNumber"""&lt;BR /&gt;}Catch{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Write-Host ("Error """ + $Error[0] + """ Connecting to ""$uri""")&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Break;&lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Create a namespace object from the connection object&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Object]$namespace = $connection.GetType().Namespace&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Create a requestspec Object from the NameSpace object&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Object]$requestSpecType = ($namespace + '.requestSpec')&lt;BR /&gt;[System.Object]$requestSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($requestSpecType)&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Convert Encrypted Password to Plain Text and Assign to Variable &lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;$EncrpytedPassword = get-content $vmServiceCredFile | convertto-securestring&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get the plain text version of the password&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $password = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($EncrpytedPassword))&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Enumerate the username and password from the credential object.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[String]$domain&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;Domain&amp;gt;"&lt;BR /&gt;[String]$user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "&amp;lt;Username&amp;gt;"&lt;BR /&gt;[String]$username&amp;nbsp; = "$domain\$user" &lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Set the properties of the RequestSpec object.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;&lt;SPAN&gt;$requestSpec.serviceUrl = "&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://" target="_blank"&gt;https://&lt;/A&gt;&lt;SPAN&gt;" + $vscHostName + "/sdk"&lt;/SPAN&gt;&lt;BR /&gt;$requestSpec.vcUser&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $username&lt;BR /&gt;$requestSpec.vcPassword = $password&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Enumerate the Managed Object Reference of the VMWare Template.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Object]$templateMoref = $connection.getMoref($templateName, "VirtualMachine", $requestSpec)&lt;BR /&gt;# Write-Host "Enumerated Managed Object Reference for ""$templateName"" as ""$templateMoref"""&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Enumerate the Managed Object Reference of the VMWare Datacenter.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Object]$dataCenterMoref = $connection.getMoref($dataCenterName, "Datacenter", $requestSpec)&lt;BR /&gt;# Write-Host "Enumerated Managed Object Reference for ""$dataCenterName"" as ""$dataCenterMoref"""&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Enumerate the Managed Object Reference of the Datastore.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[System.Object]$dataStoreMoref = $connection.getMoref($dataStoreName, "Datastore", $requestSpec)&lt;BR /&gt;# Write-Host "Enumerated Managed Object Reference for ""$dataStoreName"" as ""$dataStoreMoref"""&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Enumerate the VMWare template files.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;# Write-Host "Enumerating files for Virtual Machine Template ""$templateMoref"""&lt;BR /&gt;Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; $files = $connection.getVMFiles($templateMoref, $requestSpec)&lt;BR /&gt;}Catch{&lt;BR /&gt;&amp;nbsp; # Write-Host ("Error """ + $Error[0] + """ Enumerating Virtual Machine Files for ""$templateMoref""")&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Break;&lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Enumerate the VMWare template files.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt; Write-Host "Enumerating Virtual Machines deployed from Template ""$templateMoref"""&lt;BR /&gt;Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; $virtualMachines = $connection.getVMs($templateMoref, $requestSpec)&lt;BR /&gt;}Catch{&lt;BR /&gt;&amp;nbsp; # Write-Host ("Error """ + $Error[0] + """ Enumerating Virtual Machines ""$templateMoref""")&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Break;&lt;BR /&gt;}&lt;BR /&gt;[Array]$vms = @()&lt;BR /&gt;ForEach($virtualMachine In $virtualMachines){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [Array]$vms += $virtualMachine.vmMoref&lt;BR /&gt;&amp;nbsp;&amp;nbsp; # Write-Host $virtualMachine.vmMoref&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;# ***********************************************************&lt;BR /&gt;# ********&amp;nbsp; Apply Customization to Redeployed VMs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ********&lt;BR /&gt;# ***********************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#'Get credentials for vCenter Login.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;$vmServiceCreds = get-content $vmServiceCredFile | convertto-securestring&lt;BR /&gt;[System.Management.Automation.PSCredential]$credentials = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $vmServiceCreds&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Ensure the VMware PowerShell SnapIn is added.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Add-PSSnapin -Name $snapInName -ErrorAction SilentlyContinue&lt;BR /&gt;}Catch{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Write-Host "The SnapIn ""$snapInName"" is added"&lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Connect to Virtual Center.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'Bypass SSL certificate confirmation&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$True}&amp;nbsp; &lt;BR /&gt;Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Connect-VIServer -Server $vCenterName -Protocol $protocol -Credential $credentials -Force -ErrorAction Stop | Out-Null&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Write-Host "Connected to Virtual Center ""$vCenterName"""&lt;BR /&gt;}Catch{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Write-Host "Error Connecting to ""$vCenterName"""&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Break;&lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Get the VMWare Guest Customization.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; $customSpec = Get-OSCustomizationSpec -Name $customizationName -ErrorAction Stop&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Write-Host "Enumerated Guest Customization ""$customizationName"""&lt;BR /&gt;}Catch{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed Enumerating Guest Customization ""$customizationName"""&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Break;&lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Set the template for each VM (replace ":" with "-"). VSC and vSphere return different ID formats.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;ForEach($vm In $vms){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; $vmId = $vm -Replace(":", "-")&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Do{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'Connect to the Virtual Machine by ID.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $virtualMachine = Get-VM -Id $vmId -ErrorAction Stop&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Connect to Virtual Machine ""$virtualMachine"""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }Catch{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Failed Connecting to Virtual Machine ""$vmId"""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Break;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'Set the guest customization for the virtual machine.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set-VM -VM $virtualMachine -OSCustomizationSpec $customSpec -Confirm:$False -ErrorAction Stop&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Applied Guest Customization ""$customizationName"" to ""$virtualMachine"""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-VM $virtualMachine | Start-VM &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Power on Virtual Machine: ""$virtualMachine"""&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }Catch{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Failed Applying Guest Customization ""$customizationName"" to ""$virtualMachine"""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }Until($True)&lt;BR /&gt;}&lt;BR /&gt;Write-Host "Done"&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Jan 2014 12:21:43 GMT</pubDate>
      <guid>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76230#M7323</guid>
      <dc:creator>SCOTTS2012</dc:creator>
      <dc:date>2014-01-13T12:21:43Z</dc:date>
    </item>
    <item>
      <title>Re: Automated Re-Deploy of VMs using VSC cmdlets (Powershell Script)</title>
      <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76236#M7324</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Scott,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good to see you've managed to get it working, happy to help.&lt;/P&gt;&lt;P&gt;You might also want to take a look at NetApp OnCommand Workflow Automation available below (it's free) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.netapp.com/community/products_and_solutions/storage_management_software/workflow-automation" target="_blank"&gt;https://communities.netapp.com/community/products_and_solutions/storage_management_software/workflow-automation&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This product is powershell based and can cache credentials so you can avoid using encrypted registry keys or text files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers Matt&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Jan 2014 00:02:08 GMT</pubDate>
      <guid>https://community.netapp.com/t5/VMware-Solutions-Discussions/Automated-Re-Deploy-of-VMs-using-VSC-cmdlets-Powershell-Script/m-p/76236#M7324</guid>
      <dc:creator>mbeattie</dc:creator>
      <dc:date>2014-01-20T00:02:08Z</dc:date>
    </item>
  </channel>
</rss>

