如何在 Powershell 中获取网络配置概览?

如何在 Powershell 中获取网络配置概览?

在 Linux 机器上,我过去常常通过 ifconfig 和 ip route 命令获取所需的大部分网络信息。

在 PowerShell 中,我仍然不清楚如何快速概览机器的网络配置。要么是我遗漏了某些信息,要么这些信息分散在多个命令中(默认情况下格式不方便)。

在我自己的电脑上,我最终实现了这些功能,但我经常在其他没有这些功能机器上工作,而有时这些机器也没有连接到互联网,因此安装各种 nuget 不是一个选择。

那么您建议如何在干净的 PowerShell 5 上获取网络信息?

function ifconfigAlias {
    Get-NetIPConfiguration -Detailed | Select-Object `
    @{ name = "Idx"; expr = { $_.NetAdapter.InterfaceIndex } },
    InterfaceAlias,
    @{ name = "Address"; expr = {$_.IPv4Address}; }, 
    @{ name = "MAC"; expr = { $_.NetAdapter.LinkLayerAddress } },
    @{ name = "Link"; expr = { $_.NetAdapter.Status -replace "Disconnected", "Down" } },
    @{ name = "Speed"; expr = { $_.NetAdapter.LinkSpeed } },
    @{ name = "Forwarding"; expr = { $_.NetIPv4Interface.Forwarding } },
    InterfaceDescription `
    | Sort-Object InterfaceAlias | Format-Table -Wrap -AutoSize
}
Set-Alias -Name my-ipconfig -Value ifconfigAlias

function routePrintAlias {
    param(
        [Parameter(HelpMessage="Sort order")]
        [ValidateSet("iface", "dest")]
        [string]$SortBy = "dest"
    )

    $Lut = @{"if" = "InterfaceIndex"; "dest" = "DestinationPrefix"}
    $SortProp = $Lut[$SortBy]

    Get-NetRoute | `
        Sort-Object $SortProp | `
        Where-Object { `
            ($_.AddressFamily -eq 'ipv4') -and `
            ($_.DestinationPrefix -ne '255.255.255.255/32') -and `
            ($_.DestinationPrefix -ne '224.0.0.0/4') } | `
        Select-Object `
            DestinationPrefix, `
            NextHop, `
            @{name = "Idx"; expr = { $_.InterfaceIndex } }, `
            InterfaceAlias, `
            RouteMetric | `
    Format-Table    
}
Set-Alias -Name my-route -Value routePrintAlias

答案1

请随意编辑以满足您的喜好

Get-WmiObject win32_networkadapterconfiguration | 
Select-Object -Property @{
    Name = 'IPAddress'
    Expression = {($PSItem.IPAddress[0])}
},MacAddress | 
Where IPAddress -NE $null

相关内容