netsh命令已经推出很长时间,在Windows 2000/XP/2003中均带有Netsh命令。Windows Server 2008只是对netsh的参数项做了些扩展。日常工作中,很多管理员对netsh了解不多,甚至不知道在Windows Server 2008中netsh增强了哪些功能。通过阅读本文,Windows管理员可以找到上面所列问题的答案。
一、什么是 Netsh?
微软Windows的netsh是一个命令行脚本实用工具。使用netsh工具 ,可以查看或更改本地计算机或远程计算机的网络配置。
不仅可以在本地计算机上运行这些命令,而且可以在网络上的远程计算机上运行。
可以手动运行Netsh命令,或创建批处理文件或脚本实现过程的自动化。netsh提供了脚本功能,让您在批处理模式下针对指定的计算机,运行一组命令。利用netsh ,可以将配置脚本保存为文本文件,便于存档或用于配置其他的计算机。
二、Windows Server 2008 netsh 和 Windows xp netsh对比
即使在核心命令级别,Windows XP版本的netsh和Windows Server 2008的netsh也存在着一些差别。为了比较这些,我们可以在每个操作系统中运行“netsh /?”。虽然Windows XP比Windows Server 2008多了个“routing”选项,但是Windows Server 2008比windows XP下的netsh的选择项多了更多的内容,具体如下:
* dhcp
* dhcpclient
* http
* ipsec
* lan
* nap
* netio
* rpc
* winhttp
从上面这个列表中,可以看到,在Windows Server 2008中,有着更多的选择项。
三、管理员常用到的netsh 十大命令
接下来,让我们开始介绍一些系统管理员常用到的netsh 命令。
#10 –如何获得帮助信息
每个Windows管理员应该知道如何获得netsh的帮助信息 。这其实很容易——只要使用“/?”选项。例如,要显示所有的netsh内容情况(选项类别) ,只需输入netsh/?,如图1所示:
*** 图1: netsh /? 帮助选项执行结果
在上图中,可以选择一个上下文,通过上下文中的配置项引导下一步操作。例如,输入netsh lan/? ,可以看到如图2所示的界面:
*** 图2: netsh lan /?的执行结果
从上面显示的信息,可以继续指导我们继续操作:
netsh lan show /?
从返回信息中,我们可以知道,要显示网卡信息,可以用以下命令:
netsh lan show interfaces
通过多次使用带/? 的netsh命令,能够引导使用许多netsh命令,最终达到我们的操作目标。
#9 –支持远程计算机的名称和登陆凭证
netsh命令的执行参数中,支持提供远程计算机名称、IP地址和密码凭据。其中选项“-r”表示机器名,“-U”表示用户名,“-p”表示密码。
下面我们来看一个例子:
netsh -r WinXP-1 -u winxp-1\administrator -p My!Pass1 interface ip show config
这个例子提供了远程计算机的名称,远程用户名和密码,以便通过网络远程执行命令。只要远程计算机支持这一命令(不同的操作系统将使用各种不同的命令),都可以执行。
#8 - 在交互模式下或者脚本模式下运行
netsh命令既可以交互运行,手动输入命令,也可以在脚本中使用。如果想在本地机器或远程机器通过手动方式一步一步输入命令的话,只要在命令行中输入netsh,你会看到以下界面:
netsh>
在netsh>提示符下,可以输入想调用的所有的netsh命令,甚至告诉netsh连接到远程计算机。
另一方面,可以使用的netsh -f ,指定netsh所使用的脚本名称。
#7 –打开防火墙的端口
netsh命令可以快速、方便地打开一个防火墙的端口。比如下面这个例子,将打开445端口:
netsh firewall set portopening tcp 445 smb enable
如果该命令执行成功,将得到“Ok.”的回应消息。
#6 –当前的网络配置的导入与导出
netsh命令可以很轻松地导入和导出您的IP地址配置。与GUI界面下操作不同的是,如果要导出配置信息,需要输入以下命令:
netsh –c interface dump > test.txt
*** 图3: 导出并查看IP 地址的配置信息
稍后在同一台计算机上或者不同的机器上,可以使用以下命令,导入此配置文件:
netsh –f test.txt
#5 –尝试Netsh 命令最新的用法
Windows Server 2008中的许多新功能,都涉及到了netsh命令。 以下是Windows Server 2008系统中netsh命令的新类别:
* dhcp
* dhcpclient
* http
* ipsec
* lan
* nap
* netio
* rpc
* winhttp
我们不仅可以设置DHCP客户端,而且可以设置DHCP服务器。还可以配置IPSec加密、网络接入保护(NAP)客户端等等......
当服务器上新增了些角色之后,将会看到更多的上下文。例如,如果在Windows Server 2008增加了个网络策略服务器的角色,netsh配置项的上下文将多了个“nps”。
#4 – TCP/IP问题排查和网卡修复
使用netsh,可以排查和重置TCP/IP网卡。我们看下面几个例子:
* 重置所有IP协议栈的配置信息并输出日志文件——netsh int ipv4 reset resetlog.txt
* 安装TCP / IP协议——netsh int ipv4 install
* 卸载TCP / IP协议——netsh int ipv4 uninstall
#3 –配置windows 高级防火墙
在Windows Server 2008和Windows Vista中,可以使用新的advfirewall网络方面的设置,来配置双向的Windows高级防火墙。当然,也可以设定为传统的Windows防火墙。下面是一些例子:
* 显示所有的防火墙规则 —— netsh advfirewall firewall show rule name=all
* 删除与21端口相关的所有高级防火墙规则 —— netsh advfirewall firewall delete name rule name=all PRotocol=tcp localport=21
* 导出Windows高级防火墙设置 —— netsh advfirewall export “c:\advfirewall.wfw”
也许最经常用到的命令是启用或禁用Windows防火墙,可以使用以下命令:
netsh firewall set opmode disable 或者是:
netsh firewall set opmode enable
#2 –配置无线设置
在Windows Server 2008和Windows Vista中,可以利用netsh wlan命令,来配置无线网络的配置文件,连入无线网络。下面我们来看几个例子:
* 连接到一个已定义的无线网络—— netsh wlan connect ssid=”mySSID” name=”WLAN-Profil1”
* 查看当前的无线设置——netsh wlan show settings
* 新增一个无线网络的配置文件——netsh wlan add profile filename="Wireless Network Connection-BOW.xml"
#1 – 配置IP地址和网络设置
正如netsh英文缩写(network shell)一样,netsh的最初目的,就是用来配置网络的基本参数。下面我们看一些例子:
* 查看网卡的IP地址—— netsh interface ip show config
* 设置网卡的IP地址使用DHCP—— netsh interface ip set address name="Local Area Connection" source=dhcp
* 设置网卡的IP地址使用一个静态IP地址- netsh interface ip set address "Local Area connection" static 10.0.0.9 255.0.0.0 10.0.0.1 1
* 增加DNS服务器设置- netsh interface ip add dnsserver "Local Area Connection" 10.0.0.1
四、小结
netsh命令行实用工具一直是Windows系统管理员的一个功能非常强大的工具。在Windows Server 2008和Windows Vista中,随着新特性的增加,netsh的功能将更为强大和灵活,本文介绍的10个命令,对于管理员日常工作中遇到麻烦的时候,应该有所帮助。