0

我正在制作一个具有访问权限的库存 PS 脚本,并且一切顺利,直到我到达我的代码的网络部分。出于某种原因,我必须忽略或者只是不知道我无法将字段填充到数据库中。有些人会喜欢网卡和设备名称。但是当我检查数据库时,IP地址、子网掩码、默认网关等字段不会返回任何值。我很困惑,需要一些指导,感谢任何帮助!谢谢!

这是我的网络功能的片段:

Function Update-Network {
"Updating Network Info"
foreach ($strComputer in $colComputers){
        $NetItems = gwmi Win32_NetworkAdapterConfiguration -Comp $StrComputer | where{$_.IPEnabled -eq "True"}
    }
foreach ($objItem in $NetItems){
        $RecordSet.AddNew() 
        $RecordSet.Fields.Item("Device_Name") = $StrComputer
        $RecordSet.Fields.Item("Network_Card") = $objItem.Caption+" (enabled)"
        $RecordSet.Fields.Item("DHCP_Enabled") = $objItem.DHCPEnabled
        $RecordSet.Fields.Item("IP_Address") = $objItem.IPAddress
        $RecordSet.Fields.Item("Subnet_Mask") = $objItem.IPSubnet
        $RecordSet.Fields.Item("Default_Gateway") = $objItem.DefaultIPGateway
        $RecordSet.Fields.Item("DNS_Servers") = $objItem.DNSServerSearchOrder
        $RecordSet.Fields.Item("DNS_Reg") = $objItem.FullDNSRegistrationEnabled
        $RecordSet.Fields.Item("Primary_WINS") = $objItem.WINSPrimaryServer
        $RecordSet.Fields.Item("Secondary_WINS") = $objItem.WINSSecondaryServer
        $RecordSet.Fields.Item("WINS_Lookup") = $objItem.WINSEnableLMHostsLookup
        $RecordSet.Update()
    }
} #End Update-Network
4

1 回答 1

1

当我使用你的 gwmi 命令时,IPAddress是一个数组。我建议将它明确地转换成一个字符串。尝试使用:

$RecordSet.Fields.Item("IP_Address") = ($objItem.IPAddress -join ',')

请注意,您需要在任何可能包含数组的字段上执行此操作;IP地址、IP子网等

于 2013-09-11T15:40:48.817 回答