服务器 频道

用Netshell管理Win2003网络服务(上)

    【IT168 专稿】微软从 Windows 95 操作系统开始,向来就是标榜着以友善的操作接口来驾驭您的操作系统,但是您可能发现微软从Windows Server 2000 开始,一直到Windows Server 2003 的操作系统发展中,却陆陆续续的出现许多文字接口命令工具,这些文字接口命令工具包含AD 管理命令工具、磁盘驱动器管理命令工具、DNS 管理命令工具等等。而管理者甚至可以使用这些命令工具来代替大部分的图形化接口操作,但这并不代表微软的操作系统正在走回头路,或甚至想与UNIX 、Linux 的操作系统统一苗头,让管理者可以在微软的作业系统当中享受经由快速的敲击键盘来达到组态系统的快感,若是您这样想,那您就误会了。

    事实上,命令工具在某些管理应用上甚至会比图形接口还来得恰当,甚至方便快速,因为工具命令有其图形接口上无法取代的优点,例如:工具命令较适合工作于低速网络连结环境中(如:Telnet )执行管理工作,或是应用在大量的批次化的作业需求时。因此,笔者将在本文中介绍一支让使用者在设置TCP/IP 与TCP/IP 相关服务的强大管理工具─Netsh.exe 。

一、什么是 Netsh?

    netsh工具在Windows2000/2003文档中称作NetShell。NetShell提供了一个界面,或命令模式,具可配置的环境。NetShell的功能和用途部分来源于它基于上下文的设计,新的上下文可由定制的DLLS提供,部分来源于提供的上下文,部分来源于脚本的使用。netsh实用程序可工作于在线、离线、脚本三种模式下。要使用脚本模式,可用-f选项指定一个脚本文件,或者在netsh提示符下使用exec命令执行脚本。

    netsh命令是一个基于命令行的脚本编写工具,你可以使用此命令配置和监视Windows系统,此外它还提供了交互式网络外壳程序接口,简单的说它是一个可以让网络服务器管理员用来在命令提示字符下设定并监视 Windows 2000 及Windows Server 2003 下执行的程序。除此之外,Netsh.exe 工具还可以用来管理及设定相关的网络服务,而Netsh 之所以能用来管理系统网络服务,它的原理是:Netsh 工具本身能将所输入的内容命令整合于现有的操作系统网络服务当中,而这样的原理其实是利用导向的功能;Netsh 能将所输入的命令参数藉由导向功能将相关参数导向至适当的协助程序当中,再由该「协助程序」来执行命令,Netsh 使用动态链接库 (DLL) 文件来与其他操作系统组件交互。每个 Netsh 帮助程序 DLL 都提供一组称为上下文的扩展功能,这是网络组件专用的一组命令。这些上下文通过为一个或多个服务、实用工具或协议提供配置和监视支持来扩展 netsh 的功能。例如,Dhcpmon.dll 将为 netsh 提供配置和管理 DHCP 服务器所必需的上下文和命令组。当您想利用 Netsh工具来协助管理 DHCP 这个网络服务时,Netsh 就会将管理者所输入的相关参数设定,经由 Netsh 的导向能力导向至 mdhcp.dll,以便可以让管理者管理相关的网络服务。

    Netsh.exe 工具到底可以协助网管人员哪些工作,大致包括如下:

    1. 设定网络卡接口上的TCP/IP 工作状态。
    2. 设定路由通讯协议。
    3. 设定筛选器。
    4. 设定路由。
    5. 设定 Windows 2000 /2003下执行的远程访问路由器的远程访问设定。
    6. 显示目前在任何计算机上执行路由器的设定。
    7. 设置Windows 2000 /2003防火墙。
    更加详细的netsh命令列表见图1。使用命令:“netsh ?”
 

图1 全部netsh命令列表

