Author Posts

September 24, 2015 at 6:23 pm

Hi I need your help

Creating a report where I need the information of each network adapter that is enabled and within this network the IP information of that adapter.

here what I have so far

$ComputerName = ""
$cred = Get-Credential -Message "User Info for Domain Server is in" -UserName "wf\u413628-a"

$data = Get-WmiObject -Computer $ComputerName Win32_Networkadapter -Credential $cred -Filter "NetEnabled=True"
$data | select *

$adapter = 0

foreach($network in $data){

$adapter += 1

$obj = New-Object -TypeName psobject

$props = [ordered]@{ Adapter = $adapter
Manufacturer = $network.Manufacturer
AdapterDescription = $network.Description
Connection = $network.NetConnectionID
'Speed GB' = $network.Speed/1000/1000/1000 }

$obj = New-Object -TypeName psobject -Property $props

$ipdata = Get-WmiObject win32_networkadapterconfiguration -ComputerName $ComputerName -Credential $cred -Filter "IPEnabled=True"

foreach ($IPinfo in $ipdata){
Add-Member -InputObject $obj -MemberType NoteProperty -Name 'IPAddress' -Value $IPinfo.IPAddress
Add-Member -InputObject $obj -MemberType NoteProperty -Name 'Submask' -Value $IPinfo.IPSubnet
Add-Member -InputObject $obj -MemberType NoteProperty -Name 'Gateway' -Value $IPinfo.DefaultIPGateway
Add-Member -InputObject $obj -MemberType NoteProperty -Name 'DNSServers' -Value $IPinfo.DnsServerSearchOrder
Add-Member -InputObject $obj -MemberType NoteProperty -Name 'WinServers' -Value $IPinfo.WinsPrimaryServer
Add-Member -InputObject $obj -MemberType NoteProperty -Name 'DaomainSuffixes' -Value $IPinfo.DNSDomainSuffixSearchOrder



Write-Output $obj


$obj |ConvertTo-Html -as list |out-file C:\Scripts\nic.html

ii "C:\Scripts\nic.html"

As you can see, I started with for each adapter pull information and add it to a new object. then Pull the IP information for that adapter.

here is the output

TypeName: System.Management.Automation.PSCustomObject

Name MemberType Definition
—- ———- ———-
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Adapter NoteProperty System.Int32 Adapter=1
AdapterDescription NoteProperty System.String AdapterDescription=vmxnet3 Ethernet Adapter
Connection NoteProperty System.String Connection=Local Area Connection 6
DaomainSuffixes NoteProperty System.String[] DaomainSuffixes=System.String[]
DNSServers NoteProperty System.String[] DNSServers=System.String[]
Gateway NoteProperty System.String[] Gateway=System.String[]
IPAddress NoteProperty System.String[] IPAddress=System.String[]
Manufacturer NoteProperty System.String Manufacturer=VMware, Inc.
Speed GB NoteProperty System.UInt64 Speed GB=10
Submask NoteProperty System.String[] Submask=System.String[]
WinServers NoteProperty System.String WinServers=

Adapter : 1
Manufacturer : VMware, Inc.
AdapterDescription : vmxnet3 Ethernet Adapter
Connection : Local Area Connection 6
Speed GB : 10
IPAddress : {}
Submask : {}
Gateway : {,}
DNSServers : {,}
WinServers :
DaomainSuffixes : {wf.local, wfroot.local,}

But I need to expand the properties of the ip setting.

can anyone help


September 24, 2015 at 7:39 pm

Can you explain more about what you mean about expanding the properties of the IP settings? Looking at what you have put as your output I see what I would think is the properties of the IP settings like the IP address and Gateway, etc. Need a little more understanding of what you are trying to accomplish.

September 24, 2015 at 9:10 pm

Yes, I need to expand the properties of the IP Setting.

specially, for extra ip address for Dns, Wins.

How can I expand all the setting at one time. Instead of expanding 1 by 1.


| select -expandproperty DNSServers, Wins, DNSSearchorder

how do i used the add-member in this situation.

September 24, 2015 at 10:29 pm

this way for example

Add-Member -InputObject $obj -MemberType NoteProperty -Name 'IPAddress' -Value ($IPinfo.IPAddress -join ',')

September 28, 2015 at 11:33 am

Thanks Max That work Like a charm