1: function Get-NicInfo { 2: [Cmdletbinding()]
3: PARAM
4: (
5: [Parameter(Position=1,
6: Mandatory=$false,
7: ValueFromPipeline = $true,
8: Helpmessage="The computer name")]
9: [string]$computername = "localhost",
10: [Parameter(Position=2,
11: Mandatory=$false,
12: Helpmessage="Only active adapter information")]
13: [boolean]$active = $true
14: )
15: BEGIN
16: { 17: $results = @()
18: #set the erroractionpreference to SilentlyContinue.
19: #(We're not concerned about offline machines)
20: $erroractionpreference = "SilentlyContinue"
21: }
22: PROCESS
23: { 24: $AllAdapters = @("") 25: #Check if $Active = $true
26: if (-not $active) { 27: $Adapters = Get-Wmiobject Win32_NetworkAdapterConfiguration `
28: -Computername $computername
29: }
30: else { 31: $Adapters = Get-Wmiobject Win32_NetworkAdapterConfiguration `
32: -Computername $computername |`
33: Where-Object{$_.IPEnabled -eq $True} 34: }
35:
36: #Loop thru all adapters
37: ForEach($Adapter In $Adapters)
38: { 39: [String]$DNSServers = ""
40: $Adapters2 = Get-Wmiobject Win32_NetworkAdapter -Computername $pc `
41: | Where-Object{$_.Caption -eq $Adapter.Caption} 42: [String]$NetID = $Adapters2.NetConnectionID
43: If($Adapter.DNSServerSearchOrder -ne $Null)
44: { 45: ForEach($Address In $Adapter.DNSServerSearchOrder)
46: { 47: $DNSServers += "[" + $Address + "]"
48: }
49: }
50:
51: $result = new-object object
52: $result | add-member Noteproperty PC $pc.ToUpper()
53: $result | add-member Noteproperty NETID `
54: $NETID
55: $result | add-member Noteproperty Description `
56: $Adapter.Description
57: $result | add-member Noteproperty MACAddress `
58: $Adapter.MACAddress
59: $result | add-member Noteproperty IPAddress `
60: $Adapter.IPAddress
61: $result | add-member Noteproperty Subnet `
62: $Adapter.IPSubnet
63: $result | add-member Noteproperty DHCPEnabled `
64: $Adapter.DHCPEnabled
65: $result | add-member Noteproperty DHCPServer `
66: $Adapter.DHCPServer
67: $result | add-member Noteproperty DNSServers `
68: $DNSServers
69: $result | add-member Noteproperty WINSPrimaryServer `
70: $Adapter.WINSPrimaryServer
71: $result | add-member Noteproperty WINSSecondaryServer `
72: $Adapter.WINSSecondaryServer
73: $result | add-member Noteproperty DomainDNSRegistrationEnabled `
74: $Adapter.DomainDNSRegistrationEnabled
75: $result | add-member Noteproperty FullDNSRegistrationEnabled `
76: $Adapter.FullDNSRegistrationEnabled
77: $result | add-member Noteproperty WINSEnableLMHostsLookup `
78: $Adapter.WINSEnableLMHostsLookup
79:
80: $results += $result
81: }
82: }
83: END
84: { 85: return $results
86: }
87: }