二、Netsh运行两种方式

    1.从cmd.exe命令提示符号运行netsh命令

    netsh [-a AliasFile] [-c Context] [-r RemoteMachine][Command | -f ScriptFile]

    主要参数说明:

    -a:运行 AliasFile 后返回到 netsh 命令提示符。
    AliasFile: 指定包含一个或多个 netsh 命令的文本文件的名称。
    -c :更改到指定的 netsh 上下文。
    Context: 指定 netsh 上下文。下表将列出可用的 netsh 上下文。
    -r :配置远程计算机。
    RemoteComputer: 指定要配置的远程计算机。
    NetshCommand :指定要运行的 netsh 命令。
    -f :运行脚本后退出 Netsh.exe。
    ScriptFile: 指定要运行的脚本。
    /? :在命令提示符下显示帮助。
    Netsh的上下文描述见表-1:


 

    2.从 Netsh.exe 命令提示符运行 Netsh 命令

    Netsh 在可从 Netsh.exe 命令提示符(即 netsh>)运行的所有上下文中使用下列标准命令。要在远程 Windows 2000 Server 上运行这些 Netsh 命令,必须首先使用“远程桌面连接”连接到运行终端服务器的 Windows 2000 Server。Windows 2000 和 Windows Server 2003 系列成员上的 Netsh 上下文命令之间可能存在功能性差异。命令格式如下:

    主要参数:
    /? :在命令提示符下显示帮助。
    Abort :丢弃脱机模式下进行的所有更改。Abort 在联机模式下不起作用。
 
    add helper :在 netsh 中安装帮助程序 DLL。
    格式 :add helper DLLName
    DLLName 必需。指定要安装的帮助程序 DLL 的名称。

    Alias :添加由用户定义的字符串组成的别名,netsh 将其视为与另一个字符串等效。如果在使用时没有使用参数,则 alias 将显示所有可用的别名。
    格式:alias [AliasName] [String1 [String2 ...]]
    alias [AliasName]
    显示指定的别名。
    alias [AliasName][String1[String2 ...]]
    将 AliasName 设置成指定的字符串。
    例子
    下面的 netsh 例子设置了两个 netsh 别名:Shaddr 和 Shp,然后将 Netsh 命令提示符保留在 Interface IP 上下文中:
    alias shaddr show interface ip addr
    alias shp show helpers
    interface ip
    如果在 Netsh 命令提示符键入 shaddr,则 Netsh.exe 将其解释为命令 show interface ip addr。如果在 Netsh 命令提示符键入 shp,则 Netsh.exe 将其解释为命令 show helpers。

    Bye :退出 Netsh.exe。
 
    Commit:将脱机模式下所作的全部更改提交到路由器。Commit 在联机模式下不起作用。

    delete helper:从 netsh 中删除帮助程序 DLL。

    格式 :delete helper DLLName
    参数DLLName 指定要卸载的帮助程序 DLL 的名称。

    Dump:创建包含当前配置的脚本。如果将此脚本保存到文件,则可使用该文件来恢复已更改的配置设置。如果使用不带参数的 dump,将显示所有 netsh 上下文配置。
    格式:dump [FileName]
    参数[FileName] :指定要重定向输出的目标文件的名称。

    Exec:加载脚本文件并运行其中的命令。
    格式:exec ScriptFile
    参数ScriptFile :必需。指定要加载和运行的脚本的名称。

    Exit:退出 Netsh.exe。

    Offline :将当前模式设置为脱机。
    说明:在本模式下做的更改已保存,不过需要运行 commit 或 online 命令才能设置路由器中的更改。从脱机模式切换到联机模式时,在脱机模式下所做的更改将在当前运行的配置中反映出来。在联机模式下所做的更改将立即在当前运行的配置中反映出来。

    Online:将当前模式设置为联机。
    说明:在联机模式下所做的更改将立即在当前运行的配置中反映出来。从脱机模式切换到联机模式时,在脱机模式下所做的更改将在当前运行的配置中反映出来。

    Popd:从堆栈中恢复上下文。
    说明:与 pushd 一起使用后,popd 使您可以更改上下文、在新的上下文中运行命令,然后恢复前一个上下文。
    例子:下面的例子脚本将上下文从根上下文更改成 interface ip 上下文,添加静态 IP 路由,然后返回到根上下文:

    netsh>pushd
    netsh>interface ip
    netsh interface ip>set address local static 10.0.0.9 255.0.0.0 10.0.0.1 1
    netsh interface ip>popd netsh>

    pushd:将当前的上下文保存在先进后出的 (FILO) 堆栈中。
    说明:与 popd 一起使用后,pushd 使您可以更改上下文、在新的上下文中运行命令,然后恢复前一个上下文。

    Quit:退出 Netsh.exe。

    set file :将命令提示符窗口输出复制到文件。
    格式:set file {open FileName | append FileName | close}
    参数
    open FileName
    将命令提示符窗口输出发送到指定的文件。
    append FileName
    将命令提示符窗口输出追加到指定的现有文件中。
    close
    停止发送输出并关闭文件。
    说明:如果指定的 FileName 当前不存在,则 netsh 将创建此名称的新文件。如果指定的 FileName 当前存在,则 netsh 将覆盖现有数据。

    set machine :设置将执行配置任务的当前计算机。如果使用时没有参数,则 set machine 将设置本地计算机。

    set mode:将当前模式设置为联机或脱机。
    格式:set mode {online | offline}

    online :将当前模式设置为联机。
    offline :将当前模式设置为脱机。

    show :显示别名、帮助程序和模式信息。
    格式:show {alias | helper | mode}
    参数
    alias
    列出所有已定义的别名。 
     helper
    列出所有顶层的帮助程序。
    mode
    显示当前模式。

    Unalias:删除指定的别名。
    格式:unalias AliasName

    当您在命令提示字符中输入 netsh 并按下 Enter 键之后,系统将会出现 Netsh > 的提示字符符号,表示您正在 NetSh 当中;此时您可以变更您所要使用的命令内容以便于管理某项网络服务。至于要变更成何种命令内容,则要依照您在系统当中所安装的网络组件或是想要管理的网络组件而定。例如想要利用 Netsh 来管理您「路由及远程访问服务」服务器当中的路由功能时,您就必须在 Netsh > 的提示字符中输入routing (或直接在命令提示字符输入 Netsh routing),此时命令提示字符则会变更如下图2所示:
 

图2 netsh的上下文命令

    到此为止我们介绍了netsh命令使用方法。下面将结合具体内容使用Netshell 管理Windows 2003的网络服务。(下篇点击查看

0
相关文章