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