netsh

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命令的神奇。

配置示例

:管理學校機房

網路環境:

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:\MyApp\MyApp.exe” enable=yes netsh 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=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 = 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=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 = 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=ALL 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 = 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=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 = 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=private 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 = private

有關如何添加防火牆規則的詳細信息對於運行以下命令: netsh advfirewall firewall add rule?

相關詞條

相關搜尋

熱門詞條

聯絡我們