了解和管理Windows服务

在今天的极客学校课程中,我们将教你有关Windows服务的知识,以及如何使用内置实用程序来管理它们。

多年来,人们花费了大量时间来禁用和调整Windows服务的配置,整个网站都致力于了解您可以禁用哪些服务。

值得庆幸的是,Windows的现代版本极大地简化了作为服务运行的程序,增加了将它们从启动推迟到更晚的能力,并且允许它们只在触发时运行,而不是一直运行。由于所有这些工作,Windows的总体占用空间甚至已经减少。

但人们仍然决心禁用服务。因此,今天的课程将教您有关服务的知识,以及如何分析、删除或禁用它们。我们不会给您提供一个要禁用的确切服务列表,因为在大多数情况下,您应该不去管内置服务。

服务到底是什么?

Windows服务是一种特殊类型的应用程序,它被配置为在后台启动和运行,在某些情况下甚至在用户登录之前。可以将它们配置为以本地系统帐户运行。服务设计为在后台连续运行并执行系统任务,如备份计算机或运行侦听网络端口的服务器进程。

回到Windows XP时代,服务可以配置为交互运行,并与其余应用程序一起运行,但自Vista以来,所有服务都被强制在无法与本地桌面交互的特殊窗口会话中运行。因此,不允许试图打开对话框或向您显示消息的服务这样做。

与普通应用程序不同,常规应用程序只需在您的用户帐户下启动和运行,而服务必须安装并在Windows中注册,这需要管理员帐户,通常还需要用户帐户控制提示。因此,如果您不允许应用程序以管理员身份运行,它就不能只创建在后台运行的服务。

服务面板

Windows始终使用“服务”面板作为管理计算机上运行的服务的一种方式。您只需按键盘上的Win+R打开Run对话框,然后键入services.msc,就可以随时轻松地到达那里。

Services面板相当简单:有一个服务列表,一个Status列显示它是否正在运行,以及更多信息,如服务的名称、描述和启动类型。您会注意到,并不是每个服务都一直在运行。

虽然您可以选择一个服务,然后右键单击它或单击工具栏按钮来启动、停止或重新启动它,但是您也可以双击以打开属性视图并获取更多信息。

禁用该服务非常简单,只需将“启动类型”下拉列表更改为“已禁用”,然后选择“应用”,不过您也可以将其更改为“手动”或“自动”并延迟启动。从该对话框中,您还可以看到可执行文件的完整路径,这在许多情况下可以帮助您查看服务到底在运行什么。

“登录”选项卡允许您选择服务是以本地系统帐户登录还是以其他帐户登录。这在服务器环境中最有用,在该环境中,您可能希望从域运行有权访问其他服务器上的资源的服务帐户。

您可能注意到前面提到的“允许服务与桌面交互”选项--默认情况下,除非选中此复选框,否则不允许服务访问您的桌面,而此复选框实际上仅用于传统支持。

但是,仅仅选中该框并不能立即授予他们访问权限-您还需要确保注册表中的NoInteractiveServices值设置为0,因为当该值设置为1时,该复选框将被忽略,并且服务根本不能与桌面交互。注:在Windows 8中,该值设置为1,禁止交互服务。

服务不应该是交互式的,因为所有窗口都存在于同一个用户终端中,可以访问剪贴板等公共资源,如果它们与其他进程一起运行,可能会出现一个问题,即在正常用户进程中运行的恶意应用程序可能会试图通过服务获得更多访问权限,考虑到服务作为本地系统帐户运行,这可能不是一件好事。

“恢复”选项卡允许您选择服务失败时发生的操作选项。您可以选择自动重新启动服务(通常是默认选项),也可以运行程序或重新启动计算机。

运行程序选项可能是最有用的,因为您可以将Windows设置为在服务失败不止一次时自动发送电子邮件-这在服务器环境中是一个有用的选项。它在普通桌面上的帮助肯定要小得多。

依赖项选项卡显示哪些服务依赖于特定服务,哪些服务依赖于您正在查看的服务。如果您计划禁用某项服务,您可能应该先参考本节,以确保没有其他服务需要该服务。

在Windows 8.x的任务管理器中查看服务

多年来,常规服务面板没有太大变化,但值得庆幸的是,现在有一种更好的方法来查看哪些服务正在运行,哪些服务正在使用大量资源。

Windows8中的任务管理器有一个新的服务选项卡,允许你停止和启动服务,还附带一个“在线搜索”选项,更有用的是“转到详细信息”选项。

从菜单中选择Go to Details后,您将切换到Details选项卡,负责该服务的进程将突出显示。

如您所见,负责分布式链接跟踪的进程占用了28,712K内存,这似乎很多,直到您意识到特定的svchost.exe进程实际上负责一系列服务。

再次右键单击它,然后选择Go to Services,您将看到我们正在谈论的内容。现在,在“服务”窗口中选择了许多服务,您会注意到它们都在LocalSystemNetworkRestricted组中,并且它们当前都在运行。

因此,28MB的内存实际上用于一整套服务,这使得它使用所有内存的原因更容易理解。

使用Process Explorer查看服务

如果您希望更清楚地了解每个进程下运行的服务,最好的方法是打开Process Explorer,在列表中找到该服务,双击它,然后转到Services选项卡。此方法适用于任何版本的Windows。

提示:在Process Explorer中,所有服务都应该位于services.exe下的树中。

是否应禁用服务?

不幸的是,许多垃圾软件应用程序在它们的安装过程中安装Windows服务,并使用它们来保持它们在后台运行并重复重新启动。其他应用程序实现Windows服务来提供您可能不需要的功能。这些是您应该禁用的服务。

我们的一般规则是,微软内置的Windows服务应该保持原样-Windows 8甚至Windows 7在将服务缩减为真正重要的功能方面做得很好,禁用这些服务不会在资源方面获得太多好处。

然而,您绝对应该做的是查找任何不属于Windows的服务,并尝试处理它们。如果您完全不知道这项服务是什么,或者它针对的是您不想一直运行的应用程序,那么您应该做一些研究并决定是否禁用它。

不禁用,设置为手动

我们喜欢遵循的规则之一是避免禁用服务,因为这可能会导致问题和错误。相反,只需尝试将服务设置为手动启动即可。

如果您发现某个特定的服务需要运行,但可能不需要立即运行,您也可以将其更改为自动(延迟启动),这将延迟启动,直到系统在引导后平静下来。

从命令提示符管理服务

有些操作是无法通过图形用户界面完成的。例如,如果要删除服务,则只能通过命令行执行此操作。

注意:请不要删除服务。

您可以使用sc命令查询服务的状态,如下所示:

您还可以执行许多其他命令和操作,包括删除服务,只有当您的系统上有作为服务运行的恶意软件时,我们才建议使用这些命令和操作。

请勿删除服务。

您还可以执行其他操作,如使用sc实用程序从命令提示符停止和重新启动服务。例如,要停止分布式链接跟踪客户端,请使用以下命令:

要重新启动它,请使用sc start<servicename>。

最后的想法

如果您运行的服务浪费了资源并降低了计算机速度,则只需卸载并删除放置这些服务的应用程序即可。真的没有理由删除服务,禁用它们,或者做任何其他事情。

因为为什么要禁用需要卸载的内容呢?

相关文章