PowerCLI

 View Only
Expand all | Collapse all

Need active & standby uplink details of standard & distributed switches/portgroups

  • 1.  Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 17, 2024 02:26 AM

    I'm using this code to get the Standard & Distributed switch active & standby uplinks, however I only get the active/standby uplink names for the Standard switches and not the dvSwitches:

    Standard switch results:

    "ESX","vSwitch","vSwitch Active NIC","vSwitch Standby NIC","vSwitch Unused NIC","Portgroup","PortGroup VLAN","Device","IP","PortGroup Active NIC","PortGroup StandBy NIC","PortGroup Unused NIC"
    "MyHost01","vSwitch0","vmnic0","vmnic6",,"Management Network","100","vmk0","172.2.12.3","vmnic0,vmnic6","",""

    dvSwitch results:

    "ESX","vSwitch","vSwitch Active NIC","vSwitch Standby NIC","vSwitch Unused NIC","Portgroup","PortGroup VLAN","Device","IP","PortGroup Active NIC","PortGroup StandBy NIC","PortGroup Unused NIC"
    "MyHost01","dvSwitch-MGT-01",,,,"mgmt_100",,"","","","",""
    

    I have the following setup:

    vCenter Name: VC01 (Build 22837322)
    Host Name: MyHost01
    Standard Switch set to vmnic0=Active, vmnic6=Standby (vLAN100 thus using the same uplinks)
    dvSwitch port group 100 shows dvUplink2=Active, dvUplink1=Standby.

    Why does the code not show the vLAN uplink active & standby values for each portgroup in the dvSwitch?

    Code:

    Original code form here:

    http://www.underthefleece.co.uk/2015/06/powercli-generating-network.html



  • 2.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 17, 2024 03:09 AM

    Didn't you ask a similar question 2 years ago in Export PortGroup uplink details

    It looks like the code I provided then was not migrated along with the VMTN migration 



    ------------------------------


    Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference


    ------------------------------



  • 3.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 17, 2024 03:30 AM

    That was to get the uplink details for each host. Code is:

    Write-Host "Script Starting" -ForegroundColor Green
    $report = @()
    foreach($sw in (Get-VirtualSwitch -Distributed)){
        $uuid = $sw.ExtensionData.Summary.Uuid
        $sw.ExtensionData.Config.Host | %{
            $esx = Get-View $_.Config.Host
            $netSys = Get-View $esx.ConfigManager.NetworkSystem
            $netSys.NetworkConfig.ProxySwitch | where {$_.Uuid -eq $uuid} | %{
                $_.Spec.Backing.PnicSpec | %{
                    $row = "" | Select Host,dvSwitch,PNic
                    $row.Host = $esx.Name
                    $row.dvSwitch = $sw.Name
                    $row.PNic = $_.PnicDevice
                    $report += $row            }
            }
        }
    }
    $report
      
    Write-Host "Script Ended" -ForegroundColor Green

    The output is this:

    Host                                        dvSwitch          PNic
    ----                                        --------          ----
    MyHost01                             dvSwitch-01   vmnic6
    MyHost01                             dvSwitch-01   vmnic8

    I'm now expanding to getting the active & standby uplinks of Standard switches AND dvSwitches via their port groups thus the different code.




  • 4.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 17, 2024 08:32 AM
    Edited by LucD Jun 20, 2024 05:28 AM

    Is this reporting everything you want to see?

    Get-VirtualSwitch -PipelineVariable switch |
    Get-VirtualPortGroup -PipelineVariable pg |
    ForEach-Object -Process {
        $obj = New-Object -TypeName PSObject -Property ([ordered]@{
                VMHost = ''
                Switch = $switch.Name
                Portgroup = $pg.Name
                ActivepNIC = ''
                StandbypNIC = ''
            })
        if ($pg -is [VMware.VimAutomation.ViCore.Impl.V1.Host.Networking.VirtualPortGroupImpl]) {
            $obj.VMHost = (Get-View $pg.VMHostId).Name
            $obj.ActivepNIC = $pg.ExtensionData.Spec.Policy.NicTeaming.NicOrder.ActiveNic -join '|'
            $obj.StandbypNIC = $pg.ExtensionData.Spec.Policy.NicTeaming.NicOrder.StandbyNic -join '|'
            $obj
        } elseif ($pg -is [VMware.VimAutomation.ViCore.Impl.V1.Host.Networking.DistributedPortGroupImpl]) {
            if ($pg.ExtensionData.Host) {
                $ports = Get-VDPort -VDSwitch $switch.Name -ActiveOnly
                Get-View -Id $pg.ExtensionData.Host -PipelineVariable esx |
                ForEach-Object -Process {
                    $esxObj = $obj.PSObject.Copy()
                    $esxObj.VMHost = $esx.Name
                    $esxObj.ActivepNIC = ($ports | Where-Object { $_.ProxyHost.Name -eq $esx.Name -and
                            $_.Name -in $pg.extensionData.Config.DefaultPortConfig.UplinkTeamingPolicy.UplinkPortOrder.ActiveUplinkPort }).ConnectedEntity -join '|'
                    $esxObj.StandbypNIC = ($ports | Where-Object { $_.ProxyHost.Name -eq $esx.Name -and
                            $_.Name -in $pg.extensionData.Config.DefaultPortConfig.UplinkTeamingPolicy.UplinkPortOrder.StandbyUplinkPort }).ConnectedEntity -join '|'
                    $esxObj
                }
            }
        }
    }



    ------------------------------


    Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference


    ------------------------------



  • 5.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 20, 2024 01:43 AM

    I don't understand the output of your script- there's a lot pf duplication of results?




  • 6.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 20, 2024 03:17 AM

    Not sure what you mean, but the output is per ESXi node, and each ESXi node has the same numbering for vNICs (vmnic01, vmnic02, ...)



    ------------------------------


    Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference


    ------------------------------



  • 7.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 20, 2024 05:05 AM

    The output looks like this:

    VMHost      : MyHost15.MyDomain.Com
    Switch      : dvSwitch-MySwitch
    Portgroup   : dvSwitch-My-DVUplinks-47
    ActivepNIC  : vmk5|vmk3|vmk6|Network adapter 1|Network adapter 1|Network adapter 1
    StandbypNIC : vmk5|vmk3|vmk6|Network adapter 1|Network adapter 1|Network adapter 1

    Not sure how you can have the same connections as active AND standby?

    What I'd like to see is this:

    Switch01 (standard & dv)

    Host01

    vLAN01 Name & ID

    which uplink the vLAN has active, standby and unused

    vLAN02 Name & ID

    which uplink the vLAN has active, standby and unused

    Host02

    vLAN01 Name & ID

    which uplink the vLAN has active, standby and unused

    vLAN02 Name & ID

    which uplink the vLAN has active, standby and unused

    Switch02 (standard & dv)

    ....




  • 8.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 20, 2024 05:32 AM

    There was an error in the 

    $esxObj.VMHost
    line for a VDS. I corrected the code above.

    Is that a VDS with only one ESXi node connected?
    Can you show what Get-VDPort returns for that VDS?

    Are you sure the 2nd condition (after the -and) is taken correctly?
    It shouldn't be showing VMKernel or VM Network Adapters in the output.


    ------------------------------


    Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference


    ------------------------------



  • 9.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 20, 2024 05:54 AM

    The vDS has multiple hosts attached to it. Output of the Get-DVPort shows the following (removed confidential data) result:

    Key	Name	ConnectedEntity	Portgroup	IsLinkUp	MacAddress	Vlan	Switch
    ---	----	---------------	---------	--------	----------	----	------
    28		vmk3	Site03_vMotion_103	TRUE	00:50:56:6c:e1:01		dvSwitch-MySwitch
    29		vmk1	Site03_vMotion_103	TRUE	00:50:56:65:11:e5		dvSwitch-MySwitch
    30		vmk1	Site03_vMotion_103	TRUE	00:50:56:65:f7:26		dvSwitch-MySwitch
    31			Site03_vMotion_103				dvSwitch-MySwitch
    32			Site03_vMotion_103				dvSwitch-MySwitch
    33			Site03_vMotion_103				dvSwitch-MySwitch
    34			Site03_vMotion_103				dvSwitch-MySwitch
    35			Site03_vMotion_103				dvSwitch-MySwitch
    36			Site03_vMotion_103				dvSwitch-MySwitch
    37			Site03_vMotion_103				dvSwitch-MySwitch
    38			Site03_vMotion_103				dvSwitch-MySwitch
    39			Site03_vMotion_103				dvSwitch-MySwitch
    40			Site03_vMotion_103				dvSwitch-MySwitch
    142		vmk3	Site03_vMotion_103	TRUE	00:50:56:67:b6:cc		dvSwitch-MySwitch
    404		Network adapter 1	Site03_Mgmt_100	TRUE	00:50:56:c0:11:21		dvSwitch-MySwitch
    405		Network adapter 1	Site03_Mgmt_100	TRUE	00:50:56:c0:bf:c5		dvSwitch-MySwitch
    406			Site03_Mgmt_100				dvSwitch-MySwitch
    407		Network adapter 1	Site03_Mgmt_100	TRUE	00:50:56:c0:c5:b1		dvSwitch-MySwitch
    408		Network adapter 1	Site03_Mgmt_100	TRUE	00:50:56:c0:cb:54		dvSwitch-MySwitch
    409			Site03_Mgmt_100				dvSwitch-MySwitch
    410			Site03_Mgmt_100				dvSwitch-MySwitch
    411			Site03_Mgmt_100				dvSwitch-MySwitch
    412			Site03_Mgmt_100				dvSwitch-MySwitch
    413			Site03_Mgmt_100				dvSwitch-MySwitch
    414			Site03_Mgmt_100				dvSwitch-MySwitch
    415			Site03_Mgmt_100				dvSwitch-MySwitch
    416			Site03_Mgmt_100				dvSwitch-MySwitch
    417			Site03_Mgmt_100				dvSwitch-MySwitch
    418			Site03_Mgmt_100				dvSwitch-MySwitch
    419			Site03_Mgmt_100				dvSwitch-MySwitch
    420			Site03_Mgmt_100				dvSwitch-MySwitch
    421			Site03_Mgmt_100				dvSwitch-MySwitch
    422			Site03_Mgmt_100				dvSwitch-MySwitch
    423			Site03_Mgmt_100				dvSwitch-MySwitch
    424			Site03_Mgmt_100				dvSwitch-MySwitch
    425			Site03_Mgmt_100				dvSwitch-MySwitch
    426			Site03_Mgmt_100				dvSwitch-MySwitch
    1574	dvUplink1	vmnic1	dvSwitch-Site03-DVUp...	TRUE	00:00:00:00:00:00		dvSwitch-MySwitch
    1575	dvUplink2	vmnic6	dvSwitch-Site03-DVUp...	TRUE	00:00:00:00:00:00		dvSwitch-MySwitch
    1576	dvUplink3		dvSwitch-Site03-DVUp...				dvSwitch-MySwitch
    1577	dvUplink4		dvSwitch-Site03-DVUp...				dvSwitch-MySwitch
    




  • 10.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 20, 2024 06:28 AM

    That looks like what I expected.
    But it should only show those last 4 ports, provided the ProxyHost corresponds with the ESXi node.

    Can you check what is listed as Active and Standby for that VDS?

    $pg = Get-VDSwitch -Name 'dvSwitch-MySwitch' | Get-VDPortgroup -Name 'dvSwitch-My-DVUplinks-47'
    
    Write-Host 'Active'
    $pg.extensionData.Config.DefaultPortConfig.UplinkTeamingPolicy.UplinkPortOrder.ActiveUplinkPort
    Write-Host 'Standby'
    $pg.extensionData.Config.DefaultPortConfig.UplinkTeamingPolicy.UplinkPortOrder.StandbyUplinkPort


    ------------------------------


    Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference


    ------------------------------



  • 11.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 20, 2024 08:20 PM

    I just get this:

    Active
    Standby

    And I think this is correct because uplinks in the dvSwitch do not have active & standby ports, at least not in vSphere 7.0u3p. They are just representations for the physical connections between the host and the upstream switch and are not teamed. My belief is that the individual port groups are the ones which can be "pinned" to uplinks and this seems to be the case when viewing the properties of the UPLINKS and the port groups.

    The Teaming and failover of a port group is represented by:

    dvUplink1, dvUplink2, dvUplink3 & dvUplink4

    The actual uplink is based on the host as to which vmnic is being used as the uplink for that dvSwitch. This is why I suggested we change the way we look at this and use this format instead:

    Switch01 (standard & dv)
    
    Host01
    vLAN01 Name & ID
    which uplink the vLAN has active, standby and unused
    
    vLAN02 Name & ID
    which uplink the vLAN has active, standby and unused
    
    Host02
    vLAN01 Name & ID
    which uplink the vLAN has active, standby and unused
    vLAN02 Name & ID
    which uplink the vLAN has active, standby and unused
    
    Switch02 (standard & dv)
    
    ....

    My eventual goal is to have a CSV file in this format:

    Switch Name, Host Name, vLAN Name, vLAN ID, Active uplink (vmnic#), Standby uplink (vmnic#), Unused uplink (vmnic#)




  • 12.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 21, 2024 05:55 AM

    Since I don't have that older vSphere version running anymore, I can't verify your claim that "... dvSwitch do not have active & standby ports" I'm afraid.
    But I don't think that is correct.

    You can check via the Web client to verify that there are Teaming options on a VDS and its Portgroups.

    The reasons that no Active or Standby ports are shown, could be twofold.

    • No Teaming was defined
    • The Teaming is defined on the VDS and not on the portgroup

     



    ------------------------------


    Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference


    ------------------------------



  • 13.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 23, 2024 11:09 PM
    Edited by JDMils_Interact Jun 23, 2024 11:30 PM

    From the vCenter GUI, dvSwitch uplink settings do not show teaming:

    dvSwitch Uplink Settings
    Port Group uplink settings:
    PortGroup Uplink Settings
    As you can see, the distributed switch only defines which uplink on each host are used for the dvSwitch.
    The Portgroup is then teamed across the uplinks defined in the dv switch for each host.
    The Standard switch on the hosts is different. The switch itself has Teaming and Failover settings which can be user defined. 
    Standard Switch teaming
    Standard Switch PortGroup teaming:
    Standard Switch Portgroup Teaming




  • 14.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 23, 2024 11:41 PM

    The original code here: http://www.underthefleece.co.uk/2015/06/powercli-generating-network.html, works well on Standard switches but on dvSwitches the nic usage is blank.




  • 15.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 24, 2024 02:56 AM

    I got the following code to work somewhat. It cycles through all hosts and from the standard & distributed switches on each host, it derives the uplinks used by each port group. The only problem I have now is that for the distributed switches, the Active & Standby links for each port group shows as dvUplink1, dvUplink2, etc and I need to convert these to the actual physical vmnics used by each host.

    The code:

    
    
    
    
    #
    # ===========================================================
    # Function Start
    # ===========================================================
    #
    Function GetDVSwitchDetails
        {
        param(
            [Object]$ESXiHost,
            [Object]$oSwitchObject
            )
        
        $PG = get-virtualportgroup -VMHost $esxihost -VirtualSwitch $oSwitchObjects -Distributed
        $tmpAllPortGroups = @()
        ForEach ($ESXiPG in $PG)
            {
            $Item = New-Object PSObject
            Write-Host "+-------------------------------------------------------------------------------------+"
            Write-Host "PortGroup Name: $($ESXiPG.Name)"
            Write-Host "PortGroup Key: $($ESXiPG.Key)"
           
            Write-Host "Is Uplink: $($ESXiPG.ExtensionData.Config.UpLink)"
            Write-Host "vLAN: $($ESXiPG.extensionData.Config.DefaultPortConfig.VLAN.VLANID)"
            Write-Host "Active Uplinks: $($ESXiPG.extensionData.Config.DefaultPortConfig.UplinkTeamingPolicy.UplinkPortOrder.ActiveUplinkPort )"
            Write-Host "Standby Uplinks: $($ESXiPG.extensionData.Config.DefaultPortConfig.UplinkTeamingPolicy.UplinkPortOrder.StandbyUplinkPort )"
            Write-Host "+-------------------------------------------------------------------------------------+"
            Write-Host ""
            $Item | Add-Member -type NoteProperty -Name "Switch Name" -Value  $($oSwitchObject.Name)
            $Item | Add-Member -type NoteProperty -Name "Switch Type" -Value "Distributed"
            $Item | Add-Member -type NoteProperty -Name "Host Name" -Value  $($ESXiHost.Name)
            $Item | Add-Member -type NoteProperty -Name "PortGroup Name" -Value  $($ESXiPG.Name)
            $Item | Add-Member -type NoteProperty -Name "PortGroup Key" -Value   $($ESXiPG.Key)
            $Item | Add-Member -type NoteProperty -Name "Is Uplink" -Value       $($ESXiPG.ExtensionData.Config.UpLink)
            $Item | Add-Member -type NoteProperty -Name "vLAN" -Value            $($ESXiPG.extensionData.Config.DefaultPortConfig.VLAN.VLANID)
            $Item | Add-Member -type NoteProperty -Name "Active Uplinks" -Value  $($ESXiPG.extensionData.Config.DefaultPortConfig.UplinkTeamingPolicy.UplinkPortOrder.ActiveUplinkPort -join ", ")
            $Item | Add-Member -type NoteProperty -Name "Standby Uplinks" -Value $($ESXiPG.extensionData.Config.DefaultPortConfig.UplinkTeamingPolicy.UplinkPortOrder.StandbyUplinkPort -join ", ")
            $tmpAllPortGroups += $Item
            }
        Return $tmpAllPortGroups
        }
    
    Function GetSTDSwitchDetails
        {
        param(
            [Object]$ESXiHost,
            [Object]$oSwitchObject
            )
    
        $PG = get-virtualportgroup -VMHost $esxihost -VirtualSwitch $oSwitchObjects -Standard
        $tmpAllPortGroups = @()
        ForEach ($ESXiPG in $PG)
            {
            $Item = New-Object PSObject
            Write-Host "+-------------------------------------------------------------------------------------+"
            Write-Host "PortGroup Name: $($ESXiPG.Name)"
            Write-Host "PortGroup Key: $($ESXiPG.Key)"
           
            Write-Host "Is Uplink: NA"
            Write-Host "vLAN: $($ESXiPG.VLANID)"
            Write-Host "Active Uplinks: $($ESXiPG.extensionData.Spec.Policy.NICTeaming.NICOrder.ActiveNIC )"
            Write-Host "Standby Uplinks: $($ESXiPG.extensionData.Spec.Policy.NICTeaming.NICOrder.StandbyNIC )"
            Write-Host "+-------------------------------------------------------------------------------------+"
            Write-Host ""
            $Item | Add-Member -type NoteProperty -Name "Switch Name" -Value  $($oSwitchObject.Name)
            $Item | Add-Member -type NoteProperty -Name "Switch Type" -Value "Standard"
            $Item | Add-Member -type NoteProperty -Name "Host Name" -Value  $($ESXiHost.Name)
            $Item | Add-Member -type NoteProperty -Name "PortGroup Name" -Value  $($ESXiPG.Name)
            $Item | Add-Member -type NoteProperty -Name "PortGroup Key" -Value   $($ESXiPG.Key)
            $Item | Add-Member -type NoteProperty -Name "Is Uplink" -Value       "NA"
            $Item | Add-Member -type NoteProperty -Name "vLAN" -Value            $($ESXiPG.VLANID)
            $Item | Add-Member -type NoteProperty -Name "Active Uplinks" -Value  $($ESXiPG.extensionData.Spec.Policy.NICTeaming.NICOrder.ActiveNIC -join ", ")
            $Item | Add-Member -type NoteProperty -Name "Standby Uplinks" -Value $($ESXiPG.extensionData.Spec.Policy.NICTeaming.NICOrder.StandbyNIC -join ", ")
            $tmpAllPortGroups += $Item        
            }
        Return $tmpAllPortGroups
        }
    #
    # ===========================================================
    # Function End
    # ===========================================================
    #
    #
    # ===========================================================
    # Code Start
    # ===========================================================
    #
    #
    # Check if connected to vCenter server.
    #
    Write-Host "Script Starting." -ForegroundColor Green
    Try
        {
        $ConnectionvCenter = $global:DefaultVIServers
        if ($ConnectionvCenter.Count -gt 0)
            # Connection exists.
            {
            Write-Host "Already connected to vCenter server '$($ConnectionvCenter.name)'. Continuing..." -foregroundcolor "Green"
            }
        Else
            {
            # No connection to vCenter.
            Write-Host "ERROR: Not connected to any vCenter servers. Try the command:" -ForegroundColor "Red"
            Write-Host "     Connect-ViServer <vCenterServerName>" -ForegroundColor "White"
            Write-Host "Stopping script." -ForegroundColor "Red"
            Write-Host ""
            Throw "Not connected to vCenter server."
            }
        }
     
    # Ideally this would be in a Try..Catch block:
    
    Catch
        {
        Exit
        }
    
    $AllPortGroups = @()
    foreach($esx in Get-VMHost)
        {
        Write-Host "Host Name: $($esx.name):"
        $oSwitchObjects = Get-VirtualSwitch -VMHost $esx -Standard
    
        ForEach($oSwitchObject in $oSwitchObjects)
            {
            Write-Host "Switch: $($oSwitchObject.Name):"
            $AllPortGroups += GetSTDSwitchDetails -ESXiHost $esx -oSwitchObject $oSwitchObject
            }
        
        $oSwitchObjects = Get-VirtualSwitch -VMHost $esx -Distributed
        ForEach($oSwitchObject in $oSwitchObjects)
            {
            Write-Host "Switch: $($oSwitchObject.Name):"
            $AllPortGroups += GetDVSwitchDetails -ESXiHost $esx -oSwitchObject $oSwitchObject
            }
        }
    
    # This script will create a filename with the vCenter server name & date/time serial as part of the name:
    
    $CurrPath = (Get-Location).path
    $DateTimeSerial = Get-Date -Format "yyyy-MM-dd_HH_mm_ss"
    $Filename = "$CurrPath\$($ConnectionvCenter.Name)_SwithAndPortGroups_$($DateTimeSerial).csv"
    Write-Host "Exporting results to log file: [$Filename]" -ForegroundColor Yellow
    $AllPortGroups | Export-CSV -Path $Filename -NoTypeInformation -UseCulture
    Write-Host "Script Stopping." -ForegroundColor Green

    Here's what the output looks like:

    Uplink Report



  • 16.  RE: Need active & standby uplink details of standard & distributed switches/portgroups

    Posted Jun 24, 2024 04:00 AM

    That is exactly what I'm doing in my snippet with these lines.
    But I still don't understand why you get these strange results, for me that snippet is working.

                    $esxObj.ActivepNIC = ($ports | Where-Object { $_.ProxyHost.Name -eq $esx.Name -and
                            $_.Name -in $pg.extensionData.Config.DefaultPortConfig.UplinkTeamingPolicy.UplinkPortOrder.ActiveUplinkPort }).ConnectedEntity -join '|'
                    $esxObj.StandbypNIC = ($ports | Where-Object { $_.ProxyHost.Name -eq $esx.Name -and
                            $_.Name -in $pg.extensionData.Config.DefaultPortConfig.UplinkTeamingPolicy.UplinkPortOrder.StandbyUplinkPort }).ConnectedEntity -join '|'
    


    ------------------------------


    Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference


    ------------------------------