我正在尝试为服务器上的端口(在NIC中)获取不同的自定义对象。
以下脚本仅捕获其处理的最后一个端口。如何为服务器上的多个端口创建自定义对象?有些可能有2和其他4等。理想情况下,然后使用名称保存每个对象,我可以稍后使用:
from itertools import count
for index, value1, value2 in zip(count(), data1, data2):
print(index, value1, value2)
答案 0 :(得分:3)
您正在覆盖object
循环中的当前foreach
并使用未定义的变量$os
。
你可能想做这样的事情:
Foreach($os in $objects)
{
$object = New-Object –TypeNamePSObject
$object | Add-Member –MemberTypeNoteProperty –Name NetEnabled –Value $os.NetEnabled
$object | Add-Member –MemberTypeNoteProperty –Name PNPDeviceID –Value $os.PNPDeviceID
Write-Output $object
}
但是,由于您只选择了两个属性,因此可以改为:
Get-WmiObject -Class Win32_NetworkAdapter -filter "Name LIKE '%Intel%' OR Name LIKE '%HP%' OR Name LIKE '%Broadcom%'" |
select NetEnabled, PNPDeviceID
答案 1 :(得分:2)
您的代码目前相当于
Get-WmiObject Win32_NetworkAdapter |
where Name -match 'Intel|HP|Broadcom' |
foreach {
$os | select NetEnabled,PNPDeviceID
}
(假设在正确的位置有一些空格使其完全运行)。
这根本没有任何意义。也许你的意思更类似于以下内容?
Get-WmiObject Win32_NetworkAdapter |
where Name -match 'Intel|HP|Broadcom' |
select NetEnabled,PNPDeviceID
请注意,由于您在循环中重新分配给$object
并使用了$os
,因此您不会使用查询对象中的任何内容。< / p>