<?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>article Get Unused PortGroups in a Cluster in VMware PowerCLI Documents</title>
    <link>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/ta-p/2785455</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;I've seen many blogs and discussions about this proposite so i put my hands on the problem and generate my own script.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The algortihm is easy to understand.. You get a list of the vPorts used by the Vms and another list from the vPorts of the Cluster. Then i do something just like a procv in Excel and compare both lists, keeping the difference in another list, the unused PortGroup List.&lt;/P&gt;&lt;P&gt;To use, you have to put the Vcenter which you want to connect, choose the Cluster and wait a few seconds, then you have a csv Document in your c:\temp directory. &lt;img class="lia-deferred-image lia-image-emoji" src="https://communities.vmware.com/html/@BDE1C7A967AC45D8A4A4C2AFE83F7C64/emoticons/1f603.png" alt=":grinning_face_with_big_eyes:" title=":grinning_face_with_big_eyes:" /&gt;&lt;/P&gt;&lt;P&gt;Any sugestions i'll be here to update the script. Thanks!&lt;/P&gt;&lt;P&gt;Thanks to &lt;A _jive_internal="true" href="https://communities.vmware.com/people/LucD"&gt;LucD&lt;/A&gt; by inspiring me on it!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now, the output is OK, with no duplicated items. &lt;img class="lia-deferred-image lia-image-emoji" src="https://communities.vmware.com/html/@BDE1C7A967AC45D8A4A4C2AFE83F7C64/emoticons/1f603.png" alt=":grinning_face_with_big_eyes:" title=":grinning_face_with_big_eyes:" /&gt;&lt;/P&gt;&lt;PRE __default_attr="java" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_139542730076383" jivemacro_uid="_139542730076383" modifiedtitle="true"&gt;
