0

アクセス権のある在庫 PS スクリプトを作成しています。コードのネットワーク部分に到達するまで、すべてが順調に進んでいます。なんらかの理由で、見落としているか、データベースにフィールドを入力できないことを知らないだけです。ネットワーク カードと device_name を好む人もいます。しかし、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 に答える