如果有疑问 如果你无法确定某个自动启动的服务是否需要,最好不要将其禁用。在这种情况下,把它们的启动状态改为“手动”是个最好的选择。
还要注意一点,很多服务之间存在着依存关系。比如,如果关闭Remote Procedure Call服务,Task Scheduler服务就无法工作。依次打开“控制面板” “管理工具” “服务”,双击某个想要关闭的服务或者选中某个服务后按右键选择“属性”,在属性窗口中选择“依存关系”选项卡,就可以看到某项服务依赖于哪些其他的服务(如图7所示)。
是否禁用那些易用性服务,你可以根据自己的情况而定,如果你宁愿自己手动去检查和安装Windows补丁,那就可以将Automatic Updates服务关闭。如果你喜欢使用第三方的防火墙,可以将Security Center服务关闭。如果你并不使用无线连接,则可以将Wireless Zero Configuration服务关闭。
必需启动的服务 表格中的带“○”标记的条目表示这些服务如果不被其他服务所依赖的话,也可以将其禁用。禁用这些服务可能会使Windows XP的某些功能无法使用,比如如果禁用Cryptographic Services,就无法支持带有签名的程序,也无法使用安全证书。
如果你特别执着地想知道哪些服务可以被关闭,可以关闭某项服务,然后观察关闭前后Windows XP系统是否能够正常运行,如果一切正常,那就可以将其禁用。试验时比较好的做法是不要将服务禁用,而是把它们的启动状态改为“手动”。我们曾经尝试在一台机器上关闭了所有的服务,只保留了Remote Procedure Call服务。我们发现,操作系统还可以正常启动,你也可以把它当作打字机使用,但其他功能基本上无法使用,操作系统会弹出无数的窗口告诉你没有操作的权限。
安全服务 即便你按照上述的步骤对Windows XP服务进行了“瘦身”,但使用Netstat和Nmap扫描时你仍然会发现三个对外开放的服务:Epmap(端口135)、Microsoft-ds (端口445)和Netbios-ssn(端口139),这三项服务都和网络有关。毕竟我们对Windows XP服务进行“瘦身”并不是为了彻底切断与网络的联系。
Windows XP在默认状态下会打开Netbios和SMB(Server Message Block,服务器信息块),这些协议用于用户共享文件、磁盘、目录和打印机。如果你不需要它们,可以用后面讨论的办法关闭它们。先来看看如何关闭 Netbios,打开“控制面板” “网络连接”中的网卡设置窗口,进入TCP/IP设置项的高级设置窗口,在WINS选项卡中选择“禁用TCP/IP上的NetBIOS”,这样一来就可以去掉Netbios-ssn服务(如图8所示)。
再来看Endpoint Mapper,它是由DCOM控制的。依次选择“开始” “运行”,然后运行dcomcnfg.exe,在窗口左边依次选择“组件服务” “计算机” “我的电脑”,然后按鼠标右键并在上下文菜单中选择“属性” “默认属性”,取消选择“在此计算机上启用分布式COM (E)”,然后在“默认协议”选项卡中删除所有的协议。这样重新启动之后,你会发现Epmap也不见了。
如果想彻底关闭SMB服务,你需要在注册表中创建一个新的值HKEY_Local_MachineSYSTEMCurrentControlSetServicesNetBTParamtersSMBDeviceEnabled,将此值设置为0。