このコードを 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 をラベルなしで一番上の行にエクスポートするだけです。