使用 PowerShell 检查网络可达性

在日常的系统管理和网络监控中,确认设备的网络可达性是一个常见且重要的任务。本文将详细解析一段使用 PowerShell 编写的脚本,该脚本用于检查一组机器是否可达,并将可达的机器列出。

PowerShell 脚本:

# 定义机器名数组
$machines = @(
    "PC-TEST01",
    "PC-TEST02"
)

# 定义域名后缀
$domainSuffix = "domain"

# 定义可达机器的数组
$reachableMachines = @()

# 遍历机器名数组并执行 ping
foreach ($machine in $machines) {
    $fullDomain = $machine + $domainSuffix
    Write-Host "Pinging $fullDomain..."
    try {
        # 执行 ping 命令
        $result = Test-Connection -ComputerName $fullDomain -Count 2 -ErrorAction Stop
        # 如果 ping 成功,输出结果并添加到可达机器数组
        Write-Host "$fullDomain is reachable."
        $reachableMachines += $fullDomain
    } catch {
        # 如果 ping 失败,输出错误信息
        Write-Host "$fullDomain is not reachable."
    }
}

# 输出可达机器列表
Write-Host "`nReachable Machines:"
$reachableMachines | ForEach-Object { Write-Host $_ }

1. 定义机器名数组

$machines = @(
    "PC-TEST01",
    "PC-TEST02"
)

这一部分定义了一个名为 $machines 的数组,包含了需要检查的机器名称。这里列出了两台机器:PC-TEST01PC-TEST02。可以根据实际需求,增加或者修改这个数组中的机器名。

2. 定义域名后缀

$domainSuffix = "domain"

$domainSuffix 变量用于定义这些机器的域名后缀。在实际应用中,这可以是一个有效的域名后缀,比如 .local.com,依赖于你的网络设置。

3. 定义可达机器的数组

$reachableMachines = @()

这里初始化了一个空数组 $reachableMachines,用于存放那些可以成功 ping 通的机器名称。

4. 遍历机器名数组并执行 ping

foreach ($machine in $machines) {
    $fullDomain = $machine + $domainSuffix
    Write-Host "Pinging $fullDomain..."
    try {
        $result = Test-Connection -ComputerName $fullDomain -Count 2 -ErrorAction Stop
        Write-Host "$fullDomain is reachable."
        $reachableMachines += $fullDomain
    } catch {
        Write-Host "$fullDomain is not reachable."
    }
}

这一部分是脚本的核心。它使用 foreach 循环遍历 $machines 数组中的每个机器名称。每次循环中:

  • 将机器名称与域名后缀组合,形成完整的域名 $fullDomain
  • 使用 Write-Host 输出正在 ping 的机器名。
  • 使用 Test-Connection 命令尝试 ping 该机器,-Count 2 表示发送两个 ping 请求,-ErrorAction Stop 选项确保在出现错误时停止执行。
  • 如果 ping 成功,机器名称将被添加到 $reachableMachines 数组中,并输出相应的可达性信息。
  • 如果 ping 失败,脚本会捕获异常,并输出该机器不可达的错误信息。

5. 输出可达机器列表

Write-Host "`nReachable Machines:"
$reachableMachines | ForEach-Object { Write-Host $_ }

最后,脚本输出一行文本 “Reachable Machines:”,并使用 ForEach-Object 遍历可达机器数组 $reachableMachines,逐一输出每个可达机器的名称。

这段 PowerShell 脚本通过简单的结构和命令,展示了如何有效地检查一组机器的网络可达性。它不仅适用于网络管理员排查网络故障,也可以作为学习 PowerShell 基础的一个良好示例。通过适当修改机器名称和域名后缀,用户可以根据自己的需求扩展该脚本的功能。

🏆 每日挑战:你知道答案吗?

如何在 Python 中检查变量的类型?

温馨提示 : 非特殊注明,否则均为©李联华的博客网原创文章,本站文章未经授权禁止任何形式转载;IP地址:18.223.158.193,归属地:俄亥俄州Dublin ,欢迎您的访问!
文章链接:https://www.lilianhua.com/check-network-reachability-using-powershell.html

文澜千文文澜千文Beta

请登录以使用此功能。

弹窗图片

年终回馈! 200积分免费领取,可通过用户中心或VIP会员页面通过兑换码进行兑换:OAK-8909956

Loading...