<?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: VSC Automation in VMware Solutions Discussions</title>
    <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/VSC-Automation/m-p/16278#M1645</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;Posted the solution in your origonal thread here:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.netapp.com/message/121856" target="_blank"&gt;https://communities.netapp.com/message/121856&lt;/A&gt;&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, 16 Dec 2013 23:18:01 GMT</pubDate>
    <dc:creator>mbeattie</dc:creator>
    <dc:date>2013-12-16T23:18:01Z</dc:date>
    <item>
      <title>VSC Automation</title>
      <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/VSC-Automation/m-p/16259#M1638</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;VSC can be automated using PowerShell to invoke API SOAP requests via web services.&lt;/P&gt;&lt;P&gt;I'm currently writting a function library for VSC4.X to replicate the functionality the previously existed with the Kamino PowerShell Module for VSC2.X. &lt;/P&gt;&lt;P&gt;See example code below, hope this helps to accelerate your development!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c#" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_13763766019104505" jivemacro_uid="_13763766019104505"&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;PRE __default_attr="c#" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_13763765991487745" jivemacro_uid="_13763765991487745"&gt;&lt;P&gt;&amp;lt;#'-----------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;'Script Name : vsc.ps1&lt;/P&gt;&lt;P&gt;'Author&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Matthew Beattie&lt;/P&gt;&lt;P&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;/P&gt;&lt;P&gt;'Created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 04/08/13&lt;/P&gt;&lt;P&gt;'Description : Example of VSC automation using web services API.&lt;/P&gt;&lt;P&gt;'-------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;'Functions Section&lt;/P&gt;&lt;P&gt;'-----------------------------------------------------------------------------#&amp;gt;&lt;/P&gt;&lt;P&gt;Function Connect-VSC{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;#&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .SYNOPSIS &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Connect-VSC Connects to the NetApp (VSC) Virtual Storage Console using web services&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .DESCRIPTION&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Connects to the Virtual Storage Console and returns a connection.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .PARAMETER&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; IPAddress accepts a string containing the VSC IPAddress&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .PARAMETER&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PortNumber Accepts an Integer containing the Port Number the VSC is listening on.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .EXAMPLE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Connect-VSC -IPAddress 192.168.0.100 -PortNumber 8143 -Credentials $credentials&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .NOTES&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; The Function returns a connection object to the VSC using the Web Services API.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Param(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$IPAddress,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Int]$PortNumber,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Management.Automation.PSCredential]$Credentials&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $connection = ""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Bypass SSL certificate confirmation&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$True}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Get the web service proxy object of the SOAP API for the VSC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$uri = "&lt;A href="https://$ipAddress`$portNumber" target="_blank"&gt;https://$ipAddress`:$portNumber/kamino/public/api?wsdl&lt;/A&gt;"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Try{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$connection = `&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-WebServiceProxy -uri $uri -Credential $credentials -ErrorAction Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host ("Error """ + $Error[0] + """ Connecting to ""$uri""")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Return $connection;&lt;/P&gt;&lt;P&gt;}#End Function&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Function Get-VSCvCenterVersion{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;#&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .SYNOPSIS &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Get-VCenterVersion enumerates the Virtual Center Version&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Param(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $Connection,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$IPAddress,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Management.Automation.PSCredential]$Credentials&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Enumerate the username and password from the credential object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$vcVersion = ""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$domain&amp;nbsp;&amp;nbsp;&amp;nbsp; = $credentials.GetNetworkCredential().domain&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $credentials.GetNetworkCredential().username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$password&amp;nbsp; = $credentials.GetNetworkCredential().password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$username&amp;nbsp; = "$domain\$user" &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Get the object of the namespace&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $namespace = $connection.GetType().Namespace&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a request&amp;nbsp; spec from the NameSpace&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpecType = ($namespace + '.requestSpec')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($requestSpecType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Set the properties of the RequestSpec object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; $requestSpec.serviceUrl = "&lt;/SPAN&gt;&lt;A _jive_internal="true" href="//" target="_blank"&gt;https://&lt;/A&gt;&lt;SPAN&gt;" + $ipAddress + "/sdk"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.vcUser&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.vcPassword = $password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $vcVersion&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; = $connection.getVCenterVersion($requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Return $vcVersion;&lt;/P&gt;&lt;P&gt;}#End Function&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Function Get-VSCManagedObjectRef{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;#&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .SYNOPSIS &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Get-VCenterVersion enumerates the Virtual Center Version&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #&amp;gt; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Param(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$Connection,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$IPAddress,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$Name,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=3,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$Type,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=4,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Management.Automation.PSCredential]$Credentials&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; )&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Enumerate the username and password from the credential object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$moref&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$domain&amp;nbsp;&amp;nbsp;&amp;nbsp; = $credentials.GetNetworkCredential().domain&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $credentials.GetNetworkCredential().username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$password&amp;nbsp; = $credentials.GetNetworkCredential().password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$username&amp;nbsp; = "$domain\$user" &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a namespace object from the connection object&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$namespace = $connection.GetType().Namespace&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a requestspec Object from the NameSpace object&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$requestSpecType = ($namespace + '.requestSpec')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$requestSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($requestSpecType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Set the properties of the RequestSpec object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; $requestSpec.serviceUrl = "&lt;/SPAN&gt;&lt;A _jive_internal="true" href="//" target="_blank"&gt;https://&lt;/A&gt;&lt;SPAN&gt;" + $ipAddress + "/sdk"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.vcUser&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.vcPassword = $password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Enumerate the Managed Object Reference based on the object type.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Switch($Type){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Switch($Type){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ClusterComputeResource"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "ClusterComputeResource", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Datacenter"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "Datacenter", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Datastore"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "Datastore", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Folder"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "Folder", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "HostSystem"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "HostSystem", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ResourcePool"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "ResourcePool", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "VirtualMachine"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "VirtualMachine", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Return $moref;&lt;/P&gt;&lt;P&gt;}#End Function&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Initialization Section&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[String]$scriptPath&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = Split-Path($MyInvocation.MyCommand.Path)&lt;/P&gt;&lt;P&gt;[String]$scriptSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $MyInvocation.MyCommand.Definition&lt;/P&gt;&lt;P&gt;[String]$scriptBaseName = (Get-Item $scriptSpec).BaseName&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[String]$ipAddress&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "192.168.100.19"&lt;/P&gt;&lt;P&gt;[Int]$portNumber&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 8143&lt;/P&gt;&lt;P&gt;[String]$datacenter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "Testlab"&lt;/P&gt;&lt;P&gt;[String]$datastore&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "Datastore1"&lt;/P&gt;&lt;P&gt;[String]$username&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "testlab\administrator"&lt;/P&gt;&lt;P&gt;$password&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; = Read-Host "Please enter the password for user ""$userName""" -AsSecureString&lt;/P&gt;&lt;P&gt;$credentials&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object System.Management.Automation.PSCredential -ArgumentList $userName, $password&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Connect to the VSC using the web service API.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Try{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $connection = Connect-VSC -IPAddress $ipAddress -PortNumber $portNumber -Credentials $credentials -ErrorAction Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Connected to VSC on IPAddress ""$ipAddress"" on Port ""$portNumber"""&lt;/P&gt;&lt;P&gt;}Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed connecting to ""$ipAddress"" on PortNumber ""$portNumber"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Enumerate the Virtual Center Version.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Try{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $vcVersion = Get-VSCvCenterVersion -Connection $connection -IPAddress $ipAddress -Credentials $credentials -ErrorAction Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Enumerated Virtual Center Version as ""$vcVersion"""&lt;/P&gt;&lt;P&gt;}Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed Enumerating Virtual Center Version"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Enumerate the Managed Object Reference for the DataCenter object.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Try{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$dataCenterMoref = Get-VSCManagedObjectRef -Connection $connection -IPAddress $ipAddress -Name $datacenter -Type "Datacenter" -Credentials $credentials -ErrorAction Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Enumerated Managed Object Reference for ""$datacenter"" as ""$dataCenterMoref"""&lt;/P&gt;&lt;P&gt;}Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed Enumerating Managed Object Reference for ""$datacenter"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Enumerate the Managed Object Reference for the DataCenter object.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Try{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$dataStoreMoref = Get-VSCManagedObjectRef -Connection $connection -IPAddress $ipAddress -Name $datastore -Type "Datastore" -Credentials $credentials&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Enumerated Managed Object Reference for ""$datastore"" as ""$dataStoreMoref"""&lt;/P&gt;&lt;P&gt;}Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed Enumerating Managed Object Reference for ""$datastore"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/PRE&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: terminal,monaco;"&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: terminal,monaco;"&gt;Enumerated Virtual Center Version as "5.1.0"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco;"&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: terminal,monaco;"&gt;Enumerated Managed Object Reference for "Datastore1" as "Datastore:datastore-16"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Watch this space, i'll be adding to the library of functions. 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;Here is another example of how to invoke methods using the web services API. The following example will resize an NFS datastore&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: terminal,monaco;"&gt;Connected to VSC "testvc01" on Port "8143"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco;"&gt;Enumerated Managed Object Reference for "datastore1" as "Datastore:datastore-16"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco;"&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: terminal,monaco;"&gt;Resizing datastore "Datastore1" to "200GB"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco;"&gt;Initiated Resize for datastore "Datastore1". VCenter TaskID "Task:task-262"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_13763765941532518" jivemacro_uid="_13763765941532518"&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Function Connect-VSC{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;#&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .SYNOPSIS &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Connect-VSC Connects to the NetApp (VSC) Virtual Storage Console using web services&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .DESCRIPTION&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Connects to the Virtual Storage Console and returns a connection.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .PARAMETER&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; VSCHostName accepts a string containing the NetBIOS Hostname of the VSC server.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .PARAMETER&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PortNumber Accepts an Integer containing the Port Number the VSC is listening on.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .EXAMPLE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Connect-VSC -VSCHostName TESTVC01 -PortNumber 8143 -Credentials $credentials&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .NOTES&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; The Function returns a connection object to the VSC using the Web Services API.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Param(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$VSCHostName,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Int]$PortNumber,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Management.Automation.PSCredential]$Credentials&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $connection = ""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Bypass SSL certificate confirmation&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$True}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Get the web service proxy object of the SOAP API for the VSC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$uri = "&lt;A href="https://$vscIpAddress`$portNumber" target="_blank"&gt;https://$vscIpAddress`:$portNumber/kamino/public/api?wsdl&lt;/A&gt;"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Try{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$connection = `&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-WebServiceProxy -uri $uri -Credential $credentials -ErrorAction Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host ("Error """ + $Error[0] + """ Connecting to ""$uri""")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Return $connection;&lt;/P&gt;&lt;P&gt;}#End Function&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Function Get-VSCManagedObjectRef{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;#&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .SYNOPSIS &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Get-VCenterVersion enumerates the Virtual Center Version&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #&amp;gt; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Param(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$Connection,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$VSCHostName,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$Name,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=3,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$Type,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=4,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Management.Automation.PSCredential]$Credentials&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; )&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Enumerate the username and password from the credential object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$moref&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$domain&amp;nbsp;&amp;nbsp;&amp;nbsp; = $credentials.GetNetworkCredential().domain&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $credentials.GetNetworkCredential().username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$password&amp;nbsp; = $credentials.GetNetworkCredential().password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$username&amp;nbsp; = "$domain\$user" &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a namespace object from the connection object&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$namespace = $connection.GetType().Namespace&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a requestspec Object from the NameSpace object&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$requestSpecType = ($namespace + '.requestSpec')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$requestSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($requestSpecType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Set the properties of the RequestSpec object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; $requestSpec.serviceUrl = "&lt;/SPAN&gt;&lt;A _jive_internal="true" href="//" target="_blank"&gt;https://&lt;/A&gt;&lt;SPAN&gt;" + $vscHostName + "/sdk"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.vcUser&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.vcPassword = $password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Enumerate the Managed Object Reference based on the object type.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Switch($Type){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Switch($Type){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ClusterComputeResource"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "ClusterComputeResource", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Datacenter"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "Datacenter", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Datastore"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "Datastore", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Folder"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "Folder", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "HostSystem"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "HostSystem", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ResourcePool"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "ResourcePool", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "VirtualMachine"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "VirtualMachine", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Return $moref;&lt;/P&gt;&lt;P&gt;}#End Function&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Function Update-VSCDataStoreSize{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;#&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .SYNOPSIS &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Resize-VSCDataStore resizes a datastore&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #&amp;gt; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Param(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$Connection,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$ControllerHostName,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$VSCHostName,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=3,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$False,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$VFilerHostName,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=4,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$Protocol,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=5,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Bool]$ThinProvision,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=5,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$DataStoreName,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=6,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$DataCenterName,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=7,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Int]$dataStoreSizeGB,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=8,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Management.Automation.PSCredential]$ControllerCredentials,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=9,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Management.Automation.PSCredential]$VSCCredentials&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Enumerate the username and password from the credential object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$domain&amp;nbsp;&amp;nbsp;&amp;nbsp; = $ControllerCredentials.GetNetworkCredential().domain&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $ControllerCredentials.GetNetworkCredential().username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$password&amp;nbsp; = $ControllerCredentials.GetNetworkCredential().password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Set the username for the domain or local user.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; If($domain -ne ""){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$username&amp;nbsp; = "$domain\$user"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }Else{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$username = $user.Split("\")[0]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a namespace object from the connection object&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$namespace = $connection.GetType().Namespace&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a controllerSpec Object from the NameSpace object and set properties.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$controllerType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ($namespace + '.controllerspec')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$controllerSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($controllerType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$controllerSpec.username&amp;nbsp; = $username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$controllerSpec.password&amp;nbsp; = $password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$controllerSpec.ipAddress = $ControllerHostName&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$controllerSpec.ssl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $True&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #[System.Object]$controllerSpec.port&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 443&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Set the vFiler context if the parameter was parsed to the function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; If($VFilerIPAddress -ne $Null){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Object]$controllerSpec.passthroughContext = $VFilerHostName&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $controllerSpec&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Enumerate the username and password from the credential object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$domain&amp;nbsp;&amp;nbsp;&amp;nbsp; = $vscCredentials.GetNetworkCredential().domain&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $vscCredentials.GetNetworkCredential().username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$password&amp;nbsp; = $vscCredentials.GetNetworkCredential().password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$username&amp;nbsp; = "$domain\$user" &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a requestspec Object from the NameSpace object&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$requestSpecType = ($namespace + '.requestSpec')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$requestSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($requestSpecType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Set the properties of the RequestSpec object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; $requestSpec.serviceUrl = "&lt;/SPAN&gt;&lt;A _jive_internal="true" href="//" target="_blank"&gt;https://&lt;/A&gt;&lt;SPAN&gt;" + $vscHostName + "/sdk"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.vcUser&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.vcPassword = $password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Enumerate the Managed Object Reference for the Datastore object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Try{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$objectType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "Datastore"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$dataStoreMoref = Get-VSCManagedObjectRef -Connection&amp;nbsp;&amp;nbsp; $connection&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -VSCHostName&amp;nbsp; $vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $dataStore&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objectType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Credentials&amp;nbsp; $vscCredentials `&lt;/P&gt;&lt;P&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; -ErrorAction&amp;nbsp; Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Enumerated Managed Object Reference for ""$datastore"" as ""$dataStoreMoref"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Failed Enumerating Managed Object Reference for ""$datastore"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Enumerate the Managed Object Reference for the DataCenter object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Try{&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$objectType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "Datacenter"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$dataCenterMoref = Get-VSCManagedObjectRef -Connection&amp;nbsp;&amp;nbsp; $connection&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -VSCHostName&amp;nbsp; $vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $dataCenter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objectType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Credentials&amp;nbsp; $vscCredentials `&lt;/P&gt;&lt;P&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; -ErrorAction&amp;nbsp; Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Enumerated Managed Object Reference for ""$dataCenter"" as ""$dataCenterMoref"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Failed Enumerating Managed Object Reference for ""$dataCenter"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a dataStoreSpec Object from the NameSpace object and set properties.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$dataStoreType&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 + '.datastorespec')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$dataStoreSpec&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 ($dataStoreType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$dataStoreSpec.controller&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $controllerSpec&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$dataStoreSpec.thinProvision&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $thinProvision&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$dataStoreSpec.Protocol&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $protocol.ToUpper();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$dataStoreSpec.protocolSpecified = $True&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$dataStoreSpec.numDatastores&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$dataStoreSpec.sizeInMB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ($dataStoreSizeGB * 1024)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$dataStoreSpec.sizeInMBSpecified = $True&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$dataStoreSpec.datastoreNames&amp;nbsp;&amp;nbsp;&amp;nbsp; = $dataStoreName&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$dataStoreSpec.mor&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; = $dataStoreMoref&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$dataStoreSpec.targetMor&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $dataCenterMoref&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$dataStoreSpec.wrapperVol&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $True&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Invoke the ResizeDataStore Method.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$taskID = ""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Trap [System.Management.Automation.MethodInvocationException]{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host ("Error " + $_ + " Resizing datastore ""$dataStoreName""") Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Resizing datastore ""$dataStoreName"" to ""$dataStoreSizeGB`GB"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$task&amp;nbsp;&amp;nbsp; = $connection.ResizeDatastore($dataStoreSpec, $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$taskID = $task.SubString($task.LastIndexOf(" ") + 1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Return $taskID;&lt;/P&gt;&lt;P&gt;}#End Function&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Initialization Section&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[String]$scriptPath&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = Split-Path($MyInvocation.MyCommand.Path)&lt;/P&gt;&lt;P&gt;[String]$scriptSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $MyInvocation.MyCommand.Definition&lt;/P&gt;&lt;P&gt;[String]$scriptBaseName = (Get-Item $scriptSpec).BaseName&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Prompt for storage credentials.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[String]$username = "root"&lt;/P&gt;&lt;P&gt;[System.Security.SecureString]$password = `&lt;/P&gt;&lt;P&gt;Read-Host "Please enter the password for user ""$username""" -AsSecureString&lt;/P&gt;&lt;P&gt;[System.Management.Automation.PSCredential]$controllerCredentials = `&lt;/P&gt;&lt;P&gt;New-Object System.Management.Automation.PSCredential -ArgumentList $username, $password&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Prompt for VSC credentials.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[String]$username = "testlab\administrator"&lt;/P&gt;&lt;P&gt;[System.Security.SecureString]$password = `&lt;/P&gt;&lt;P&gt;Read-Host "Please enter the password for user ""$username""" -AsSecureString&lt;/P&gt;&lt;P&gt;[System.Management.Automation.PSCredential]$vscCredentials = `&lt;/P&gt;&lt;P&gt;New-Object System.Management.Automation.PSCredential -ArgumentList $username, $password&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Set variables.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[String]$controllerHostName&amp;nbsp; = "testns01"&lt;/P&gt;&lt;P&gt;[String]$vFilerHostName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "testnv01"&lt;/P&gt;&lt;P&gt;[String]$vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "testvc01"&lt;/P&gt;&lt;P&gt;[Int]$portNumber&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 8143&lt;/P&gt;&lt;P&gt;[String]$protocol&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "nfs"&lt;/P&gt;&lt;P&gt;[Int]$dataStoreSizeGB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 200&lt;/P&gt;&lt;P&gt;[String]$dataCenterName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "Testlab"&lt;/P&gt;&lt;P&gt;[String]$dataStoreName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "Datastore1"&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Connect to the VSC using the web services API.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Try{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$connection = `&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Connect-VSC -VSCHostName&amp;nbsp; $vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -PortNumber&amp;nbsp;&amp;nbsp; $portNumber&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Credentials&amp;nbsp; $vscCredentials `&lt;/P&gt;&lt;P&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; -ErrorAction&amp;nbsp; Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Connected to VSC ""$vscHostName"" on Port ""$portNumber"""&lt;/P&gt;&lt;P&gt;}Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed connecting to ""$vscHostName"" on PortNumber ""$portNumber"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Resize the datastore.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Try{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$taskID = Update-VSCDataStoreSize -Connection&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $connection&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -ControllerHostName&amp;nbsp;&amp;nbsp;&amp;nbsp; $controllerHostName&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -VSCHostName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -VFilerHostName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vFilerHostName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Protocol&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; $protocol&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;/P&gt;&lt;P&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; -ThinProvision&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $True&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;/P&gt;&lt;P&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; -DataStoreName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $dataStoreName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -DataCenterName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $dataCenterName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -DataStoreSizeGB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $dataStoreSizeGB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -ControllerCredentials $controllerCredentials `&lt;/P&gt;&lt;P&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; -VSCCredentials&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vscCredentials&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$taskID = $taskID.SubString($taskID.LastIndexOf(" ") + 1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Datastore ""$dataStoreName"" resized. VCenter TaskID ""$taskID"""&lt;/P&gt;&lt;P&gt;}Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed Resizing datastore ""$dataStoreName"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is another example that demonstrates how to create rapid clones using the "CreateClones" method of Kamino web services API&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: terminal,monaco;"&gt;Connected to VSC "testvc01" on Port "8143"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal,monaco;"&gt;Enumerated Managed Object Reference for "Datastore1" as "Datastore:datastore-16"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal,monaco;"&gt;Enumerated Managed Object Reference for "testxp01" as "VirtualMachine:vm-17"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal,monaco;"&gt;Enumerated Managed Object Reference for "Testlab" as "Datacenter:datacenter-2"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal,monaco;"&gt;Enumerated Virtual Machine Files for template "testxp01"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal,monaco;"&gt;Initiating Rapid Clones&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal,monaco;"&gt;Initiated Rapid clones. VCenter TaskID "Task:task-308"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See code below. Hope this helps &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_macro jive_emote" src="https://community.netapp.com/5.0.1/images/emoticons/happy.gif"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c#" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_13763765885205291" jivemacro_uid="_13763765885205291" modifiedtitle="true"&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;#'-----------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;'Script Name : CreateClones.ps1&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;'Author&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Matthew Beattie&lt;/P&gt;&lt;P&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;/P&gt;&lt;P&gt;'Created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 07/08/13&lt;/P&gt;&lt;P&gt;'Description : This script provides and example of creating rapid clones by&lt;/P&gt;&lt;P&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : invoking the "CreateClones" method of the kamino API &lt;/P&gt;&lt;P&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : using web services.&lt;/P&gt;&lt;P&gt;'-------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;'Functions Section&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;'-----------------------------------------------------------------------------#&amp;gt;&lt;/P&gt;&lt;P&gt;Function Connect-VSC{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;#&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .SYNOPSIS &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Connect-VSC Connects to the NetApp (VSC) Virtual Storage Console using web services&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .DESCRIPTION&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Connects to the Virtual Storage Console and returns a connection.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .PARAMETER&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; VSCHostName accepts a string containing the NetBIOS Hostname of the VSC server.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .PARAMETER&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PortNumber Accepts an Integer containing the Port Number the VSC is listening on.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .EXAMPLE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Connect-VSC -VSCHostName TESTVC01 -PortNumber 8143 -Credentials $credentials&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .NOTES&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; The Function returns a connection object to the VSC using the Web Services API.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Param(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$VSCHostName,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Int]$PortNumber,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Management.Automation.PSCredential]$Credentials&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $connection = ""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Bypass SSL certificate confirmation&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$True}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Get the web service proxy object of the SOAP API for the VSC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$uri = "&lt;A href="https://$vscHostName`$portNumber" target="_blank"&gt;https://$vscHostName`:$portNumber/kamino/public/api?wsdl&lt;/A&gt;"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Try{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$connection = `&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-WebServiceProxy -uri $uri -Credential $credentials -ErrorAction Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host ("Error """ + $Error[0] + """ Connecting to ""$uri""")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Return $connection;&lt;/P&gt;&lt;P&gt;}#End Function&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Function Get-VSCManagedObjectRef{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;#&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .SYNOPSIS &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Get-VCenterVersion enumerates the Virtual Center Version&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #&amp;gt; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Param(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$Connection,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$VSCHostName,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$Name,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=3,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$Type,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=4,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Management.Automation.PSCredential]$Credentials&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; )&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Enumerate the username and password from the credential object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$moref&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$domain&amp;nbsp;&amp;nbsp;&amp;nbsp; = $credentials.GetNetworkCredential().domain&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $credentials.GetNetworkCredential().username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$password&amp;nbsp; = $credentials.GetNetworkCredential().password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$username&amp;nbsp; = "$domain\$user" &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a namespace object from the connection object&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$namespace = $connection.GetType().Namespace&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a requestspec Object from the NameSpace object&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$requestSpecType = ($namespace + '.requestSpec')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$requestSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($requestSpecType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Set the properties of the RequestSpec object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; $requestSpec.serviceUrl = "&lt;/SPAN&gt;&lt;A _jive_internal="true" href="//" target="_blank"&gt;https://&lt;/A&gt;&lt;SPAN&gt;" + $vscHostName + "/sdk"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.vcUser&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.vcPassword = $password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Enumerate the Managed Object Reference based on the object type.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Switch($Type){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ClusterComputeResource"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "ClusterComputeResource", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Datacenter"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "Datacenter", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Datastore"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "Datastore", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Folder"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "Folder", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "HostSystem"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "HostSystem", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ResourcePool"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "ResourcePool", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "VirtualMachine"{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$moref = $connection.getMoref($Name, "VirtualMachine", $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Return $moref;&lt;/P&gt;&lt;P&gt;}#End Function&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Function Get-VSCVMFiles{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;#&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .SYNOPSIS &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Get-VCenterVersion enumerates the Virtual Center Version&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #&amp;gt; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Param(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$Connection,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$VSCHostName,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$VirtualMachineName,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=3,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Management.Automation.PSCredential]$Credentials&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; )&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Enumerate the username and password from the credential object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$domain&amp;nbsp;&amp;nbsp;&amp;nbsp; = $credentials.GetNetworkCredential().domain&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $credentials.GetNetworkCredential().username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$password&amp;nbsp; = $credentials.GetNetworkCredential().password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$username&amp;nbsp; = "$domain\$user" &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a namespace object from the connection object&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$namespace = $connection.GetType().Namespace&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a requestspec Object from the NameSpace object&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$requestSpecType = ($namespace + '.requestSpec')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$requestSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($requestSpecType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Set the properties of the RequestSpec object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; $requestSpec.serviceUrl = "&lt;/SPAN&gt;&lt;A _jive_internal="true" href="//" target="_blank"&gt;https://&lt;/A&gt;&lt;SPAN&gt;" + $vscHostName + "/sdk"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.vcUser&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.vcPassword = $password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Enumerate the Managed Object Reference based on the object type.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $files = ""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $files = $connection.getVMFiles($VirtualMachineName, $requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Return $files;&lt;/P&gt;&lt;P&gt;}#End Function&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Function Start-VSCClones{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;#&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .SYNOPSIS &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Start-VSCClone Invokes the CreateClones Method of the Web Services API.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .DESCRIPTION&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Creates Rapid Clones using the VSC web services API.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .PARAMETER&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Connection Accepts a web services object containing a connection the VSC web services API.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .PARAMETER&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; VSCHostName Accepts a String containing the NetBIOS hostname of the VSC Server.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .PARAMETER&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CloneSpec Accepts a web services object containing the clone configuration to invoke.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; .EXAMPLE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Start-VSCClones -Connection $connection -VSCHostName "testvc01" -CloneSpec $cloneSpec -Credentials $credentials &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #&amp;gt; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Param(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$Connection,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$VSCHostName,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Object]$CloneSpec,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Position=3,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mandatory=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLine=$True,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueFromPipeLineByPropertyName=$True)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Management.Automation.PSCredential]$Credentials&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; )&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Enumerate the username and password from the credential object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$domain&amp;nbsp;&amp;nbsp; = $credentials.GetNetworkCredential().domain&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $credentials.GetNetworkCredential().username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$password = $credentials.GetNetworkCredential().password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$username = "$domain\$user" &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a namespace object from the connection object&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$namespace = $connection.GetType().Namespace&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a requestspec Object from the NameSpace object&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$requestSpecType = ($namespace + '.requestSpec')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$requestSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($requestSpecType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Set the properties of the RequestSpec object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; $requestSpec.serviceUrl = "&lt;/SPAN&gt;&lt;A _jive_internal="true" href="//" target="_blank"&gt;https://&lt;/A&gt;&lt;SPAN&gt;" + $vscHostName + "/sdk"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.vcUser&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $username&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.vcPassword = $password&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $requestSpec.CloneSpec&amp;nbsp; = $cloneSpec&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Invoke the CreateClones Method.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$taskID = ""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Trap [System.Management.Automation.MethodInvocationException]{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host ("Error " + $_ + " Initiating Rapid Clones") Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Initiating Rapid Clones"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$task&amp;nbsp;&amp;nbsp; = $connection.CreateClones($requestSpec)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$taskID = $task.SubString($task.LastIndexOf(" ") + 1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Return $taskID;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Return $taskId;&lt;/P&gt;&lt;P&gt;}#End Function&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Initialization Section&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[String]$scriptPath&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = Split-Path($MyInvocation.MyCommand.Path)&lt;/P&gt;&lt;P&gt;[String]$scriptSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $MyInvocation.MyCommand.Definition&lt;/P&gt;&lt;P&gt;[String]$scriptBaseName = (Get-Item $scriptSpec).BaseName&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Prompt for storage credentials.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[String]$username = "root"&lt;/P&gt;&lt;P&gt;[System.Security.SecureString]$password = `&lt;/P&gt;&lt;P&gt;Read-Host "Please enter the password for user ""$username""" -AsSecureString&lt;/P&gt;&lt;P&gt;[System.Management.Automation.PSCredential]$controllerCredentials = `&lt;/P&gt;&lt;P&gt;New-Object System.Management.Automation.PSCredential -ArgumentList $username, $password&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Prompt for VSC credentials.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[String]$username = "testlab\administrator"&lt;/P&gt;&lt;P&gt;[System.Security.SecureString]$password = `&lt;/P&gt;&lt;P&gt;Read-Host "Please enter the password for user ""$username""" -AsSecureString&lt;/P&gt;&lt;P&gt;[System.Management.Automation.PSCredential]$vscCredentials = `&lt;/P&gt;&lt;P&gt;New-Object System.Management.Automation.PSCredential -ArgumentList $username, $password&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Set variables.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[String]$controllerHostName&amp;nbsp; = "testns01"&lt;/P&gt;&lt;P&gt;[String]$vFilerHostName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "testnv01"&lt;/P&gt;&lt;P&gt;[String]$vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "testvc01"&lt;/P&gt;&lt;P&gt;[String]$esxHostName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "testesx1.testlab.local"&lt;/P&gt;&lt;P&gt;[Int]$portNumber&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 8143&lt;/P&gt;&lt;P&gt;[String]$dataCenterName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "Testlab"&lt;/P&gt;&lt;P&gt;[String]$dataStoreName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "Datastore1"&lt;/P&gt;&lt;P&gt;[String]$templateName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "testxp01"&lt;/P&gt;&lt;P&gt;[String]$folderName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "netapp_rapid_clones"&lt;/P&gt;&lt;P&gt;[String]$customizationName&amp;nbsp;&amp;nbsp; = "test1"&lt;/P&gt;&lt;P&gt;[Array]$cloneNames&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = @("testxp10","testxp11","testxp13","testxp14","testxp15")&lt;/P&gt;&lt;P&gt;[Bool]$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;&amp;nbsp; = $False&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Connect to the VSC using the web services API.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Try{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$connection = `&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Connect-VSC -VSCHostName&amp;nbsp; $vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -PortNumber&amp;nbsp;&amp;nbsp; $portNumber&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Credentials&amp;nbsp; $vscCredentials `&lt;/P&gt;&lt;P&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; -ErrorAction&amp;nbsp; Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Connected to VSC ""$vscHostName"" on Port ""$portNumber"""&lt;/P&gt;&lt;P&gt;}Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed connecting to ""$vscHostName"" on PortNumber ""$portNumber"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Enumerate the managed object reference for the template to clone.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------ &lt;/P&gt;&lt;P&gt;Try{&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$objectType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "Datastore"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$dataStoreMoref = Get-VSCManagedObjectRef -Connection&amp;nbsp;&amp;nbsp; $connection&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -VSCHostName&amp;nbsp; $vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $dataStoreName&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objectType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Credentials&amp;nbsp; $vscCredentials `&lt;/P&gt;&lt;P&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; -ErrorAction&amp;nbsp; Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Enumerated Managed Object Reference for ""$dataStoreName"" as ""$dataStoreMoref"""&lt;/P&gt;&lt;P&gt;}Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed Enumerating Managed Object Reference for ""$dataStoreMoref"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Enumerate the managed object reference for the template to clone.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------ &lt;/P&gt;&lt;P&gt;Try{&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$objectType&amp;nbsp;&amp;nbsp;&amp;nbsp; = "VirtualMachine"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$templateMoref = Get-VSCManagedObjectRef -Connection&amp;nbsp;&amp;nbsp; $connection&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -VSCHostName&amp;nbsp; $vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $templateName&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objectType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Credentials&amp;nbsp; $vscCredentials `&lt;/P&gt;&lt;P&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; -ErrorAction&amp;nbsp; Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Enumerated Managed Object Reference for ""$templateName"" as ""$templateMoref"""&lt;/P&gt;&lt;P&gt;}Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed Enumerating Managed Object Reference for ""$templateName"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Enumerate the managed object reference for the clone destination folder.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Try{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$objectType&amp;nbsp; = "Datacenter"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$targetMoref = Get-VSCManagedObjectRef -Connection&amp;nbsp;&amp;nbsp; $connection&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -VSCHostName&amp;nbsp; $vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $dataCenterName `&lt;/P&gt;&lt;P&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; -Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objectType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Credentials&amp;nbsp; $vscCredentials `&lt;/P&gt;&lt;P&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; -ErrorAction&amp;nbsp; Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Enumerated Managed Object Reference for ""$esxHostName"" as ""$targetMoref"""&lt;/P&gt;&lt;P&gt;}Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed Enumerating Managed Object Reference for ""$esxHostName"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Enumerate the files for the source virtual machine template&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Try{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $files = Get-VSCVMFiles -Connection&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $connection&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -VSCHostName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -VirtualMachineName $templateMoref `&lt;/P&gt;&lt;P&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; -Credentials&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vscCredentials&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -ErrorAction Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Enumerated Virtual Machine Files for template ""$templateName"""&lt;/P&gt;&lt;P&gt;}Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed Enumerating Managed Object Reference for ""$templateName"""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Create a requestspec Object from the NameSpace object&lt;/P&gt;&lt;P&gt;#'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[System.Object]$namespace&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $connection.GetType().Namespace&lt;/P&gt;&lt;P&gt;#'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Enumerate the username and password from the controller credential object.&lt;/P&gt;&lt;P&gt;#'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[String]$domain&amp;nbsp;&amp;nbsp;&amp;nbsp; = $ControllerCredentials.GetNetworkCredential().domain&lt;/P&gt;&lt;P&gt;[String]$user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $ControllerCredentials.GetNetworkCredential().username&lt;/P&gt;&lt;P&gt;[String]$password&amp;nbsp; = $ControllerCredentials.GetNetworkCredential().password&lt;/P&gt;&lt;P&gt;#'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Ensure the username is correct if a local user was specified.&lt;/P&gt;&lt;P&gt;#'---------------------------------------------------------------------------&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;If($domain -ne ""){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$username&amp;nbsp; = "$domain\$user"&lt;/P&gt;&lt;P&gt;}Else{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$username = $user.Split("\")[0]&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Create a controllerSpec Object from the NameSpace object and set properties.&lt;/P&gt;&lt;P&gt;#'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&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;/P&gt;&lt;P&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;/P&gt;&lt;P&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;/P&gt;&lt;P&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;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Set controller IP address (cloning only works via IP even with DNS A &amp;amp; PTR)&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[System.Object]$controllerSpec.ipAddress&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "192.168.100.22" #$controllerHostName&lt;/P&gt;&lt;P&gt;[System.Object]$controllerSpec.passthroughContext = $vFilerHostName&lt;/P&gt;&lt;P&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;/P&gt;&lt;P&gt;#[System.Object]$controllerSpec.port&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&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Set the destination controller and datastore for the files.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------ &lt;/P&gt;&lt;P&gt;ForEach($file In $files){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $file.destDatastoreSpec.controller = $controllerSpec;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Create a cloneSpec Object from the NameSpace object and set properties.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&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;/P&gt;&lt;P&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;/P&gt;&lt;P&gt;[System.Object]$cloneSpec.templateMoref&amp;nbsp; = $templateMoref;&lt;/P&gt;&lt;P&gt;[System.Object]$cloneSpec.containerMoref = $targetMoref;&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Create objects for each clone and set their properties.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[Array]$clones = @()&lt;/P&gt;&lt;P&gt;For($i = 0; $i -le ($cloneNames.Count -1); $i++){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a vmSpec Object from the NameSpace object and set properties.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&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;/P&gt;&lt;P&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;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a cloneSpecEntry Object from the NameSpace object and set properties.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$cloneSpecEntryType = ($namespace + '.cloneSpecEntry')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$cloneSpecEntry&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($cloneSpecEntryType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Create a guestCustomizationSpecType Object from the NameSpace object and set properties.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'See the following VMWare KB before you apply a customization!&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; #'&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://kb.vmware.com/kb/1005593" target="_blank"&gt;http://kb.vmware.com/kb/1005593&lt;/A&gt;&lt;SPAN&gt; (Sysprep files must be the correct version in correct location!)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$guestCustomizationSpecType&amp;nbsp; = ($namespace + '.guestCustomizationSpec')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$guestCustomizationSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object ($guestCustomizationSpecType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [System.Object]$guestCustomizationSpec.Name = $customizationName&lt;/P&gt;&lt;P&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;/P&gt;&lt;P&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;/P&gt;&lt;P&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; = $cloneNames[$i]&lt;/P&gt;&lt;P&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;/P&gt;&lt;P&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;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'Set the destination controller and datastore for the files.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #'------------------------------------------------------------------------------ &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ForEach($file In $files){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file.destDatastoreSpec.controller = $controllerSpec;&lt;/P&gt;&lt;P&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;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Set the properties of the cloneSpec Object.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[System.Object]$cloneSpec.files&amp;nbsp; = $files&lt;/P&gt;&lt;P&gt;[System.Object]$cloneSpec.clones = $clones&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Initiate the Rapid clone task for the Even Numbered Clones.&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Try{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$taskId = Start-VSCClones -Connection $connection&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -VSCHostName $vscHostName&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -CloneSpec $cloneSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `&lt;/P&gt;&lt;P&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; -Credentials $vscCredentials `&lt;/P&gt;&lt;P&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; -ErrorAction Stop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [String]$taskId = $taskId.SubString($taskId.LastIndexOf(" ") + 1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Initiated Rapid clones. VCenter TaskID ""$taskId"""&lt;/P&gt;&lt;P&gt;}Catch{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Failed Initiating rapid clones"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Break;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jun 2025 05:56:47 GMT</pubDate>
      <guid>https://community.netapp.com/t5/VMware-Solutions-Discussions/VSC-Automation/m-p/16259#M1638</guid>
      <dc:creator>mbeattie</dc:creator>
      <dc:date>2025-06-05T05:56:47Z</dc:date>
    </item>
    <item>
      <title>Re: VSC Automation</title>
      <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/VSC-Automation/m-p/16266#M1641</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;Can the above script be modified to perform a Redeploy instead of Create Clones? Have tried to modify this but cannot get it to work. If you could provide an example script on how this can be achieved I 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>Wed, 11 Dec 2013 14:51:24 GMT</pubDate>
      <guid>https://community.netapp.com/t5/VMware-Solutions-Discussions/VSC-Automation/m-p/16266#M1641</guid>
      <dc:creator>SCOTTS2012</dc:creator>
      <dc:date>2013-12-11T14:51:24Z</dc:date>
    </item>
    <item>
      <title>Re: VSC Automation</title>
      <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/VSC-Automation/m-p/16272#M1643</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 understand what you're trying to do based on your post here:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.netapp.com/message/121856" target="_blank"&gt;https://communities.netapp.com/message/121856&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In theory this should be possible as the VSC supports a "RedeployVMs" API method. EG:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[String]$ipAddress&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "192.168.100.19" #also works with FQDN EG: “testvc01.testlab.local”&lt;BR /&gt;[Int]$portNumber&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; = "testlab\administrator"&lt;BR /&gt;$password&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; = Read-Host "Please enter the password for user ""$userName""" -AsSecureString&lt;BR /&gt;$credentials&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = New-Object System.Management.Automation.PSCredential -ArgumentList $userName, $password&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;[String]$uri = "&lt;A href="https://$ipAddress`$portNumber" target="_blank"&gt;https://$ipAddress`:$portNumber/kamino/public/api?wsdl&lt;/A&gt;"&lt;BR /&gt;Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [System.Web.Services.Protocols.SoapHttpClientProtocol]$connection = `&lt;BR /&gt;&amp;nbsp;&amp;nbsp; New-WebServiceProxy -uri $uri -Credential $credentials -ErrorAction Stop&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Write-Host "Connected to VSC on IPAddress ""$ipAddress"" 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;/P&gt;&lt;P&gt;PS C:\&amp;gt; $connection.redeployVMs&lt;/P&gt;&lt;P&gt;MemberType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Method&lt;BR /&gt;OverloadDefinitions : {string redeployVMs(Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServic&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eProxy119_8143_kamino_public_api_wsdl.requestSpec arg0, Microsoft.PowerShell.Commands.NewWebservi&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ceProxy.AutogeneratedTypes.WebServiceProxy119_8143_kamino_public_api_wsdl.controllerSpec[] arg1)}&lt;BR /&gt;TypeNameOfValue&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : System.Management.Automation.PSMethod&lt;BR /&gt;Value&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; : string redeployVMs(Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebService&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Proxy119_8143_kamino_public_api_wsdl.requestSpec arg0, Microsoft.PowerShell.Commands.NewWebservic&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eProxy.AutogeneratedTypes.WebServiceProxy119_8143_kamino_public_api_wsdl.controllerSpec[] arg1)&lt;BR /&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; : redeployVMs&lt;BR /&gt;IsInstance&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : True&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Having issues getting it working in my lab, might take me some time to figure out.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Matt&lt;STRONG style="font-size: 10pt; font-family: Arial;"&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 Dec 2013 00:42:11 GMT</pubDate>
      <guid>https://community.netapp.com/t5/VMware-Solutions-Discussions/VSC-Automation/m-p/16272#M1643</guid>
      <dc:creator>mbeattie</dc:creator>
      <dc:date>2013-12-13T00:42:11Z</dc:date>
    </item>
    <item>
      <title>Re: VSC Automation</title>
      <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/VSC-Automation/m-p/16278#M1645</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;Posted the solution in your origonal thread here:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.netapp.com/message/121856" target="_blank"&gt;https://communities.netapp.com/message/121856&lt;/A&gt;&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, 16 Dec 2013 23:18:01 GMT</pubDate>
      <guid>https://community.netapp.com/t5/VMware-Solutions-Discussions/VSC-Automation/m-p/16278#M1645</guid>
      <dc:creator>mbeattie</dc:creator>
      <dc:date>2013-12-16T23:18:01Z</dc:date>
    </item>
    <item>
      <title>Re: VSC Automation</title>
      <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/VSC-Automation/m-p/16284#M1647</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, I have a list of non contiguous computer names in a text file.&amp;nbsp; They all use the same VM Template.&amp;nbsp; How can i use powershell to take the text file as an argument and use VSC to rapidly provision the machines in the list?&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Jan 2014 22:32:24 GMT</pubDate>
      <guid>https://community.netapp.com/t5/VMware-Solutions-Discussions/VSC-Automation/m-p/16284#M1647</guid>
      <dc:creator>CHANDLERBING02</dc:creator>
      <dc:date>2014-01-23T22:32:24Z</dc:date>
    </item>
    <item>
      <title>Re: VSC Automation</title>
      <link>https://community.netapp.com/t5/VMware-Solutions-Discussions/VSC-Automation/m-p/16290#M1648</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;Use the get-content cmdlet to read the list of hostnames from the text file instead of hardcoding the hostnames in the array. The example below assumes you will save the hostnames.txt file in the same directory as the script.&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;/P&gt;&lt;P&gt;#'Initialization Section&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[String]$scriptPath&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = Split-Path($MyInvocation.MyCommand.Path)&lt;/P&gt;&lt;P&gt;[String]$scriptSpec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $MyInvocation.MyCommand.Definition &lt;/P&gt;&lt;P&gt;[String]$scriptBaseName = (Get-Item $scriptSpec).BaseName&amp;nbsp; &lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#'Read the hostnames from the text file instead of hardcoding them into an array&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[String]$fileSpec&amp;nbsp;&amp;nbsp; = "$scriptPath\hostnames.txt"&lt;/P&gt;&lt;P&gt;#[Array]$cloneNames = @("testxp10","testxp11","testxp13","testxp14","testxp15") &lt;/P&gt;&lt;P&gt;[Array]$cloneNames&amp;nbsp; = Get-Content -Path $fileSpec&lt;/P&gt;&lt;P&gt;#'------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Jan 2014 22:54:55 GMT</pubDate>
      <guid>https://community.netapp.com/t5/VMware-Solutions-Discussions/VSC-Automation/m-p/16290#M1648</guid>
      <dc:creator>mbeattie</dc:creator>
      <dc:date>2014-01-23T22:54:55Z</dc:date>
    </item>
  </channel>
</rss>

