VMware,在CSV文件上输出网络运行状况检查

时间:2018-11-20 18:13:19

标签: vmware

我有一个脚本,它可以完美运行,并且一切都在电源外壳屏幕“控制台”上显示。但我试图弄清楚如何以CSV格式导出

脚本:

foreach(Get-VDSwitch中的$ vds)         {         $ vds.ExtensionData.Runtime.HostMemberRuntime | %{         $ .HealthCheckResult |其中{$ -是[VMware.Vim.VMwareDVSVlanHealthCheckResult]} |         选择@ {N ='vdSwitch'; E = {$ vds.Name}},             UplinkPortKey,             @ {N ='TrunkedVLAN'; E = {                 ($ .TrunkedVLAN |%{                     if($ .Start -eq $ .End){                         “ {0}” -f $ 。开始                     }                     其他{                         “ {0}-{1}” -f $ 。开始,$ 。结束                     }                 })-join','
            }}           }

}

屏幕上的输出看起来像这样;

VsanEnabled:错误 VsanDiskClaimMode:手动 HATotalSlots:3099 HAUsedSlots:22 HAAvailableSlots:1527 HASlotCpuMHz:32 HASlotMemoryMb:328 HASlotMemoryGB:0.3203125 HASlotNumVCpus:1 ParentId:文件夹组h28 ParentFolder:主机 HAEnabled:真 HAAdmissionControlEnabled:True HAFailoverLevel:1 HARestartPriority:中等 HAIsolationResponse:什么都不做 VMSwapfilePolicy:WithVM DrsEnabled:真实 DrsMode:全自动 DrsAutomationLevel:全自动 EVCMode:英特尔-nehalem 名称:mac01dmzp01 CustomFields:{} ExtensionData:VMware.Vim.ClusterComputeResource ID:ClusterComputeResource-domain-c12033 Uid:/VIServer=cn\t175726@mac01vcp02.cn.ca:443/Cluster=ClusterComputeResource-domain-c12033 /

vdSwitch:vds-toronto-mac01-2-ports-10Gbe 上行端口密钥:78 中继VLAN:11-17,396,500

vdSwitch:vds-toronto-mac01-2-ports-10Gbe 上行端口密钥:79 中继VLAN:11-17,396,500

vdSwitch:vds-toronto-mac01-2-ports-10Gbe UplinkPortKey:82 中继VLAN:11-17,396,500

vdSwitch:vds-toronto-mac01-2-ports-10Gbe 上行端口密钥:83 中继VLAN:11-17,396,500

vdSwitch:vds-toronto-mac01-2-ports-10Gbe 上行端口密钥:358 中继VLAN:11-17,396,500

vdSwitch:vds-toronto-mac01-2-ports-10Gbe 上行端口密钥:359 中继VLAN:11-17,396,500

更多......

1 个答案:

答案 0 :(得分:0)

我发现使用函数的方法。

            #####################################################
            #  vSphere 6.5
            #  Get ESX HealthCheck Network Config from VDS
            #
            #  by Gerald Begin (Nov.20 2018)
            #################################

            ##### Set Script Location
            Set-Location T:\___Main-Script___\_VDS-vLANs_

            ##### Add VMWare Module.
            Get-Module -Name VMware* -ListAvailable | Import-Module

            ##### Output Path
            $Desti = 'T:\___Main-Script___\_VDS-vLANs_\Output'

            Import-Module -Name "T:\__Script_Functions__\Connect2All.ps1" -Force:$true      # Function to Connect to ALL vCenters

            $Clster = "mac01dmzp01"

            #### --------------------------------------

            function GetInfo  {
            ###################################################

            foreach($vds in Get-VDSwitch)
                    {
                    $vds.ExtensionData.Runtime.HostMemberRuntime | %{
                    $_.HealthCheckResult | where{$_ -is [VMware.Vim.VMwareDVSVlanHealthCheckResult]} |
                    Select @{N='vdSwitch';E={$vds.Name}},
                        UplinkPortKey,
                        @{N='TrunkedVLAN';E={
                            ($_.TrunkedVLAN | %{
                                if($_.Start -eq $_.End){
                                    "{0}" -f $_.Start
                                }
                                else{
                                    "{0}-{1}" -f $_.Start,$_.End
                                }
                            }) -join ','       
                        }}
                      }
                    }
                                }


            Get-Cluster -Name $Clster | GetInfo | Export-Csv -Path $Desti\Results.csv -NoTypeInformation

            Disconnect-VIServer * -Confirm:$false