Wednesday, August 26, 2009

Powershell WMI using Win32_NetworkAdapterConfiguration

Hi All, This is my first blog post, I a software generalist in the .net stack,

I have been dabbling in Powershell today, this code enumerate through a CSV file and lists the DNSHostName, IP Address, IP Subnet, Default Gateway and DNS Servers for a set of computers of Computers

import-csv "C:\tools\powershell\tst2.csv" | 


 


foreach-object {  


 


$qry = ('select statuscode from win32_pingstatus where address="' + $_.computername + '"')


$rslt = gwmi –query “$qry”


if ($rslt.StatusCode –eq 0) {


  GWMI -cl "Win32_NetworkAdapterConfiguration" -name "root\CimV2" -comp $_.computername -filter "IpEnabled = TRUE" -ea SilentlyContinue


}    


    


} | select -property @{name="DNSHostName"; expression={$_.DNSHostName}}, 


    @{name="IPAddress"; expression={[string] $_.IPAddress}},


    @{name="IPSubnet"; expression={[string] $_.IPSubnet}} ,


    @{name="DefaultIPGateway"; expression={$_.DefaultIPGateway}},


    @{name="PrimaryDNS"; expression={$_.DNSServerSearchOrder[0]}},


    @{name="SecondaryDNS"; expression={$_.DNSServerSearchOrder[1]}}  | sort DNSHostName | ft -AutoSize  | Export-Csv "C:\tools\powershell\tst-IPaddress.csv"