NETSH是Windows網絡工具包中最強大的工具之一。下面介紹NETSH在各種情況下的一些優秀用法,說明如何簡化網絡配置、管理和文件資料。
1:NETSH是什么?
NETSH是Windows 2000和Windows Server 2003中最強大但不太為人所知的一個工具。它被默認安裝,位于系統根目錄的system32文件夾內。Windows XP中同樣含有NETSH工具。
NETSH幫助你顯示、修改、輸入和輸出系統網絡參數的許多元素。它還能通過遠程機器參數(-r)遠程連接其它系統。
2:NETSH上下文
上下文指NETSH能夠管理的網絡配置的特殊因素。NETSH中的命令和選項對上下文敏感,同樣的命令可能存在于多個上下文區域內,并且每種上下文的命令和結果各不相同。下面為Windows Server 2003的NETSH上下文區域:
上下文——說明
aaaa – 驗證、授權、審核與審計
dhcp – DHCP服務器管理
diag – OS和網絡服務參數
interface – NIC配置;包括子上下文
ipsec – 可供選擇的IP服務參數
netsh bridge – 網絡橋接配置
ras – 遠程訪問服務器配置
routing – 路由管理(不是RRAS)
rpc – 子網和接口設置
wins – Windows互聯網域名服務管理
現在,上下文可能還有子上下文,使得問題更加復雜。例如,接口上下文有三個子上下文:ip、ipv6和portproxy。NETSH把這些子上下文作為上下文引用,如netshet接口ip上下文。注意,Windows XP有一組不同的上下文。在非交互模式下使用輸入和輸出操作時,你必須指定上下文或子上下文配置。
3:用NETSH協調網絡變更控制
你可以使用NETSH輸入和輸出網絡配置。使用NETSH進行網絡變更控制就是一個典型的例子。如果要將一個系統安裝到另一個網絡中,但需要維持與其它系統的通信通道,NETSH輸出將允許各個系統同意使用各種網絡設置。例如,下面是一個轉儲操作的接口上下文NETSH輸出的一部分。
set address name = "Teamed NIC" source = static addr = 10.64.32.100 mask = 255.255.252.0
set address name = "Teamed NIC" gateway = 10.25.44.1 gwmetric = 1
set dns name = "Teamed NIC" source = static addr = 10.64.22.50
add dns name = "Teamed NIC" addr = 10.95.61.22
add dns name = "Teamed NIC" addr = 10.95.45.34
set wins name = "Teamed NIC" source = static addr = 10.95.45.70
add wins name = "Teamed NIC" addr = 10.95.45.25
檢查一個包含各部分在內的NETSH輸出可以確保使用正確DNS、WINS和子網掩碼對系統進行了正確路由。最大的優點在于,在完成所有適當的條目后,你可以將整個文件輸入Windows系統中,并且不會輸入任何錯誤信息。這只能用于接口上下文,也同樣可用于所有其它上下文腳本。
4:用NETSH動態改變TCP/IP地址
你可以用NETSH動態修改IP地址,簡單輸入一個文件,就可將一個靜態IP地址修改為DHCP。NETSH還能完成整個第3層配置(TCP/IP地址、DNS設置、WINS設置、IP別名等)。當你在網絡上工作卻沒有DHCP,但有一臺連接幾個網絡的移動計算機,其中一些網絡有DHCP,此時應用這項功能就十分方便。使用NETSH快捷方式更優于Windows的自動公共IP尋址功能。下面是一個動態更新IP地址的實例:
C:NETSH -f filename.netsh
在這個例子中,filename.netsh為包含一個接口轉儲配置的NETSH文件。在Windows中,你可以把快捷方式建成一個.BAT批處理文件,它將運行上面的命令,以便你能方便地增加快捷方式,獲得一個DHCP地址,并轉換到一個客戶網站、DMZ網絡或其它靜態IP網絡的靜態IP地址。
5:最佳實踐:使用.NETSH后綴名
NETSH輸入和輸出操作為本地普通文本格式,能夠用任何文本工具閱讀和編輯。但是,NETSH文件應作為一種特殊的文件類型處理,因為它們記錄網絡配置,并用來進行輸入輸出處理。最好的辦法是把所有的輸出操作提交到一個FILE.NETSH文件中,用這個文件保存NETSH的輸出內容。這樣,即使初學者也能夠知道文件的內容。
輸出(轉儲)和輸入(-f)操作文件擴展名完全由用戶指定。為了方便,你可以把.NETSH擴展名和Windows安裝結合起來,從而實現本地雙擊編輯。
6:交互模式NETSH
NETSH是一個能夠在交互或非交互模式下運行的Windows工具。根據所選擇的模式,交互工具(如nslookup和dnscmd)的用法各不相同。
交互模式還有兩個子模式:在線和離線模式。在交互模式下,在線模式直接與網絡組件進行交互。離線模式允許你進行交互修改,再進入在線模式,使修改立即上線。
7:非交互模式
在非交互模式下,你可以輸入一個文件來執行NETSH命令。進行文件輸入和輸出操作時,推薦使用非交互模式。在非交互模式下,你可以用NETSH輸入每個上下文的關鍵設置,把它作為系統文件的一個特殊部分。另外,如果出現問題,你可以回溯到某個特殊的網絡主題,因為NETSH輸出了一個已知工作時間的腳本,你可以在非交互模式下重新輸入這個NETSH腳本,還原那個時間的網絡功能。請注意,NETSH并不備份上下文中的數據,如WINS數據庫。
8:解釋腳本
交流NETSH腳本時,你可以插入注釋請求反饋。這允許你說明一個條目,或使用它對其他人進行培訓。在一個NETSH輸出文件中插入REM增加注釋。但是,不要添加太多注釋,僅在必要的地方增加注釋。
9:NETSH警告
NETSH是一個強大的工具,應該小心使用。使用交互在線模式(默認模式)進行修改比在交互離線模式下進行修改后再上線提交修改具有更大的風險。但是,使用非交互模式進行修改的情況也很普遍,因為所做的修改能夠寫入腳本。因此,應在虛擬機上試用NETSH或首先進行系統測試。
10:導航NETSH
最初,NETSH的大量特性可能讓你難以適從。進入NETSH查看它的選項,并練習在交互模式下如何使用接口(那些習慣非交互模式的用戶可能覺得有些不一樣),會對你有所幫助。進入交互模式下的NETSH相當簡單:在命令提示符下輸入NETSH即可。然后,使用下面這些指導來導航這個命令的選項:
改變到另一個上下文,輸入上下文的名稱:例如,輸入interface ip將從你現在所在的上下文直接進入接口ip上下文。
改變模式,輸入offline或online:輸入offline將使交互任務離線,那么任何修改都不會立即發生;輸入online將使交互任務上線,任何改變將立即對系統的網絡因素生效。
輸入show mode將顯示當前的模式(離線或在線)。默認的模式為在線;因此,如果你在進行測試,一定要保證你立即轉入離線模式。
輸入?或help將顯示當前上下文位置的有效命令。如果你處于這個工具的根位置,就不存在活動的上下文,你的工具接口為netsh>提示符。
通用命令,如online和quit,是指你可以隨處使用的命令。上下文命令僅在當前上下文有效。例如,使用netsh interface ip> context,你可以運行show dns命令查看網絡配置,但這個命令不能在其它上下文或子上下文中運行。