zoukankan      html  css  js  c++  java
  • netsh

     

    NetSH (Network Shell) 是windows系统本身提供的功能强大的网络配置命令行工具。 导出配置脚本:netsh -c interface ip dump > c:interface.txt 导入配置脚本:netsh -f c:interface.txt
    外文名
    Network Shell
    简    称
    netsh
    类    别
    网络配置命令行工具
    导入配置脚本
    netsh -f c:interface.txt
     

    命令编辑

    C:>netsh ?
    用法: netsh [-a AliasFile] [-c Context] [-r RemoteMachine] [-u [DomainName]UserName] [-p Password | *] [Command | -f ScriptFile]
    进入NetSH环境后,在根级目录用exec命令也可以加载一个配置脚本。还有对winsock、route、ras等网络服务的配置也可以通过Netsh的内置命令操作。
    C:>netsh
    netsh>help
    下列指令有效:
    此上下文中的命令:
    .. - 移到上一层上下文级。
    ? - 显示命令列表。
    abort - 丢弃在脱机模式下所做的更改。
    add - 在项目列表上添加一个配置项目。
    alias - 添加一个别名
    bridge - 更改到 `netsh bridge' 上下文。
    bye - 退出程序。
    commit - 提交在脱机模式中所做的更改。
    delete - 在项目列表上删除一个配置项目。
    diag - 更改到 `netsh diag' 上下文。
    dump - 显示一个配置脚本。
    exec - 运行一个脚本文件
    exit - 退出程序。
    help - 显示命令列表。
    interface - 更改到 `netsh interface' 上下文。
    offline - 将当前模式设置成脱机。
    online - 将当前模式设置成联机。
    popd - 从堆栈上打开一个上下文。
    pushd - 将当前上下文放推入堆栈。
    quit - 退出程序。
    ras - 更改到 `netsh ras' 上下文。
    routing - 更改到 `netsh routing' 上下文。
    set - 更新配置设置。
    show - 显示信息
    unalias - 删除一个别名。
    winsock - 更改到 `netsh winsock' 上下文。
    下列的子上下文可用:
    bridge diag interface ras routing winsock
    若需要命令的更多帮助信息,请键入命令,
    后面跟 ?。
    netsh>

    概述编辑

    Netsh 是命令行脚本实用工具,它允许从本地或远程显示或修改当前正在运行的计算机的网络配置。
    Netsh 还提供了一个脚本功能,对于指定计算机,可以通过此功能以批处理模式运行一组命令。为了存档或配置其他服务器,Netsh 也可以将配置脚本保存在文本文件中。
    Netsh 命令的强大,有经验的管理员都不会怀疑;以前有很多介绍netsh命令的文章,今天我们从另一方面感受一下netsh命令的神奇。

    配置示例:管理学校机房编辑

    网络环境:
    ADSL接入,通过ISP上网,
    上网服务器:win2ks+isa2k
    IP:192.168.0.1
    subnetmask:255.255.255.0
    DNS为ISP的DNS IP:202.101.10.10
    客户机全部win2kpro(并装有还原卡
    IP:192.168.0.2---192.168.0.102
    subnetmask:255.255.255.0
    网关和DNS都为代理服务器的IP:192.168.0.1并且都装了ISA的防火墙客户端软件。
    学校规定:学生帐号登陆不能上Internet,而老师通过自己帐号登陆则可以连接Internet;
    多数情况下上网权限的控制,都是通过IP地址来实现(当然,ISA在AD的支持下是可以通过帐户来实现上网权限的控制,这不是本文讨论范围内),也就是说同一台电脑,学生用过后,如果老师使用时要Internet的话,就必须更改计算机的IP地址,但有些菜鸟老师更改,都教了N次了,还是不会......
    在默认情况下,客户机是全部不能上internet的,ISA的规则上是禁止192.168.0.2---192.168.0.102的IP上internet,另外在ISA再创建一规则,允许192.168.0.103-192.168.0.203上internet (这不是本文的重点,如果有需要,大家可以查看相关资料)。
    netsh派上用场了,我们客户机PC18上运行CMD进入MS-DOS,输入
    netsh -c interface ip dump > c:NetPC.TXT
    (该命令是显示当前”本地连接" 的接口IP 配置,并保存在NetPC.TXT文本文件中)
    查看一下c:NetPC.TXT这个文件,显示的是当前”本地连接”的接口的IP配置,是否跟用ipconfig /all命令,看到的一样的。
    {
    TPYE c:NetPC.TXT
    # ----------------------------------
    # 接口 IP 配置
    # ----------------------------------
    pushd interface ip
    # "本地连接" 的接口 IP 配置
    set address name="本地连接" source=static addr=192.168.0.18 mask=255.255.255.0
    set address name="本地连接" gateway=192.168.0.1 gwmetric=0
    set dns name="本地连接" source=static addr=192.168.0.1 register=PRIMARY
    add dns name="本地连接" addr=202.101.10.10 index=2
    set wins name="本地连接" source=static addr=none
    popd
    # 接口 IP 配置结束
    }
    我们打开NetPC.TXT这个文件,把“addr=192.168.0.18”的IP改为“addr=192.168.0.118”,再保存。
    然后,在老师帐户的桌面上创建一个IP.BAT文件,内容输入“netsh -f c:NetPC.TXT”(注意文件的路径,我们刚才是把NetPC.TXT放在C盘根目录下)。
    用老师的帐户登陆后,双击桌面上的IP.BAT文件,我们用ipconfig /all看看结果,显示IP地址换成192.168.0.118了,别的配置都没有变。
    我们知道192.168.0.103―192.168.0.203的IP地址是可以上网的。也就是说,如果老师想上网的话,只要双击IP.BAT这个文件就可以了;
    以上的设置是在PC18这台机器上做的,如果我们要在别的机器上设置,我们只在把NetPC.TXT这个文件的里的IP地址换成192.168.0.103-192.168.0.203范围内的IP(当然要保证使用的IP是唯一的,以免产生IP冲突),再新建一个IP.BAT文件,内容可以一样,不过要注意NetPC.TXT这个文件的路径;补允一点,老师帐户都为管理员组,学生帐户为普通用户组。
    通过以上设置,基本上达到我们的目的,老师上机的时候,只要双击桌面上IP.BAT这个文件,IP地址就会换成192.168.0.103―192.168.0.203这个网段的IP,也就是说可以上网了,电脑重启,因为有还原卡,机器又会被变成192.168.0.2―192.168.0.102这个网段的IP,也就不能上网了。通过netsh这个命令,我们能感觉到他的强大,可以为我们免去一些烦琐的事情。

    配置示例:笔记本设置wifi热点编辑

    在笔记本命令行下,利用netsh命令设置无线热点:
    1、netsh wlan show drivers //判断支持的承载网络:是
    2、netsh wlan set hostednetwork mode=allow ssid=热点名字 key=热点密码 //mode=allow启用虚拟WiFi网卡;mode=disallow可以直接禁用虚拟WiFi网卡。
    3、netsh wlan start hostednetwork //启动承载网络
    4、设置Internet共享。
    5、netsh wlan show hostednetwork //显示无线网络信息

    用法编辑

    [Note] netsh命令详解
    1>查看网络配置
    netsh interface ip show {选项}
    {选项}可以是:
    address - 显示 IP 地址配置。
    config - 显示 IP 地址和更多信息。
    dns - 显示 DNS 服务器地址。
    icmp - 显示 ICMP 统计。
    interface - 显示 IP 接口统计。
    ipaddress - 显示当前 IP 地址
    ipnet - 显示 IP 的网络到媒体的映射。
    ipstats - 显示 IP 统计。
    joins - 显示加入的多播组。
    offload - 显示卸载信息。
    tcpconn - 显示 TCP 连接。
    tcpstats - 显示 TCP 统计。
    udpconn - 显示 UDP 连接。
    udpstats - 显示 UDP 统计。
    wins - 显示 WINS 服务器地址。
    2>配置接口IP/网关IP
    netsh interface ip set address "本地连接" static 10.1.2.90 255.255.255.0 10.1.2.254 1
    C:>netsh interface ip show config
    接口 "本地连接" 的配置
    DHCP enabled: 否
    IP 地址: 10.1.2.90
    子网掩码: 255.255.255.0
    默认网关: 10.1.2.254
    GatewayMetric: 1
    InterfaceMetric: 0
    静态配置的 DNS 服务器: 202.99.160.68
    202.99.166.4
    静态配置的 WINS 服务器: 无
    用哪个前缀注册: 只是主要
    3>配置自动换取IP地址,DNS地址及wins地址
    netsh interface ip set address "本地连接" dhcp
    netsh interface ip set dns "本地连接" dhcp
    netsh interface ip set wins "本地连接" dhcp
    4>配置静态IP地址,DNS地址及wins地址
    netsh interface ip set address "本地连接" static 10.1.2.90
    netsh interface ip set dns "本地连接" static 202.99.160.68
    netsh interface ip set wins "本地连接" static 10.1.2.200
    5>查看网络配置文件
    C:>netsh -c interface dump
    #========================
    # 接口配置
    #========================
    pushd interface
    reset all
    popd
    # 接口配置结束
    #========================
    # 接口配置
    #========================
    pushd interface ipv6
    uninstall
    popd
    # 接口配置结束
    # ----------------------------------
    # ISATAP 配置
    # ----------------------------------
    pushd interface ipv6 isatap
    popd
    # ISATAP 配置结束
    # ----------------------------------
    # 6to4 配置
    # ----------------------------------
    pushd interface ipv6 6to4
    reset
    popd
    # 6to4 配置结束
    #=============
    # 端口代理配置
    #=============
    pushd interface portproxy
    reset
    popd
    # 端口代理配置结束
    # ----------------------------------
    # 接口 IP 配置
    # ----------------------------------
    pushd interface ip
    # "本地连接" 的接口 IP 配置
    set address name="本地连接" source=static addr=10.1.2.90 mask=255.255.255.0
    set address name="本地连接" gateway=10.1.2.254 gwmetric=1
    set dns name="本地连接" source=static addr=202.99.160.68 register=PRIMARY
    add dns name="本地连接" addr=202.99.166.4 index=2
    set wins name="本地连接" source=static addr=none
    popd
    # 接口 IP 配置结束
    6>导出网络配置文件
    netsh -c interface dump > d:1.txt
    7>导入网络配置文件
    netsh -f d:1.txt
    netsh exec d:2.txt
    Netsh命令行设置IP与DNS
    1.设置动态IP(DHCP自动获取IP)
    [span]netsh interface ip set address "本地连接" dhcp
    2.设置指定的IP,此处以设置本机IP为10.16.15.226,子网掩码为255.255.255.0,网关IP为10.16.15.1为例
    [span]netsh interface ip set address "本地连接" static 10.16.15.226 255.255.255.0 10.16.15.1
    3.设置动态DNS(DHCP自动获取DNS)
    [span]netsh interface ip set dns "本地连接" dhcp
    4.设置指定的DNS,此处以设置DNS为210.45.240.10为例
    [span]netsh interface ip set dns "本地连接"static 210.45.240.10

    防火墙编辑

    系统防火墙

    打开命令提示符输入输入命令“netsh firewall show state”然后回车可查看防火墙的状态,从显示结果中可看到防火墙各功能模块的禁用及启用情况。命令“netsh firewall set opmode disable”用来禁用系统防火墙,相反命令“netsh firewall set opmode enable”可启用防火墙。

    启用一个程序

    旧命令 : 新命令:
    netsh firewall add allowedprogram C: MyApp MyApp.exe "My Application" ENABLE
    netsh advfirewall firewall add rule name=”My Application” dir=in action=allow program=”C:MyAppMyApp.exe” enable=yesnetsh advfirewall firewall add rule name = "My Application" dir = in action = allow program = "C: MyApp MyApp.exe" enable = yes
    netsh firewall add allowedprogram program=C:MyAppMyApp.exe name="My Application" mode=ENABLE scope=CUSTOM addresses=157.60.0.1,172.16.0.0/16,LocalSubnet profile=Domainnetsh firewall add allowedprogram program = C: MyApp MyApp.exe name = "My Application" mode = ENABLE scope = CUSTOM addresses = 157.60.0.1,172.16.0.0 / 16, LocalSubnet profile = Domain
    netsh advfirewall firewall add rule name=”My Application” dir=in action=allow program=”C:MyAppMyApp.exe” enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=domainnetsh advfirewall firewall add rule name = "My Application" dir = in action = allow program = "C: MyApp MyApp.exe" enable = yes remoteip = 157.60.0.1,172.16.0.0 / 16, LocalSubnet profile = domain
    netsh firewall add allowedprogram program=C:MyAppMyApp.exe name="My Application" mode=ENABLE scope=CUSTOM addresses=157.60.0.1,172.16.0.0/16,LocalSubnet profile=ALLnetsh firewall add allowedprogram program = C: MyApp MyApp.exe name = "My Application" mode = ENABLE scope = CUSTOM addresses = 157.60.0.1,172.16.0.0 / 16, LocalSubnet profile = ALL
    运行以下命令:
    netsh advfirewall firewall add rule name=”My Application” dir=in action=allow program=”C:MyAppMyApp.exe” enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=domainnetsh advfirewall firewall add rule name = "My Application" dir = in action = allow program = "C: MyApp MyApp.exe" enable = yes remoteip = 157.60.0.1,172.16.0.0 / 16, LocalSubnet profile = domain
    netsh advfirewall firewall add rule name=”My Application” dir=in action=allow program=”C:MyAppMyApp.exe” enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=privatenetsh advfirewall firewall add rule name = "My Application" dir = in action = allow program = "C: MyApp MyApp.exe" enable = yes remoteip = 157.60.0.1,172.16.0.0 / 16, LocalSubnet profile = private
    有关如何添加防火墙规则的详细信息对于运行以下命令: netsh advfirewall firewall add rule?
  • 相关阅读:
    (转载)C++ string中find() ,rfind() 等函数 用法总结及示例
    UVA 230 Borrowers (STL 行读入的处理 重载小于号)
    UVA 12100 打印队列(STL deque)
    uva 12096 The SetStack Computer(STL set的各种库函数 交集 并集 插入迭代器)
    uva 1592 Database (STL)
    HDU 1087 Super Jumping! Jumping! Jumping!
    hdu 1176 免费馅饼
    HDU 1003 Max Sum
    转战HDU
    hust 1227 Join Together
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/4834811.html
Copyright © 2011-2022 走看看