我正在创建一个具有访问权限的库存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
答案 0 :(得分:1)
当我使用你的gwmi命令时,IPAddress
是一个数组。我建议明确地将它重新组成一个字符串。尝试使用:
$RecordSet.Fields.Item("IP_Address") = ($objItem.IPAddress -join ',')
请注意,您希望在可能包含数组的任何字段上执行此操作; IPAddress,IPSubnet等