2015-12-29 53 views
3

我正试图找到一个完整的解决方案来捕获与Get-CimInstance Win32_NetworkAdapter信息并将其保存到服务器上的表。目前我使用如下代码周围:输出单线多线CimInstance

$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 

我有与多个NIC输出多行计算机,以便输出一样的问题:

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

$objRecordSet.Fields.Item("ProductName").Value = $NetAdptrINF.ProductName 

保存的东西沿线:System[].object在该领域。我一直在寻找使用foreach一次打印每个网络适配器属性的一行,但一直无法获得甚至远程工作的任何东西。我使用捆绑在Windows 10 ADK中的PowerShell。

$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

我需要能够输出一个ProductName将其保存到与Win32_NetworkAdapter收集的其他信息一起记录,然后移动到下一个和重复。

谢谢。

+1

什么格式*您希望多网卡?每台计算机都用逗号分隔列表? –

+0

$ NetAdptrINF等于什么?请提供该变量的分配代码。也许输出$ NetAdptrINF.ProductName到控制台 –

回答

0

根据该$NetAdptrINF作为后续评估的事实:

$NetAdptrINF = Get-CIMInstance Win32_NetworkAdapter 

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

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

编辑:

如果您想通过产品名称获得记录:

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

这将有助于导出CSV文件,但是直接将信息发送到数据库表中的记录我目前需要能够一次拉出一个产品名称。 –