输出单行多行CimInstance

时间:2015-12-29 17:35:45

标签: powershell scripting

我正在尝试找到一个完整的解决方案来捕获来自mouseEntered的信息并将其保存到服务器上的表中。目前我正在使用下面的代码:

Get-CimInstance Win32_NetworkAdapter

我遇到的问题是具有多个NIC的计算机输出多行,因此输出如下:

$SerialNum = Get-CIMInstance WIN32_BIOS | SELECT -ExpandProperty SerialNumber 
Get-CimInstance Win32_NetworkAdapter | Select-Object * |
 Export-Csv S:\$SerialNum-NetAdptr.csv -Force -NoTypeInformation
  Import-Csv S:\$SerialNum-NetAdptr.csv |
   Select-Object *, @{Name='Serial';Expression={Get-CIMInstance WIN32_BIOS | Select-Object -ExpandProperty SerialNumber}} |
    Export-Csv S:\$SerialNum-NetAdptrSerialized.csv -Force -NoTypeInformation
     Remove-Item S:\$SerialNum-NetAdptr.csv 

$NetAdptrINF = Get-CIMInstance Win32_NetworkAdapter | Select-Object *
$objRecordSet.Fields.Item("ProductName").Value = ($NetAdptrINF.ProductName).ToString()

在字段中保存以下内容:$objRecordSet.Fields.Item("ProductName").Value = $NetAdptrINF.ProductName 。我一直在寻找使用foreach一次打印一行每个网络适配器属性,但一直无法获得任何远程工作。我正在使用Windows 10 ADK中捆绑的PowerShell。

System[].object输出:

$NetAdptrInf.ProductName

我需要能够输出一个Microsoft Kernel Debug Network Adapter Intel(R) Dual Band Wireless-AC 7260 Intel(R) Ethernet Connection I217-LM Microsoft Wi-Fi Direct Virtual Adapter Microsoft Hosted Network Virtual Adapter Microsoft ISATAP Adapter Microsoft Teredo Tunneling Adapter Microsoft ISATAP Adapter Microsoft ISATAP Adapter VirtualBox Host-Only Ethernet Adapter将其保存到记录中以及从Win32_NetworkAdapter收集的其他信息,然后移动到下一个并重复。

谢谢。

1 个答案:

答案 0 :(得分:0)

根据$NetAdptrINF评估如下的事实:

$NetAdptrINF = Get-CIMInstance Win32_NetworkAdapter

您可以使用以下内容来检索产品名称的文本列表:

($NetAdptrINF | % { $_.productname}) -join ','

编辑:

如果您想通过productname获取记录:

Get-CIMInstance Win32_NetworkAdapter | Select-Object DeviceId,Name,Productname,ServiceName,AdapterType