&lt;P&gt;Clear&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;$Vcenter = Read-Host "Which Vcenter do you want to connect?"&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;Connect-Viserver -server $VCenter -WarningAction SilentlyContinue&amp;nbsp; &lt;BR /&gt;# Getting Cluster info&amp;nbsp;&amp;nbsp; &lt;BR /&gt;$Cluster = Get-Cluster&amp;nbsp; &lt;BR /&gt;$countCL = 0&amp;nbsp; &lt;BR /&gt;Clear&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;Write-Output "Connected to $VCenter successfully!"&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;Write-Output "Clusters: "&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;foreach($oC in $Cluster){&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Output "[$countCL] $oc"&amp;nbsp; &lt;BR /&gt;$countCL = $countCL+1&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;BR /&gt;$choice = Read-Host "Which Cluster do you want to verify?"&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;Write-Output "Wait a minute..."&amp;nbsp; &lt;BR /&gt;$cluster = get-cluster $cluster[$choice]&amp;nbsp; &lt;BR /&gt;$vms = $cluster| get-vm&lt;BR /&gt;$Data = @()&amp;nbsp; &lt;BR /&gt;foreach ($VM in $VMs){&amp;nbsp; &lt;BR /&gt;$NICs = $VM.NetworkAdapters | select networkName&amp;nbsp; &lt;BR /&gt;foreach ($NIC in $NICs) {&amp;nbsp; &lt;BR /&gt;$into = New-Object PSObject&amp;nbsp; &lt;BR /&gt;Add-Member -InputObject $into -MemberType NoteProperty -Name VMname $VM.Name&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;foreach($n in $NIC){&amp;nbsp; &lt;BR /&gt;Add-Member -InputObject $into -MemberType NoteProperty -Name NetworkName $n.NetworkName }&amp;nbsp; &lt;BR /&gt;$Data += $into&amp;nbsp;&amp;nbsp; &lt;BR /&gt;}&amp;nbsp; &lt;BR /&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;##&amp;nbsp; &lt;BR /&gt;##$Data contains the list of virtual machines/Networkadapters by cluster&amp;nbsp; &lt;BR /&gt;##$ClustervPortsData contains a list of the vPorts by Cluster&amp;nbsp; &lt;BR /&gt;##&amp;nbsp; &lt;BR /&gt;$ClustervPortsData = $cluster |get-vmhost | Get-VirtualPortGroup | select @{n="Cluster";e={$cluster.name}},Name&amp;nbsp; &lt;BR /&gt;##&amp;nbsp; &lt;BR /&gt;##Comparing vPorts used by VMs in that Cluster and the CLuster vPorts, we'll have the vPorts Unused...&amp;nbsp; &lt;BR /&gt;##$Data x $ClustervPortsData&amp;nbsp; &lt;BR /&gt;$a = $data | select NetworkName&amp;nbsp; &lt;BR /&gt;$b = $ClustervPortsData | select Name&amp;nbsp; &lt;BR /&gt;$cont = 0&amp;nbsp; &lt;BR /&gt;$finalData = @()&amp;nbsp; &lt;/P&gt;
&lt;P&gt;foreach($b1 in $b){&amp;nbsp; &lt;BR /&gt;$obj = New-Object PSObject&amp;nbsp; &lt;BR /&gt;foreach($a1 in $a){&amp;nbsp; &lt;BR /&gt;&amp;nbsp; if($b1.Name -eq $a1.NetworkName){&amp;nbsp; &lt;BR /&gt;&amp;nbsp; $cont = $cont+1&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; }elseif($b1.Name -ne $a1.NetworkName){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt; }&amp;nbsp; &lt;BR /&gt; }&amp;nbsp; &lt;BR /&gt; if($cont -eq 0){&lt;BR /&gt; #Add-Member -InputObject $obj -MemberType NoteProperty -Name VPORT $b1.Name &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $obj = $b1.Name&lt;BR /&gt;$finalData += $obj&amp;nbsp; &lt;BR /&gt;}&amp;nbsp; &lt;BR /&gt;$cont = 0&amp;nbsp; &lt;BR /&gt;}&amp;nbsp; &lt;BR /&gt;$rand = Get-Random&amp;nbsp; &lt;BR /&gt;$cluname = $Cluster.name&amp;nbsp; &lt;BR /&gt;$CL = "$cluname$rand"&amp;nbsp; &lt;BR /&gt;$path = "c:\temp\vPortsNotUsed_$Vcenter$CL.csv"&amp;nbsp; &lt;BR /&gt;############################&lt;BR /&gt;##function to remove duplicated items&lt;BR /&gt;Function Remove-DuplicatedItems{&lt;BR /&gt;param ($arraylist)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;$RemoveDup =@()&lt;/P&gt;
&lt;P&gt;$arraylist|%{&lt;BR /&gt;$itemDup = $_&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #compare if the $itemdup already exists in the list&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if($removedup -contains $itemDup){&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; #do nothing&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; #Write-host "$itemdup already exists in the new array"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&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; #add to the new array unduplicated&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; #Write-host "$itemdup do not exists in the new array, adding"&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; $RemoveDup += $itemdup&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $RemoveDup&amp;nbsp; &lt;BR /&gt;}&lt;BR /&gt;############################&lt;/P&gt;
&lt;P&gt;Remove-DuplicatedItems $finaldata | export-csv $path -NoTypeInformation -UseCulture&amp;nbsp; &lt;BR /&gt;clear&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;Write-Output "The File $path was created and it's path was copied to the clipoard. Press any button to exit..."&amp;nbsp; &lt;BR /&gt;Read-Host " "&amp;nbsp; &lt;BR /&gt;$path | clip&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;Write-Output "Disconnecting from Vcenter $Vcenter..."&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;Disconnect-viserver * -Confirm:$false&amp;nbsp; &lt;/P&gt;
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 17 Feb 2014 14:05:26 GMT</pubDate>
    <dc:creator>GuilhermeAlves</dc:creator>
    <dc:date>2014-02-17T14:05:26Z</dc:date>
    <item>
      <title>Get Unused PortGroups in a Cluster</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/ta-p/2785455</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;I've seen many blogs and discussions about this proposite so i put my hands on the problem and generate my own script.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The algortihm is easy to understand.. You get a list of the vPorts used by the Vms and another list from the vPorts of the Cluster. Then i do something just like a procv in Excel and compare both lists, keeping the difference in another list, the unused PortGroup List.&lt;/P&gt;&lt;P&gt;To use, you have to put the Vcenter which you want to connect, choose the Cluster and wait a few seconds, then you have a csv Document in your c:\temp directory. &lt;img class="lia-deferred-image lia-image-emoji" src="https://communities.vmware.com/html/@BDE1C7A967AC45D8A4A4C2AFE83F7C64/emoticons/1f603.png" alt=":grinning_face_with_big_eyes:" title=":grinning_face_with_big_eyes:" /&gt;&lt;/P&gt;&lt;P&gt;Any sugestions i'll be here to update the script. Thanks!&lt;/P&gt;&lt;P&gt;Thanks to &lt;A _jive_internal="true" href="https://communities.vmware.com/people/LucD"&gt;LucD&lt;/A&gt; by inspiring me on it!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now, the output is OK, with no duplicated items. &lt;img class="lia-deferred-image lia-image-emoji" src="https://communities.vmware.com/html/@BDE1C7A967AC45D8A4A4C2AFE83F7C64/emoticons/1f603.png" alt=":grinning_face_with_big_eyes:" title=":grinning_face_with_big_eyes:" /&gt;&lt;/P&gt;&lt;PRE __default_attr="java" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_139542730076383" jivemacro_uid="_139542730076383" modifiedtitle="true"&gt;
&lt;P&gt;Clear&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;$Vcenter = Read-Host "Which Vcenter do you want to connect?"&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;Connect-Viserver -server $VCenter -WarningAction SilentlyContinue&amp;nbsp; &lt;BR /&gt;# Getting Cluster info&amp;nbsp;&amp;nbsp; &lt;BR /&gt;$Cluster = Get-Cluster&amp;nbsp; &lt;BR /&gt;$countCL = 0&amp;nbsp; &lt;BR /&gt;Clear&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;Write-Output "Connected to $VCenter successfully!"&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;Write-Output "Clusters: "&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;foreach($oC in $Cluster){&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Output "[$countCL] $oc"&amp;nbsp; &lt;BR /&gt;$countCL = $countCL+1&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;BR /&gt;$choice = Read-Host "Which Cluster do you want to verify?"&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;Write-Output "Wait a minute..."&amp;nbsp; &lt;BR /&gt;$cluster = get-cluster $cluster[$choice]&amp;nbsp; &lt;BR /&gt;$vms = $cluster| get-vm&lt;BR /&gt;$Data = @()&amp;nbsp; &lt;BR /&gt;foreach ($VM in $VMs){&amp;nbsp; &lt;BR /&gt;$NICs = $VM.NetworkAdapters | select networkName&amp;nbsp; &lt;BR /&gt;foreach ($NIC in $NICs) {&amp;nbsp; &lt;BR /&gt;$into = New-Object PSObject&amp;nbsp; &lt;BR /&gt;Add-Member -InputObject $into -MemberType NoteProperty -Name VMname $VM.Name&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;foreach($n in $NIC){&amp;nbsp; &lt;BR /&gt;Add-Member -InputObject $into -MemberType NoteProperty -Name NetworkName $n.NetworkName }&amp;nbsp; &lt;BR /&gt;$Data += $into&amp;nbsp;&amp;nbsp; &lt;BR /&gt;}&amp;nbsp; &lt;BR /&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;##&amp;nbsp; &lt;BR /&gt;##$Data contains the list of virtual machines/Networkadapters by cluster&amp;nbsp; &lt;BR /&gt;##$ClustervPortsData contains a list of the vPorts by Cluster&amp;nbsp; &lt;BR /&gt;##&amp;nbsp; &lt;BR /&gt;$ClustervPortsData = $cluster |get-vmhost | Get-VirtualPortGroup | select @{n="Cluster";e={$cluster.name}},Name&amp;nbsp; &lt;BR /&gt;##&amp;nbsp; &lt;BR /&gt;##Comparing vPorts used by VMs in that Cluster and the CLuster vPorts, we'll have the vPorts Unused...&amp;nbsp; &lt;BR /&gt;##$Data x $ClustervPortsData&amp;nbsp; &lt;BR /&gt;$a = $data | select NetworkName&amp;nbsp; &lt;BR /&gt;$b = $ClustervPortsData | select Name&amp;nbsp; &lt;BR /&gt;$cont = 0&amp;nbsp; &lt;BR /&gt;$finalData = @()&amp;nbsp; &lt;/P&gt;
&lt;P&gt;foreach($b1 in $b){&amp;nbsp; &lt;BR /&gt;$obj = New-Object PSObject&amp;nbsp; &lt;BR /&gt;foreach($a1 in $a){&amp;nbsp; &lt;BR /&gt;&amp;nbsp; if($b1.Name -eq $a1.NetworkName){&amp;nbsp; &lt;BR /&gt;&amp;nbsp; $cont = $cont+1&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; }elseif($b1.Name -ne $a1.NetworkName){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt; }&amp;nbsp; &lt;BR /&gt; }&amp;nbsp; &lt;BR /&gt; if($cont -eq 0){&lt;BR /&gt; #Add-Member -InputObject $obj -MemberType NoteProperty -Name VPORT $b1.Name &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $obj = $b1.Name&lt;BR /&gt;$finalData += $obj&amp;nbsp; &lt;BR /&gt;}&amp;nbsp; &lt;BR /&gt;$cont = 0&amp;nbsp; &lt;BR /&gt;}&amp;nbsp; &lt;BR /&gt;$rand = Get-Random&amp;nbsp; &lt;BR /&gt;$cluname = $Cluster.name&amp;nbsp; &lt;BR /&gt;$CL = "$cluname$rand"&amp;nbsp; &lt;BR /&gt;$path = "c:\temp\vPortsNotUsed_$Vcenter$CL.csv"&amp;nbsp; &lt;BR /&gt;############################&lt;BR /&gt;##function to remove duplicated items&lt;BR /&gt;Function Remove-DuplicatedItems{&lt;BR /&gt;param ($arraylist)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;$RemoveDup =@()&lt;/P&gt;
&lt;P&gt;$arraylist|%{&lt;BR /&gt;$itemDup = $_&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #compare if the $itemdup already exists in the list&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if($removedup -contains $itemDup){&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; #do nothing&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; #Write-host "$itemdup already exists in the new array"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&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; #add to the new array unduplicated&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; #Write-host "$itemdup do not exists in the new array, adding"&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; $RemoveDup += $itemdup&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $RemoveDup&amp;nbsp; &lt;BR /&gt;}&lt;BR /&gt;############################&lt;/P&gt;
&lt;P&gt;Remove-DuplicatedItems $finaldata | export-csv $path -NoTypeInformation -UseCulture&amp;nbsp; &lt;BR /&gt;clear&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;Write-Output "The File $path was created and it's path was copied to the clipoard. Press any button to exit..."&amp;nbsp; &lt;BR /&gt;Read-Host " "&amp;nbsp; &lt;BR /&gt;$path | clip&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;Write-Output "Disconnecting from Vcenter $Vcenter..."&amp;nbsp; &lt;BR /&gt;Write-Output " "&amp;nbsp; &lt;BR /&gt;Disconnect-viserver * -Confirm:$false&amp;nbsp; &lt;/P&gt;
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Feb 2014 14:05:26 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/ta-p/2785455</guid>
      <dc:creator>GuilhermeAlves</dc:creator>
      <dc:date>2014-02-17T14:05:26Z</dc:date>
    </item>
    <item>
      <title>Re: Get Unused PortGroups in a Cluster</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/tac-p/2785456#M173</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Nice script, thanks for sharing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'll check why the script in my blog post didn't return the same results.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Feb 2014 14:57:09 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/tac-p/2785456#M173</guid>
      <dc:creator>LucD</dc:creator>
      <dc:date>2014-02-17T14:57:09Z</dc:date>
    </item>
    <item>
      <title>Re: Get Unused PortGroups in a Cluster</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/tac-p/2785457#M174</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Luc. I was trying to use the Export-Xls too for other script and it were changing the columns order... then i've used Export-Csv $path -NoTypeInformation -UseCulture.&lt;/P&gt;&lt;P&gt;I know this is a problem related to the powershell v3 like you mentioned in your blog, but i'm getting the problem with a powershel v1...:smileyconfused: weird..&lt;/P&gt;&lt;P&gt;--------------------------------------------------------&lt;/P&gt;&lt;P&gt;Refreshing:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://communities.vmware.com/people/LucD"&gt;LucD&lt;/A&gt;, both scripts i mentioned here are OK. I was having problem to run your Unused-PortGroups script because of my computer. I ran from another and took just fine!&lt;/P&gt;&lt;P&gt;The expor-xls now becomes Export-xlsx and everything is better than ever. Thank you for both!&lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.vmware.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By the way, i'll refresh this script as soon as possible 'cause the results are being returned in duplicity and showing "Vmkernel Vm" and "Management Network" as Portgroups.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Feb 2014 16:47:01 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/tac-p/2785457#M174</guid>
      <dc:creator>GuilhermeAlves</dc:creator>
      <dc:date>2014-02-17T16:47:01Z</dc:date>
    </item>
    <item>
      <title>Re: Get Unused PortGroups in a Cluster</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/tac-p/2785458#M175</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Great work, a really helpful script&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As for the duplicity, the output is a portgroup per host in the cluster, (ie: 2 hosts = 2 entries, 4 hosts = 4 entries)&lt;/P&gt;&lt;P&gt;I suppose because $ClustervPortsData = $cluster |get-vmhost | Get-VirtualPortGroup | select @{n="Cluster";e={$cluster.name}},Name returns an entry per host...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Even so it doesn't return entries if the pg is used by one vm on only one host in the cluster&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using the remove duplicates function in the data tab of excel it's easy to remove these&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Feb 2014 16:19:45 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/tac-p/2785458#M175</guid>
      <dc:creator>roconnor</dc:creator>
      <dc:date>2014-02-25T16:19:45Z</dc:date>
    </item>
    <item>
      <title>Re: Get Unused PortGroups in a Cluster</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/tac-p/2785459#M176</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri','sans-serif';"&gt;Here’s my contribution... for a mass delete of portgroups on virtual standard switch&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri','sans-serif';"&gt;first a script (heavily plagiarized from Guilherme) which double checks that no ports are in use&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri','sans-serif';"&gt;It feeds from a txt file, C:\vSpherePowerCLI\input\unusedportgroups.txt&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri','sans-serif';"&gt;Note: be careful there is no whitespace, additional lines at the end of the txt..&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri','sans-serif';"&gt;After that is the delete portgroups, a bit crude, and slow, but we have cleaned up 400+ port groups so far&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri','sans-serif';"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Its taking around 120 seconds for a 7 node cluster, so several hours if you are removing 100s of unused portgroups&lt;/P&gt;&lt;P&gt;checkUnusedPortGroupsInCluster&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri','sans-serif';"&gt;----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;## Double check the imput of C:\vSpherePowerCLI\input\unusedportgroups.txt before deleting mas&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Enter location&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Clear&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;# Getting Cluster info&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$Cluster = Get-Cluster&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$countCL = 0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Clear&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Write-Output " "&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Write-Output "Clusters: "&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Write-Output " "&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;foreach($oC in $Cluster)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Write-Output "[$countCL] $oc"&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$countCL = $countCL+1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$choice = Read-Host "Which Cluster do you want to verify?"&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Write-Output " "&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Write-Output "Wait a minute..."&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$cluster = get-cluster $cluster[$choice]&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # list the vms in the cluster, create the placeholder variable @Data&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$vms = $cluster| get-vm&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$Data = @()&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;foreach ($VM in $VMs){&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$NICs = $VM.NetworkAdapters | select networkName&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;foreach ($NIC in $NICs) {&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$into = New-Object PSObject&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Add-Member -InputObject $into -MemberType NoteProperty -Name VMname $VM.Name&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;foreach($n in $NIC){&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Add-Member -InputObject $into -MemberType NoteProperty -Name NetworkName $n.NetworkName }&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$Data += $into&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;##$Data contains the list of virtual machines/Networkadapters by cluster&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;##$ClustervPortsData contains a list of the vPorts input from txt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$ClustervPortsData = Get-Content "C:\vSpherePowerCLI\input\unusedportgroups.txt"&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;##Comparing vPorts used by VMs in that Cluster and the CLuster vPorts, we'll have the vPorts Unused...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;##$Data compared to $ClustervPortsData&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$vmpg = $data | select NetworkName&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$esxpg = $ClustervPortsData&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$cont = 0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;$finalData = @()&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;foreach($esxpg1 in $esxpg)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $obj = New-Object PSObject&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## here the vm portgroup is compared with the esx portgroup, if it is in use then $cont is incremented&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach($vmpg1 in $vmpg)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if($esxpg1 -ne $vmpg1.NetworkName)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $cont = $cont+1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if($esxpg1 -eq $vmpg1.NetworkName)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "ERROR: Virtual Machine:"&amp;nbsp; "Adapter:" ""$esxpg1"" "connected" -foregroundcolor red&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Press any key to continue ..."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if($cont -eq 0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "ok ..."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $cont = 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;clear&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Write-Output "Finished"&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri','sans-serif';"&gt;----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri','sans-serif';"&gt;deleteMultipleUnusedPortGroupsInCluster&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri','sans-serif';"&gt;----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;## Delete multiple unused portgroups from cluster&lt;/P&gt;&lt;P&gt;## Only use after adding the portgroups from GetUnusedPortGroupsInCluster.ps1&lt;/P&gt;&lt;P&gt;## Double check with CheckUnusedPortGroupsInCluster.ps1&lt;/P&gt;&lt;P&gt;# set foreground color to yellow&lt;/P&gt;&lt;P&gt;[console]::ForegroundColor = "yellow"&lt;/P&gt;&lt;P&gt;Write-Output " "&lt;/P&gt;&lt;P&gt;Write-Output "This script will delete multiple portgroups "&lt;/P&gt;&lt;P&gt;Write-Output "add the portgroup names to C:\vSpherePowerCLI\input\unusedportgroups.txt "&lt;/P&gt;&lt;P&gt;Write-Output " "&lt;/P&gt;&lt;P&gt;Write-Host "Press any key to continue ..."&lt;/P&gt;&lt;P&gt;$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")&lt;/P&gt;&lt;P&gt;Clear&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;# Getting Cluster info&lt;/P&gt;&lt;P&gt;$Cluster = Get-Cluster&lt;/P&gt;&lt;P&gt;$countCL = 0&lt;/P&gt;&lt;P&gt;Clear&lt;/P&gt;&lt;P&gt;Write-Output " "&lt;/P&gt;&lt;P&gt;Write-Output "Clusters: "&lt;/P&gt;&lt;P&gt;Write-Output " "&lt;/P&gt;&lt;P&gt;foreach($oC in $Cluster){&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;Write-Output "[$countCL] $oc"&lt;/P&gt;&lt;P&gt;$countCL = $countCL+1&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;$choice = Read-Host "Which Cluster do you want to delete the portgroups on?"&lt;/P&gt;&lt;P&gt;Write-Output " "&lt;/P&gt;&lt;P&gt;Write-Output "This is going to take a while..."&lt;/P&gt;&lt;P&gt;$cluster = get-cluster $cluster[$choice]&lt;/P&gt;&lt;P&gt;# manually enter the location where you want to remove the portgroup&lt;/P&gt;&lt;P&gt;#$Location = Read-Host "Enter location; cluster or datacenter"&lt;/P&gt;&lt;P&gt;# reset the colors back to default&lt;/P&gt;&lt;P&gt;[console]::ResetColor()&lt;/P&gt;&lt;P&gt;# Set system variable to ignore error messages&lt;/P&gt;&lt;P&gt;$ErrorActionPreference= 'silentlycontinue'&lt;/P&gt;&lt;P&gt;### Input from txt the portgroup name you want to remove&lt;/P&gt;&lt;P&gt;$OldPortGroupNames = Get-Content "C:\vSpherePowerCLI\input\unusedportgroups.txt"&lt;/P&gt;&lt;P&gt;foreach ($OldPortGroupName In $OldPortGroupNames)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;foreach ($esx in get-VMhost -Location $cluster | sort Name)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;Get-VMhost $esx | Get-VirtualPortGroup&amp;nbsp; -name "$OldPortGroupName" | Remove-VirtualPortGroup&amp;nbsp; -Confirm:$false&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Feb 2014 17:02:01 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/tac-p/2785459#M176</guid>
      <dc:creator>roconnor</dc:creator>
      <dc:date>2014-02-28T17:02:01Z</dc:date>
    </item>
    <item>
      <title>Re: Get Unused PortGroups in a Cluster</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/tac-p/2785460#M177</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Very Nice!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #545454; font-family: arial, sans-serif; font-size: small;"&gt;"One is &lt;/SPAN&gt;&lt;SPAN style="color: #545454; font-family: arial, sans-serif; font-size: small;"&gt;glad&lt;/SPAN&gt;&lt;SPAN style="color: #545454; font-family: arial, sans-serif; font-size: small;"&gt; to be of service" &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.vmware.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Mar 2014 13:55:10 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/tac-p/2785460#M177</guid>
      <dc:creator>GuilhermeAlves</dc:creator>
      <dc:date>2014-03-21T13:55:10Z</dc:date>
    </item>
    <item>
      <title>Re: Get Unused PortGroups in a Cluster</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/tac-p/2785461#M178</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Now you can join both scripts &lt;A _jive_internal="true" href="https://communities.vmware.com/people/roconnor"&gt;roconnor&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Mar 2014 18:45:20 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Documents/Get-Unused-PortGroups-in-a-Cluster/tac-p/2785461#M178</guid>
      <dc:creator>GuilhermeAlves</dc:creator>
      <dc:date>2014-03-21T18:45:20Z</dc:date>
    </item>
  </channel>
</rss>

