ip-адрес powershell csv файл - PullRequest
       10

ip-адрес powershell csv файл

0 голосов
/ 24 января 2012

Я пытаюсь вывести содержимое только активных адаптеров в файл csv для последующего импорта.

Проблема заключалась в использовании $ _.ниже.

$colNicConfigs = Get-WMIObject Win32_NetworkAdapterConfiguration | where { $_.IPEnabled -eq "TRUE" }

#loop over each adapter
foreach ($objNicConfig in $colNicConfigs) 
{ 
$objnic=Get-WMIObject Win32_NetworkAdapter | where {$_.deviceID -eq "$objNicConfig.Index" }
#$strname=$objnicconfig.description.split(":")[0]
#replace strname above when testing against actual server since no dot1q defined on my wks
$strname="MGMT:Something"
$connid=$_.NetworkConnectionID
$ipaddr=$_.IPAddress(0)
$ipsm=$_.IPSubnet(0)
$dg=$_.DefaultIPGateway

}
# create dictionary entries
$report = @()
$report += New-Object psobject -Property @{Name=$strname;ConnID=$connid;IP=$ipaddr;SM=$ipsm;DG=$dg}
$report | export-csv .\nic.csv

1 Ответ

1 голос
/ 25 января 2012

Ваши начальные проблемы - использование $ underscore в вашем цикле foreach. Если вы хотите сослаться на свойства $objNicConfig, вы будете использовать его вместо "подчеркивания $". Так что вместо $connid=$_.networkConnectionID вы бы использовали $connid=$objNicConfig.networkConnectionID

Также IpAddress and IPSubnet не являются методами, они являются свойствами, поэтому удаление (0) вернет информацию о записи. Если ваша сетевая карта имеет несколько IP-адресов, я не могу подтвердить, как это будет отображаться, а на моем компьютере нет, что я тестирую.

Другие вещи, которые я вижу, это то, что вам нужно будет вставить другой цикл foreach, чтобы ссылаться на оба пространства имен WMI ... так что-то вроде:


$colNicConfigs = Get-WMIObject Win32_NetworkAdapterConfiguration | where { $_.IPEnabled -eq "TRUE" }

foreach ($objNicConfig in $colNicConfigs) 
{
    foreach($objnic in (gwmi win32_networkadapter | where {$_.DeviceID -eq $objNicConfig.Index}))
    {
        $strName = "MGMT:Something"
        $objNicConfig.NetworkConnectionID
        $objNicConfig.IpAddress
        $objNic.IPSubnet
        $objNicConfig.DefaultIPGateway
    }
}

Приведенный выше код используется для возврата информации на сетевые карты моего компьютера.

Теперь с разделом «словарные записи». Вы не сможете ссылаться на переменные в цикле foreach, добавляя psobject. Вы только захватите последний найденный в коде цикла foreach. Если вы хотите сначала собрать информацию в цикле foreach, а затем использовать ее позже в своем сценарии, я бы посоветовал посмотреть на hash tables.

...