Netsh 實用程式有如下指令模式:
聯機
聯機模式下,在 Netsh 指令提示符下釋出的指令被立即執行。
脫機
脫機模式下,将在 Netsh 指令提示符下積累釋出的指令,并通過釋出 commit 全局指令來按照批處理方式執行。
可以通過釋出 abort 全局指令 丢棄在脫機模式下所做的更改。
腳本
使用 -f 指令行選項,或在 Netsh 指令提示符下釋出 exec 全局指令,可以執行指定檔案中所有的 netsh 指令。
要建立目前配置的腳本,請使用 dump 全局指令。dump 指令根據 netsh
指令輸出目前運作的配置。可以使用該指令建立的腳本來配置新的伺服器或重新配置現有的伺服器。如果要對元件的配置作很大的更改,推薦您使用
dump 指令開始配置會話,以防在進行更改前需要還原配置。
Interface 指令
下表列出了可在 Windows 7 指令提示符下鍵入的 netsh 指令,這些指令用于管理運作 及"路由和遠端通路"服務的計算機上的接口設定。如果對某個特殊功能有多個指令,則在每個指令之間用斜線 (/) 分隔。
當在指令提示符下鍵入指令時,請在每個指令前加上 netsh。要獲得每個指令的精确文法,可在指令之後鍵入 ? 。選項例如,要獲得
netsh interface 指令的指令行"幫助",請在指令提示符下鍵入 netsh interface ? 。
在CMD下,輸入netsh進入。請求幫助輸入 ?
C:\Windows\system32>netsh
netsh>
netsh>?
下列指令有效:
此上下文中的指令:
.. - 移到上一層上下文級。
? - 顯示指令清單。
abort - 丢棄在脫機模式下所做的更改。
add - 在項目清單上添加一個配置項目。
advfirewall - 更改到 `netsh advfirewall' 上下文。
alias - 添加一個别名
branchcache - 更改到 `netsh branchcache' 上下文。
bridge - 更改到 `netsh bridge' 上下文。
bye - 退出程式。
commit - 送出在脫機模式中所做的更改。
delete - 在項目清單上删除一個配置項目。
dhcpclient - 更改到 `netsh dhcpclient' 上下文。
dnsclient - 更改到 `netsh dnsclient' 上下文。
dump - 顯示一個配置腳本。
exec - 運作一個腳本檔案。
exit - 退出程式。
firewall - 更改到 `netsh firewall' 上下文。
help - 顯示指令清單。
http - 更改到 `netsh http' 上下文。
interface - 更改到 `netsh interface' 上下文。
ipsec - 更改到 `netsh ipsec' 上下文。
lan - 更改到 `netsh lan' 上下文。
mbn - 更改到 `netsh mbn' 上下文。
namespace - 更改到 `netsh namespace' 上下文。
nap - 更改到 `netsh nap' 上下文。
netio - 更改到 `netsh netio' 上下文。
offline - 将目前模式設定成脫機。
online - 将目前模式設定成聯機。
p2p - 更改到 `netsh p2p' 上下文。
popd - 從堆棧上打開一個上下文。
pushd - 将目前上下文放入堆棧。
quit - 退出程式。
ras - 更改到 `netsh ras' 上下文。
rpc - 更改到 `netsh rpc' 上下文。
set - 更新配置設定。
show - 顯示資訊。
trace - 更改到 `netsh trace' 上下文。
unalias - 删除一個别名。
wcn - 更改到 `netsh wcn' 上下文。
wfp - 更改到 `netsh wfp' 上下文。
winhttp - 更改到 `netsh winhttp' 上下文。
winsock - 更改到 `netsh winsock' 上下文。
wlan - 更改到 `netsh wlan' 上下文。
下列的子上下文可用:
advfirewall branchcache bridge dhcpclient dnsclient firewall http interface ipsec lan mbn namespace
nap netio p2p ras rpc trace wcn wfp winhttp winsock wlan
若需要指令的更多幫助資訊,請鍵入指令,接着是空格,後面跟 ? 。
附:擷取“接口名稱”或者“接口索引”
接口名稱:
C:\Users\Degui>ipconfig |more
Windows IP 配置
無線區域網路擴充卡 無線網絡連接配接:
連接配接特定的 DNS 字尾 . . . . . . . :
自動配置 IPv4 位址 . . . . . . . : 169.254.103.83
子網路遮罩 . . . . . . . . . . . . : 255.255.0.0
預設網關. . . . . . . . . . . . . :
或者
C:\Windows\system32>netsh int ip show inter
Idx Met MTU 狀态 名稱
--- ---------- ---------- ------------ ---------------------------
13 30 1500 connected 無線網絡連接配接
接口索引:
C:\Users\Degui>route print
===========================================================================
接口清單
13...1c 65 9d fe 60 e3 ......Realtek RTL8191SE 802.11b/g/n WiFi Adapter
13 30 1500 connected 無線網絡連接配接
常用指令:
1、interface
6to4 - 更改到 `netsh interface 6to4' 上下文。
httpstunnel - 更改到 `netsh interface httpstunnel' 上下文。
ipv4 - 更改到 `netsh interface ipv4' 上下文。
ipv6 - 更改到 `netsh interface ipv6' 上下文。
isatap - 更改到 `netsh interface isatap' 上下文。
portproxy - 更改到 `netsh interface portproxy' 上下文。
set - 設定配置資訊。
tcp - 更改到 `netsh interface tcp' 上下文。
teredo - 更改到 `netsh interface teredo' 上下文。
1)enable/disable 接口
netsh interface>set inter ?
用法:set interface [name = ] IfName [ [admin = ] ENABLED|DISABLED [connect = ] CONNECTED|DISCONNECTED
[newname = ] NewName ]
示例:
set interface name="Local Area Connection" admin=DISABLED
set interface name="Local Area Connection" newname="Connection 1"
①netsh interface>set inter 無線網絡連接配接 dis -------禁用接口
②netsh interface>set inter 無線網絡連接配接 ena -------啟用接口
2)ipv4配置
①netsh interface ipv4>set add 13 static 1.1.1.1 255.0.0.0 1.1.1.2 --------設定接口位址1.1.1.1 網關1.1.1.2
netsh interface ipv4>set add 無線網絡連接配接 static 1.1.1.1 255.0.0.0 1.1.1.2
用法: set address [name=]<string>[[source=]dhcp|static] [[address=]<IPv4 address>[/<integer>] [[mask=]<IPv4 mask>] [[gateway=]<IPv4 address>|none [gwmetric=]<integer>]
[[type=]unicast|anycast]
[[subinterface=]<string>]
[[store=]active|persistent]
set address name="Local Area Connection" source=dhcp
set address "Local Area connection" static 10.0.0.9 255.0.0.0 10.0.0.1 1
②netsh interface ipv4>set dns 13 static 8.8.8.8 pri --------設定dns為8.8.8.8
用法: set dnsservers [name=]<string> [source=]dhcp|static [[address=]<IP address>|none] [[register=]none|primary|both] [[validate=]yes|no]
set dnsservers name="Local Area Connection" source=dhcp
set dnsservers "Local Area Connection" static 10.0.0.1 primary
③netsh interface ipv4>add route 172.0.0.0/8 13 1.1.1.10 -----------增加路由
用法: add route [prefix=]<IPv4 address>/<integer> [interface=]<string>
[[nexthop=]<IPv4 address>] [[siteprefixlength=]<integer>]
[[metric=]<integer>] [[publish=]no|age|yes]
[[validlifetime=]<integer>|infinite]
[[preferredlifetime=]<integer>|infinite]
add route 10.2.0.0/16 "Internet" 10.0.0.1
注意add和set的差別!!
netsh interface ipv4>add ?
add address - 将靜态 IP 位址或預設網關添加到指定接口。
add dnsservers - 添加一個靜态 DNS 伺服器位址。
add neighbors - 添加鄰居位址。
add route - 在接口上添加路由。
add winsservers - 添加一個靜态 WINS 伺服器位址。
netsh interface ipv4>set ?
set address - 設定通向接口的 IP 位址或預設網關。
set compartment - 修改分段配置參數。
set dnsservers - 設定 DNS 伺服器模式和位址。
set dynamicportrange - 修更改态端口配置設定所使用端口的範圍。
set global - 修改全局配置正常參數。
set interface - 修改 IP 的接口配置參數。
set neighbors - 設定鄰居位址。
set route - 修改路由參數。
set subinterface - 修改子接口配置參數。
set winsservers - 設定 WINS 伺服器模式和位址。
netsh interface ipv4>show ?
show addresses - 顯示 IP 位址配置。
show compartments - 顯示分段參數。
show config - 顯示 IP 位址和其他資訊。
show destinationcache - 顯示目标緩存項目。
show dnsservers - 顯示 DNS 伺服器位址。
show dynamicportrange - 顯示動态端口範圍配置參數。
show global - 顯示全局配置普通參數。
show icmpstats - 顯示 ICMP 統計。
show interfaces - 顯示接口參數。
show ipaddresses - 顯示目前 IP 位址。
show ipnettomedia - 顯示 IP 的網絡到媒體的映射。
show ipstats - 顯示 IP 統計。
show joins - 顯示加入的多點傳播組。
show neighbors - 顯示鄰居緩存項。
show offload - 顯示解除安裝資訊。
show route - 顯示路由表項目。
show subinterfaces - 顯示子接口參數。
show tcpconnections - 顯示 TCP 連接配接。
show tcpstats - 顯示 TCP 統計。
show udpconnections - 顯示 UDP 連接配接。
show udpstats - 顯示 UDP 統計。
show winsservers - 顯示 WINS 伺服器位址。
netsh interface tcp>add
add chimneyapplication - 将應用程式添加到 TCP 煙囪解除安裝表中。
add chimneyport - 将源端口、目标端口篩選器添加到 TCP 煙囪解除安裝表中。
netsh interface tcp>set
set global - 設定全局 TCP 參數。
set heuristics - 設定啟發 TCP 參數。
set security - http://go.microsoft.com/fwlink/?LinkID=152840
2、advfirewall
netsh advfirewall firewall>?
add - 添加新入站或出站防火牆規則。
delete - 删除所有比對的防火牆規則。
set - 為現有規則的屬性設定新值。
show - 顯示指定的防火牆規則。
若需要指令的更多幫助資訊,請鍵入指令,接着是空格,後面跟 ?。
1)增加過濾規則
netsh advfirewall firewall>add rule ?
用法: add rule name=<string>
dir=in|out
action=allow|block|bypass
[program=<program path>]
[service=<service short name>|any]
[description=<string>]
[enable=yes|no (default=yes)]
[profile=public|private|domain|any[,...]]
[localip=any|<IPv4 address>|<IPv6 address>|<subnet>|<range>|<list>]
[remoteip=any|localsubnet|dns|dhcp|wins|defaultgateway|
<IPv4 address>|<IPv6 address>|<subnet>|<range>|<list>]
[localport=0-65535|<port range>[,...]|RPC|RPC-EPMap|IPHTTPS|any (default=any)]
[remoteport=0-65535|<port range>[,...]|any (default=any)]
[protocol=0-255|icmpv4|icmpv6|icmpv4:type,code|icmpv6:type,code|
tcp|udp|any (default=any)]
[interfacetype=wireless|lan|ras|any]
[rmtcomputergrp=<SDDL string>]
[rmtusrgrp=<SDDL string>]
[edge=yes|deferapp|deferuser|no (default=no)]
[security=authenticate|authenc|authdynenc|authnoencap|notrequired
(default=notrequired)]
為不具有封裝的 messenger.exe 添加入站規則:
netsh advfirewall firewall add rule name="allow messenger"
dir=in program="c:\programfiles\messenger\msmsgs.exe"
security=authnoencap action=allow
為端口 80 添加出站規則:
netsh advfirewall firewall add rule name="allow80"
protocol=TCP dir=out localport=80 action=block
為 TCP 端口 80 通信添加需要安全和加密的入站規則:
netsh advfirewall firewall add rule
name="Require Encryption for Inbound TCP/80"
protocol=TCP dir=in localport=80 security=authdynenc
action=allow
為 messenger.exe 添加需要安全的入站規則:
dir=in program="c:\program files\messenger\msmsgs.exe"
security=authenticate action=allow
為 SDDL 字元串辨別的組 acmedomain\scanners 添加
經過身份驗證的防火牆跳過規則:
netsh advfirewall firewall add rule name="allow scanners"
dir=in rmtcomputergrp=<SDDL string> action=bypass
security=authenticate
為 udp- 的本地端口 5000-5010 添加出站允許規則
Add rule name="Allow port range" dir=out protocol=udp localport=5000-5010 action=allow
①拒絕本機 any 到 100.1.1.1 的icmp封包
netsh advfirewall firewall>add rule name=degui dir=out proto=icmpv4 local=any remote=100.1.1.1/32 acti=block
//注意,如果dir=in,同樣的規則不能達到禁止ping 100.1.1.1的效果,應該是因為防火牆規則是預設放行從本機出去封包的回程封包。
注意,block/any/icmpv4這些參數不能簡寫,protocol、localip這些可以簡寫。
2)删除過濾規則
netsh advfirewall firewall>del rule ?
用法: delete rule name=<string>
[dir=in|out]
[localport=0-65535|<port range>[,...]|RPC|RPC-EPMap|any]
[remoteport=0-65535|<port range>[,...]|any]
tcp|udp|any]
注釋:
- 删除按名稱識别的規則,也可按終結點、端口、
協定和類型識别規則
- 如果找到多個比對項,則删除所有比對規則。
- 如果指定 name=all,則從指定的
類型和配置檔案中删除所有規則。
删除本地端口 80 的所有入則:
netsh advfirewall firewall delete rule name=all protocol=tcp localport=80
删除名為 "allow80" 的規則:
netsh advfirewall firewall delete rule name="allow80"
②删除剛剛那條規則《拒絕本機 any 到 100.1.1.1 的icmp封包》
netsh advfirewall firewall>del rule degui