Scripts/Get-PCNetworkAdapter.ps1
Function Get-PCNetworkAdapter { <# .SYNOPSIS Get network adapter information/configuration .DESCRIPTION Get network adapter information/configuration .PARAMETER ComputerName The target computer name .EXAMPLE Get-PCNetworkAdapter -ComputerName LabPC2024 .NOTES N/A .LINK N/A #> [CmdletBinding ()] Param ( [Parameter (Mandatory = $True, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True, HelpMessage = 'Enter computer name' ) ] [String[]]$ComputerName ) BEGIN { $NetConnectionStatus = @{ '0' = 'Disconnected' '1' = 'Connecting' '2' = 'Connected' '3' = 'Disconnecting' '4' = 'Hardware not present' '5' = 'Hardware disabled' '6' = 'Hardware malfunction' '7' = 'Media disconnected' '8' = 'Authenticating' '9' = 'Authentication succeeded' '10' = 'Authentication failed' '11' = 'Invalid address' '12' = 'Credentials required' } Function Show-Output ($Computer, $Values, $Status) { If ($Values.TimeOfLastReset) { [Object]$TimeOfLastReset = [System.Management.ManagementDateTimeConverter]::ToDateTime($Values.TimeOfLastReset).ToUniversalTime() } [PSCustomObject]@{ ComputerName = $Computer Caption = $Values.Name Description = $Values.Description DeviceID = $Values.DeviceID AdapterType = $Values.AdapterType AdapterTypeId = $Values.Adapter.TypeID NetConnectionID = $Values.NetConnectionID AutoSense = $Values.AutoSense MACAddress = $Values.MACAddress Manufacturer = $Values.Manufacturer Speed = $Values.Speed MaxSpeed = $Values.MaxSpeed NetEnabled = $Values.NetEnabled PhysicalAdapter = $Values.PhysicalAdapter NetConnectionStatus = $NetConnectionStatus["$($Values.NetConnectionStatus)"] ServiceName = $Values.ServiceName TimeOfLastReset = $TimeOfLastReset Status = $Status } } } PROCESS { ForEach ($Computer In $ComputerName) { If (Test-Connection -ComputerName $Computer -Count 1 -Quiet) { Try { $Data = Get-WmiObject Win32_NetworkAdapter -ComputerName $Computer | Select-Object * ForEach ($Item In $Data) { Show-Output $Computer.ToUpper() $Item 'Ok' } } Catch { Show-Output $Computer.ToUpper() $Null $PSItem.Exception.Message } } Else { Show-Output $Computer.ToUpper() $Null 'Unreachable' } } } END {} } |