
随着微软发布其 Windows 客户端和服务器操作系统的更新版本,它继续加倍投入 PowerShell (PS),这是一个为管理系统和自动化而开发的框架。凭借其不断扩展的命令列表(称为 cmdlet),PS 已准备好帮助配置 Windows 中的几乎所有设置。
虽然 PS 拥有大量的 cmdlet,但值得庆幸的是,大多数 cmdlet 都是根据功能或它们管理的服务进行分组的。就本文而言,与管理基于网络的设置有关的 cmdlet 都位于基本 PowerShell 框架内。
Test-NetConnection -ComputerName “Hostname or IP”
Test-NetConnection cmdlet 提供了多种方法来测试 LAN 和 WAN 上的网络连接。输入上面键入的命令,计算机将执行 ping 来确定本地设备与目标计算机或域之间是否存在网络连接。
Test-NetConnection “Hostname” -Port #
Test-NetConnection cmdlet 的另一个功能是能够通过指定端口号来测试本地设备与目标主机之间的连接。这对于测试设备与它们所通信的端口之间的服务非常有用。
Test-NetConnection “Hostname” -traceroute
执行跟踪路由来确定数据包从源到目的地必须经过多少跳(或步骤)是一项重要工具,因为它可以让您了解传输的去向,更重要的是,它是否成功。如果没有,跟踪路由将指示数据包在路径上失败的位置。
Get-NetIPConfiguration
与 ipconfig 命令类似,Get-NetIPConfiguration cmdlet 提供计算机网络适配器上设置的网络配置的整体视图。IP、DNS 和网关地址按适配器名称显示和排序。
Resolve-DnsName -Name “Hostname”
可以说,DNS服务是网络的骨干。如果没有它,用户将被迫知道所有网站和服务的IP地址。然而,当出现连接问题时,在排除与IP相关的错误后,DNS通常是罪魁祸首。通过附加“-server”开关,然后是DNS服务器的IP地址,IT可以针对特定服务器执行DNS解析请求,以验证解析是否正常工作。
Get-NetTCPConnection
与之前的 netstat 一样,Get-NetTCPConnection cmdlet 允许查看当前与设备建立的 TCP 连接以及打开或监听的连接。这可以帮助您解决与 IP 和端口相关的问题,特别是与某些网络服务绑定的问题。
Get-DnsClient
Set-DnsClientServer Address
此 cmdlet 允许您检查设备的 DNS 客户端信息。它将指示设备正在使用哪些 DNS 服务器来执行在多个适配器上配置的地址解析。Set-DnsClientServerAddress cmdlet 允许将指定的 DNS 服务器添加到网络配置中。
Clear-DnsClientCache
DNS 缓存有助于将经常使用的 DNS 解析记录存储在设备本地,允许设备读取该记录,而不是每次请求记录时都执行查找。这有助于加快本来就很快的解析过程。如果存在过时的记录(或尚未更新的记录),则可能会导致网络性能不佳、拒绝服务或安全问题,这些问题会试图利用不正确的记录将用户请求指向错误的服务器/服务。
Invoke-Command -ComputerName -ScriptBlock {ipconfig /release}
Invoke-Command -ComputerName -ScriptBlock {ipconfig /renew}
虽然 PowerShell 包含许多用于管理网络设置的 cmdlet,但没有直接的方法可以释放/续订 DHCP 租约,除非先引用另一个 cmdlet,然后将结果传输到第二个或第三个 cmdlet 才能修改 DHCP 设置。但是,通过利用 Invoke-Command,您可以通过调用 ipconfig 命令远程(或通过脚本)执行释放和/或续订。
Disable-NetAdapter -Name “Adapter Name”
Enable-NetAdapter -Name “Adapter Name”
最后但同样重要的是用于禁用/启用设备上的网络适配器的 cmdlet。虽然它不是上面列出的 cmdlet 那样花哨的解决网络问题的方法,但任何 IT 专业人士都会告诉你,有时解决网络问题的唯一方法就是将其关闭并重新打开。