利用命令行提升Windows Server 2008管理效率
1.用ServerManagerCMD命令进行服务器管理
ServerManagerCMD是服务器管理器的命令行工具,用于支持三种重要的操作:添加和删除角色、角色服务、功能,以及用于显示安装的角色、角色服务、功能。对于去具体的参数大家可以在命令行下输入“ServerManagerCMD /?”进行查看。其中-query、-install、-remove是三个最常用的参数,分别用户查询、安装和删除服务器角色、角色服务和功能。下面笔者分别演示这三个参数的用法。
(1).查询
在命令提示符窗口中输入命令“ServerManagerCMD -query”,回车后就可以查看到服务器的配置和功能,从而省去了在“服务管理器”的图形界面中来回地切换。显示结果一目了然:角色和功能会分成两组,另外已经安装的角色、角色服务、功能会以绿色显示并在该项的前面有[X]标识,没有安装的显示为白色前面标识为[ ]。如图1所示笔者的服务器安装的服务器角色有:Active Directory 域服务、DNS 服务器、Windows 部署服务,安装的功能组件有:TFTP 客户端、组策略管理器。另外,所安装的角色服务以层次结构显示在对于的角色下面。(图1)
笔者还有一个技巧和大家分享:当服务器安装了多个角色、角色服务以及功能组件,如果管理员要查看是否安装了某个对象这将比较麻烦。其实ServerManagerCMD -query支持管道命令“|”,我们可以这样来做:假如我们要查看服务器是否安装了组策略管理组件,可在命令行下输入“ServerManagerCmd.exe -query | GPMC”,回车后如果安装了此组件就会打开该工具,否则会显示错误提示(比如输入命令“ServerManagerCmd.exe -query | RSAT-TS”查看是否安装了终端服务工具,因为没有安装会输出错误)。(图2)
(2).安装
Windows Server 2008默认情况下并没有安装telnet客户端,假如我们要安装该功能组件,可在命令提示符下输入命令“ServerManagerCmd.exe -install Telnet-Client -resultPath installResult.xml”并回车。此时就开始Telnet-Client功能组件的安装,并且会实时显示安装的进度(百分比),很快安装完成。上述命令中,“Telnet-Client”是Telnet客户端的系统名称,必须用英文名称不能用中文,否则会显示“无效的角色、角色服务或功能”。当然,对于一个熟练的服务器管理员记住这些名称应该不是难事。如果你忘记了可通过上面的查询命令“ServerManagerCmd.exe -query”来查看。“-resultPath installResult.xml”参数的作用是以XML的格式将刚才的操作结果保存到installResult.xml文件中。另外,如果安装的角色需要重启计算机我们可以在后面加一个参数“-restart”,以实现安装完成后自动重启系统使刚才的安装生效。(图3)
要删除服务器角色、角色服务或者功能组件其操作方法和上面的类似,只是改变ServerManagerCmd.exe命令的参数即可。例如我们要同时删除“Windows 部署服务”角色和“TFTP 客户端”功能组件,可在命令提示符下输入命令“ServerManagerCMD -remove WDS TFTP-Client”并回车。然后开始删除并显示删除进度,稍等片刻即可完成删除任务。如果要删除更多的角色或者功能,只需将该角色或者功能的名称依次输入并相互之间以空格分开即可,这远比图形界面中的操作要快很多。(图4)
2、快速配置服务器组件
服务器的配置不仅仅是技术活,有的时候也是体力活。服务器管理员如何实现服务器的快速配置,以提升工作效率自我解放呢?善用命令和使用脚本这是一套立竿见影的解决方案,下面笔者列举几个实战案例。
(1).配置防火墙
防火墙配置是服务器安全部署的重要方面,也是一项比较繁琐的工作。特别对于Windows Server 2008这样的服务器平台,它的系统防火墙功能是非常强大的并且可配置项非常多。下面和大家分享几个实用的命令以及一个配置案例。
打开命令提示符输入输入命令“netsh firewall show state”然后回车可查看防火墙的状态,从显示结果中可看到防火墙各功能模块的禁用及启用情况。命令“netsh firewall set opmode disable”用来禁用系统防火墙,相反命令“netsh firewall set opmode enable”可启用防火墙。(图5)
接下来我们通过命令行进行防火墙配置,以实现允许访问文件和打印共享以及DNS查询。打开命令提示符输入命令“netsh firewall add portopening UDP 53 DNS-Server”然后回车,命令执行后服务器就能够响应客户端的DNS查询请求,并为其提供DNS服务了,很简单一个命令搞定。下面我们通过命令实现客户端可通过文件和打印共享访问服务器,分别输入并执行如下命令:“netsh firewall add portopening UDP 137 Netbios-ns”(允许客户端访问服务器UDP协议的137端口)、“netsh firewall add portopening UDP 138 Netbios-dgm”(允许访问UDP协议的138端口)、“netsh firewall add portopening TCP 139 Netbios-ssn”(允许访问TCP协议的139端口)、“netsh firewall add portopening TCP 445 Netbios-ds”(允许访问TCP协议的445端口)。命令执行完毕后,文件及打印共享所须的端口都被防火墙放行了,我们从客户端访问试试果然成功。上面的命令虽然比较多,但格式类似也是非常好记的。(图6)