使用 Netsh 管理遠程服務器和工作站
譯文Windows的網絡外殼(Netsh)也許是通過命令提示符查看或管理網絡相關設備的一種好方法。你可以用它來運行一次性命令,也可以利用腳本實現一定的自動化。而且正如我們今天所要討論的,Netsh還可以用來管理遠程工作站和服務器。
使用 Netsh 的遠程功能
Netsh的內置遠程功能讓你可以將命令發送到網絡上的一個個機器上。你可以指定想在哪個遠程機器上運行命令或腳本,只要插入-r選項。必要的話,你還可以指定遠程連接所使用的登錄證書:-u表示遠程機器的用戶名,-p則表示密碼。
打開命令提示符,輸入下面這個命令,即可訪問遠程機器上的Netsh CLI(命令行接口):
- netsh -r hostname -u domain\admin -p password
一旦你確定可以獲得遠程訪問權,還可以直接運行netsh命令。比如說,這個命令表明了如何獲取IP配置:
- netsh -r hostname -u domain\admin -p password interface ip show config
至于-r選項,除了遠程機器的主機名稱外,你還可以使用IP地址或FQDN。
如果你在連接遠程機器時遇到了問題,就要確保Remote Registry(遠程注冊表)服務在遠程機器上運行。要是沒有運行,那么Windows可能會顯示“Network Path Not Found”(網絡路徑未找到)的錯誤信息。另外,要確保File and Printer Sharing for Microsoft Networks(微軟網絡的文件和打印機共享)在遠程機器的網絡連接屬性中已被啟用。與往常一樣,確保沒有任何防火墻阻止流量。
要是連接問題依然存在,不妨試試下面編輯注冊表的做法:
1.打開遠程機器上的RegEdit,瀏覽至HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System。
2. 添加一個新的DWORD值,名為“LocalAccountTokenFilterPolicy”;要是該值之前并不存在,就要確保其值被設為“1”。
3. 重啟遠程機器。
通過 psexec 使用 Netsh
Netsh 缺少一種簡易的方法來同時管理多個遠程機器。雖然你可以另辟蹊徑使用內置的遠程功能,比如把多個遠程地址一起放入到批文件及其他腳本中,但你采用其他選項可能更好。
比如說,使用來自Windows Sysinternals網站的PsExec實用程序(http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx),你可以將Netsh(或其他任何命令)同時分發到多個機器上。
一旦你下載了PsExec,打開命令提示符,進入到含有它的那個文件夾,試一試下面這個命令,訪問遠程機器的CLI:
- psexec \\hostname -u domain\admin -p password cmd
如果遠程機器安裝的操作系統是Windows Vista或更高版本,你可能需要使用-h選項,讓進程在使用帳戶的提升令牌(elevated token)這一情況下運行。
一旦你確認能獲得遠程訪問權,還可以直接運行netsh命令,比如說:
- psexec \\hostname -u domain\admin -p password cmd.exe /c netsh.exe interface ip show config
如果不需要交互式CLI――比如說,如果你在運行并不提出輸出的命令,可以考慮為psexec添加–d選項。這個選項表明它并不等待進程結束。另一方面,如果你想讓該程序在遠程機器的桌面上具有交互性,可以考慮使用-i選項。