PoshCode Archive  Artifact [c235fe2b5e]

Artifact c235fe2b5eafeb56b51aa0d3bfbed608af5dc84d32693a7862be00509ee4ba36:

  • File Get-NICSettings.ps1 — part of check-in [ee2805239e] at 2018-06-10 13:55:24 on branch trunk — Grab remote NIC settings, including Speed and Duplex. (user: hugopeeters size: 2497)

# encoding: ascii
# api: powershell
# title: Get-NICSettings
# description: Grab remote NIC settings, including Speed and Duplex.
# version: 0.1
# type: class
# author: hugopeeters
# license: CC0
# x-poshcode-id: 545
# x-archived: 2014-11-07T16:30:50
# x-published: 2008-08-22T09:08:00
#
# See: http://www.peetersonline.nl/index.php/powershell/gather-nic-properties-including-speed-and-duplex/#more-51
#
# Get-NICSettings by Hugo Peeters of www.peetersonline.nl
#########################################################
$serverName = Read-Host "Enter server name"
$NicConfig = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -ComputerName $serverName
$myCol = @()
ForEach ($Nic in $NicConfig)
{
If ($Nic.IPAddress -ne $null)
{
$myObj = "" | Select-Object Description, DHCPEnabled, IPAddress, IPSubnet, DefaultIPGateway, DNSServers, WINSServers, NICModel, SpeedDuplex
$myObj.Description = $Nic.Description
$myObj.DHCPEnabled = $Nic.DHCPEnabled
$myObj.IPAddress = $Nic.IPAddress
$myObj.IPSubnet = $Nic.IPSubnet
$myObj.DefaultIPGateway = $Nic.DefaultIPGateway
$myObj.DNSServers = $Nic.DNSServerSearchOrder
$myObj.WINSServers = $Nic.WINSPrimaryServer,$Nic.WINSSecondaryServer
$registry = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine, $serverName)
$baseKey = $registry.OpenSubKey("SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}")
$subKeyNames = $baseKey.GetSubKeyNames()
ForEach ($subKeyName in $subKeyNames)
{
$subKey = $baseKey.OpenSubKey("$subKeyName")
$ID = $subKey.GetValue("NetCfgInstanceId")
If ($ID -eq $Nic.SettingId)
{
$componentID = $subKey.GetValue("ComponentID")
If ($componentID -match "ven_14e4")
{
$myObj.NICModel = "Broadcom"
$requestedMediaType = $subKey.GetValue("RequestedMediaType")
$enum = $subKey.OpenSubKey("Ndi\Params\RequestedMediaType\Enum")
$myObj.SpeedDuplex = $enum.GetValue("$requestedMediaType")
}
ElseIf ($componentID -match "ven_8086")
{
$myObj.NICModel = "Intel"
$SD = $subKey.GetValue("SpeedDuplex")
$enum = $subKey.OpenSubKey("Ndi\Params\SpeedDuplex\Enum")
$myObj.SpeedDuplex = $enum.GetValue("$SD")
}
ElseIf ($componentID -match "b06bdrv")
{
$myObj.NICModel = "HP"
$SD = $subKey.GetValue("req_medium")
$enum = $subKey.OpenSubKey("Ndi\Params\req_medium\Enum")
$myObj.SpeedDuplex = $enum.GetValue("$SD")
}
Else
{
$myObj.NICModel = "unknown"
$myObj.SpeedDuplex = "unknown"
}
}
}
$myCol += $myObj
}
}
$myCol