图 利用命令行 提升Windows Server 2008管理效率( 二 )




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)
(2).脚本在Server Core下的应用
Server Core是摒弃Windows Server 2008华丽功能的一个最小安装的服务器版本,Server Core的配置离不开命令行和脚本 。在命令行下执行“cd cd c:/windows/system32”来到system32目录下,输入“cscript SCregEdit.wsf /di”然后回车,就会把所有常见的配置Server Core的命令全部列出,而不需要管理员自己摸索 。其中,SCregEdit.wsf是Server Core特有的脚本,它有很多参数供管理员使用 。输入“Cscript slmgr.vbs -dlv”可显示服务器的授权状态 。假如我们要在Server Core下启用远程桌面,可首先打开命令跳转到system32路径下然后执行命令“cscript SCregEdit.wsf /Ar 0”启用远程桌面 。接下来需要配置防火墙打开远程桌面使用的端口,执行命名“netsh firewall add portopening TCP 3389 Remote-Desktop”即可 。脚本是Server Core中非常有用的资源,大家应该好好去挖掘和利用 。(图7)


(3).其他脚本和命令行工具
在Windows Server 2008中还有一个强大的命令行工具PowerShell,它远比CMD强大对服务器系统的可操作性更多 。默认情况下PowerShell功能组件并没有安装,我们可在命令行下通过
ServerManagerCmd.exe命令来安装,即运行“ServerManagerCmd.exe -install PowerShell”即可 。安装完成后执行“开始”→“所有程序”→“Windows PowerShell 1.0”→“Windows PowerShell”即可运行PowerShell 。运行“get-command | more”和获得所有的PowerShell命令并以分屏显示 。PowerShell的命令包括两部分,非常具有可读性,管理员可同名命令名称猜到该命令的作用 。比如我们要在PowerShell访问注册表,可执行“cd -path hklm:/”可进入注册表HKEY_LOCAL_MACHINE主键路径下,继续执行“dir”显示HKLM主键下的各子键,执行“cd Software/Microsoft/Windows/CurrentVersion/Run”进入系统自启动项下,执行“gp . *”将显示RUN项的属性以及下面的键值,输出结果中前面四个位RUN项的属性,据此管理员可进行进行分析启动项是否正常 。其次,比如我们在PowerShell命令行下输入命令“Get-Process | Out-File -FilePath C:/process.txt”及“Get-Service | Out-File -FilePath C:/srver.txt”可将服务器当前的进程及其服务状态输出到文件中,在以后的服务器维护中可作为对比 。其实,PowerShell的个完全可替代CMD的工具,通过它几乎可以完成所有的系统操作,深入学习PowerShell对于提高管理效率确实非常有用 。(图8)

推荐阅读