此代码在导出到 CSV 时会导致 IPAddress 字段的“System.String[]”输出。我知道解决此问题的方法是加入该字段,但我根据用户选择的设置动态选择对象,所以我不确定如何修复它。任何帮助表示赞赏。
$colItems = GWMI Win32_NetworkAdapterConfiguration -computername $PCname -namespace "root\CimV2" -filter "IpEnabled = TRUE"
###Define Settings Array
$settings_array = @()
Foreach ($objItem in $chklstGetMIPRet.CheckedItems)
{$settings_array += [String]$objItem}
#####
###Export to CSV
$colItems | Select-Object -Property $settings_array | export- csv "$ScriptDir\Exports\$Outputfile" -NoType
$chklstGetMIPRet 是一个复选框,用户可以选择他们希望显示的 WMI 类。$chklstGetMIPRet.CheckedItems 包含该检查列表框中当前检查的所有值。所以 foreach 会通过,并且对于每个选中的项目将该值添加到 $settings_array
编辑:
此代码有效:
$prop_list = @{"MACAddress" = "MACAddress"}
$prop_list += @{"Caption" = "Caption}
$prop_list += @{"IPAddress" = $colItems.IPAddress -join ', '}
Foreach ($objItem in $chklstGetMIPRet.CheckedItems)
{$exp_settings_array += $prop_list[$objItem]}
$colItems | Select-Object -Property $exp_settings_array | export-csv "$ScriptDir\Exports\$Outputfile" -NoType
除了导出时,我使用标签正确获取标题和 MAC 地址,但 IPAddress 只是将实际 IP 导出到没有标签的顶行。