当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell功能:使用Test-Gateway测试默认网关

作者:精品下载站 日期:2024-12-14 07:28:49 浏览:14 分类:玩电脑

PowerShell功能:使用Test-Gateway测试默认网关


有时,您的计算机可能会失去与其他主机或互联网的连接。你首先应该做什么?例如,您可以尝试访问其他主机或您的默认网关。当然,您可以使用自下而上的方法,爬上 OSI 模型的梯子并检查您的网络电缆(第 1 层),再次爬上(第 2 层)并检查您的网卡或交换机,或者您可以使用其他方法然后爬下来。

在这篇博文中,我们使用 PowerShell 函数向下查看并检查默认网关。我创建了一个小函数,它从本地主机的路由表中读取默认网关的 IP 地址。开始吧。

收集默认网关的 IP 地址

以下给出了我的默认网关的 IP:

Get-NetRoute -DestinationPrefix 0.0.0.0/0

[玩转系统] PowerShell功能:使用Test-Gateway测试默认网关

请注意,它总是为我提供默认网关的IP,无论安装和配置了多少网卡。它称为默认路由 (0.0.0.0/0) 或度假村的最后网关。嗯,我的默认网关的 IP 是 192.168.0.1。让我们继续下一步。

发现测试连接

在我的文章《现代版本的 ping:测试连接》中,我使用了 cmdlet Test-Connection。测试连接就像 ping 一样。接下来我们需要 Test-Connection 来测试网关的 IP。首先,我们可以尝试 ping 我们的网关。

Test-Connection -ComputerName 192.168.0.1

[玩转系统] PowerShell功能:使用Test-Gateway测试默认网关

好的。但这不是我们正在寻找的。我们要从路由表中调用 IP。为此,我们必须扩展 NextHop 的属性以获取 IP 地址。

Get-NetRoute -DestinationPrefix 0.0.0.0/0 | Select-Object -ExpandProperty NextHop

[玩转系统] PowerShell功能:使用Test-Gateway测试默认网关

所以,我们知道我们可以将此命令插入到 Test-Connection 中。

Test-Connection -ComputerName (Get-NetRoute -DestinationPrefix 0.0.0.0/0 | Select-Object -ExpandProperty NextHop)

[玩转系统] PowerShell功能:使用Test-Gateway测试默认网关

为什么我将 Get-NetRoute 放在圆括号中?圆括号中的命令会立即执行。因此,当 ping 开始时,网关的 IP 地址已经存在!

伟大的!让我们开始编写函数。

创建一个函数来测试与默认网关的连接

好的,我的目标是创建一个命令测试网关。让我们创建一个符合我的计划的函数。我还希望输出仅显示 true 或 false。

function Test-Gateway {Test-Connection -ComputerName (Get-NetRoute -DestinationPrefix 0.0.0.0/0 | Select-Object -ExpandProperty NextHop) -Quiet}

[玩转系统] PowerShell功能:使用Test-Gateway测试默认网关

现在激动人心的时刻即将到来……

Test-Gateway

[玩转系统] PowerShell功能:使用Test-Gateway测试默认网关

万岁!它正在发挥作用。

使其永久化

您创建的函数仅在当前的 PowerShell 会话中可用,这意味着当您关闭 PowerShell 时它们就会消失。

如果您喜欢我的函数,只需将其插入您的 PowerShell 配置文件中即可。然后,每次启动这个星球上最好的命令行时,它都将可用。在 PowerShell 中复制以下代码,以允许 PowerShell 运行您的配置文件、创建配置文件并将函数放入其中。

Set-ExecutionPolicy remotesigned -force
New-Item $profile -Force | Out-Null
Add-Content $profile -Value {function Test-Gateway {Test-Connection -ComputerName (Get-NetRoute -DestinationPrefix 0.0.0.0/0 | Select-Object -ExpandProperty NextHop) -Quiet}}

该命令现已成为永久性命令。它包含在您的配置文件中,每次启动 PowerShell 时都会加载该配置文件。

notepad $profile

[玩转系统] PowerShell功能:使用Test-Gateway测试默认网关

关闭 PowerShell 并重新打开它。运行测试网关。玩得开心!

在远程主机上测试网关

在我的另一篇文章中,我展示了一项带有远程操作的高级功能。它连接到其他主机,检查该主机的路由表,然后检查该主机是否可以到达其默认网关。

更多信息请参见:PowerShell:通过读取路由表来测试本地主机和远程主机上默认网关的连接

PowerShell模块

您还可以将此函数保存为 PowerShell 模块,我在之前的博文中对此进行了描述:PowerShell 函数:如何创建您的第一个 PowerShell 模块命令

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