统一管理Windows 2000域中的服务
本文出自《网管员世界》2003年第10期“经验技巧”栏目
我们知道,Windows NT核心的系统默认情况下都打开了很多服务,而这些服务很多都是不必要的,所以我们可以禁用其中的一部分。如果只有一台计算机还好办,要是针对整个Windows 2000域来说,如果要一台一台地禁用,那就是一件累人的事了。这时大家肯定都想找一种“简便方法”。对于Windows 2000域来说,最简便的事莫过于使用组策略了,但现在的组策略版本并没有关于这方面的设置,所以一种方法就是我们自己编写一个管理模板文件来分发策略。但自己编写管理模板并不简单,而且容易出错,所以我们可以通过另外一种方法—因为服务的开启或禁用其实都是由注册表中的值控制的—我们可以通过域的登录脚本分发相关的注册表文件来达到目的。
编辑提示:服务在注册表中的位置
服务的设置位于注册表的HKLM\SYSTEM\Current-ControlSet\Service下。但它下面并非都是服务项,还有设备驱动程序项等等,到底哪些是服务项呢?这个你可以根据“计算机管理”工具中服务的名称来辨别:打开某个服务的属性窗口时,在常规标签上显示的名称就是该服务的正式名称(如图1),
图1
服务在注册表中的条目就是这个名字(如图2)。在这里还可以看出,“计算机管理”工具中服务的启动类型与注册表中“start”项的值相对应。对应关系如下:“自动”值为2,“手动”值为3,“已禁用”值为4。如果start项值为0或1,就表明对应的是设备驱动程序,其中0对应最底层的设备驱动。
图2
在域中分发一个reg文件以禁用部分服务
有了上面的知识,下面我们就来看看禁用域中部分服务的基本步骤,至于该禁用哪些服务,这就应该根据自己的网络情况来决定了。如果你还不清楚该调整哪些服务,可以先去看看以前《网管员世界》杂志上的相关文章。
第一步:新建一个.reg文件。对于这个reg文件,你可以手动编写,也可以先导出一个reg文件再进行编辑。由于禁用的项并非占大多数,所以建议自己手动编写这个reg文件。编写好这个文件后,把它拷贝到域控制器的netlogon共享目录下。图3是reg文件的一个简单示例,从图中可以看出禁用了四个服务:clipsrv,dfs,fax,scardsvr。因为我把它们的启动类型值设为了4(“start”=dword:00000004)。编写reg文件时要注意它的格式,如果你对reg文件了解不深,可以先到网上去搜一搜相关内容(如图3)。
图3
第二步:在域控制器的netlogon共享目录下新建一个logon.bat登录脚本文件,这个脚本包含下面一行:
regedit /s \\192.168.0.88\netlogon\1.reg
/s参数表示导入注册表文件不给出提示,后面的\\192.168.0.88\netlogon\1.reg是第一步创建的注册表文件在域控制器上的UNC路径。
第三步:在域组策略的编辑界面中添加logon.bat为登录脚本,选择路径时请用UNC路径。
需要注意的是:在用户配置的登录脚本中添加,不是在计算机配置的启动脚本添加,因为启动脚本可能不会正常执行。
就这样,当客户端登录域时就会执行这个登录脚本,从而实现了统一禁用域中不必要的服务项。不过这种方式还是有两个缺点,第一就是这个脚本不能辨别客户端的操作系统版本,因为Windows XP系统的服务比Windows 2000系统的服务更多,所以针对它们的注册表文件有可能不一样,但脚本却不能进行辨别。第二就是如果不删除脚本,它每次都会执行,也就是它不能判断注册表设置是否已经修改过了。要解决这两个问题,可以采用本期介绍的RemoteExec工具来分发注册表文件,它由相关过滤条件来解决这两个问题。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