Powershell访问数据库,无法获取IP地址

时间:2013-09-11 15:09:57

标签: database ms-access powershell

我正在创建一个具有访问权限的库存PS脚本,一切顺利,直到我到达我的代码的网络部分。由于某种原因,我必须忽略或只是不知道我不能让字段填充在数据库中。有些人会喜欢网卡和device_name。但是当我检查数据库的空白时,IPaddress,子网掩码,默认网关等字段将不会返回任何值。我很困惑,需要一些指导,任何帮助表示赞赏!谢谢!

以下是我的网络功能片段:

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

1 个答案:

答案 0 :(得分:1)

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

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

请注意,您希望在可能包含数组的任何字段上执行此操作; IPAddress,IPSubnet等