netsh

網路配置命令行工具

netsh(Network Shell)是一個windows系統本身提供的功能強大的網路配置命令行工具。導出配置腳本:netsh-c interface ip dump>c:\interface.txt導入配置腳本: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命令的神奇。
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" ENABLEnetsh advfirewall firewall add rule name=”My Application” dir=in action=allow program=”C:\MyApp\MyApp.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:\MyApp\MyApp.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 = 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=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:\MyApp\MyApp.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:\MyApp\MyApp.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:\MyApp\MyApp.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?