在Windows操作系统中,服务是一种常见的应用程序形式,能够在后台运行,不依赖于用户交互,并且具有自动启动和重启功能。但是,并非每个应用程序都可以作为服务运行。在这种情况下,我们需要一个工具来帮助我们将应用程序作为服务运行。一个常用的工具就是Microsoft的srvany(Service Any)工具。
Srvany是一个Windows系统工具,它允许用户将任何程序运行为Windows服务。此工具可以将命令行应用程序、脚本、批处理程序和其他一些不是服务的应用程序转化为服务,其中不需要进行大量的编程或修改原始应用程序的代码。在本文中,我们将探讨如何使用srvany将应用程序作为Windows服务运行。
为什么需要将应用程序作为服务运行?
首先,让我们探讨一下为什么我们需要将应用程序作为服务运行。一些应用程序通常需要在计算机启动时或在后台长时间运行。比如,某些服务器程序、网络应用程序或自动化应用程序等。当应用程序以普通用户启动时,许多安全性限制和权限问题可能会阻止其长时间执行或在后台运行。这时,我们就需要使用服务的优点将应用程序运行。
服务的优点:
1. 启动自动化:以服务方式启动的程序将自动启动,并不需要用户手动开启它。
2. 依靠Windows管理:服务是由Windows进程管理器控制的,这使得它们更加稳定并可靠。
3. 提高安全性:服务使用Windows管理员权限,因此可以更好地访问系统资源或执行特权操作。
准备工作
在使用srvany将应用程序作为服务运行之前,我们需要做一些准备工作。
1. 确定应用程序exe文件的路径。
2. 记录应用程序需要使用的参数。这通常在运行应用程序时通过命令行传递。
3. 确定服务的名称和描述。名称应简短、清晰明了。
第一步:下载srvany
Microsoft Windows 2003 Resource Kit提供了srvany工具的安装包。可以通过以下链接下载:
https://www.microsoft.com/en-us/download/details.aspx?id=17657
下载后,运行exe文件,选择“安装”选项,我们可以在C:\Program Files (x86)\Windows Resource Kits\Tools\目录中找到srvany.exe。
第二步:使用srvany创建服务
现在,我们可以使用srvany创建我们的Windows服务。在此过程中,我们需要定义服务的名称、描述,和应用程序的文件路径和参数。
以下是在Windows Server 2008上如何使用srvany创建服务的步骤:
1. 打开Windows服务管理器,通过快捷键 Win+R 并输入 services.msc 命令打开服务管理器。
2. 在服务管理器中,右键单击“空白区域”,选择“新建”并点击“服务”。
3. 在弹出的“新建服务”对话框中,输入服务名称、服务描述并点击“确定”。
4. 将srvany.exe文件复制到我们想要运行的程序所在的目录中。在服务管理器中,右键单击该服务并选择“属性”。
5. 在服务属性对话框中,单击“登录”选项卡,并选择“本地系统账户”,单击“确定”。
6. 在“服务”属性对话框中,单击“启动”选项卡,单击“启动类型”下拉框并选择“自动”。
7. 在“服务”属性对话框中单击“恢复”选项卡,设置服务失效后需要进行的操作,通常是“重新启动服务”。
8. 单击“应用”按钮并关闭对话框。
现在,我们需要在注册表中设置srvany为服务调度程序并指定我们要运行的程序。为此,我们需要使用“regedit”命令编辑注册表。
9. 在注册表中,找到以下四个键:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MyService
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Security
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Security\Permissions
(其中MyService是你想要的服务名称)
10. 在“Parameter”键下,添加一个 REG_SZ 类型的“Application”子项,并将其设置为应用程序的文件路径。
11. 在“Parameter”键下,添加一个 REG_SZ 类型的“AppDirectory”子项,并将其设置为应用程序运行的目录。
12. 在“Parameter”键下,添加一个 REG_MULTI_SZ 类型的“AppParameters”子项,并将其设置为应用程序参数的列表。
13. 在“Parameters”键下,添加一个 REG_DWORD 类型的“AppExit”子项,并将其设置为1。这可以在应用程序退出时终止服务。
14. 在“Parameters”键下,添加一个 REG_DWORD 类型的“AppDirectoryExists”子项,并将其设置为1。这可以确保应用程序的目录存在。
15. 现在,在服务管理器中,启动我们创建的服务。这时,srvany将会调用我们指定的应用程序并将其作为服务运行。
总结
这篇文章详细介绍了如何使用srvany将应用程序作为Windows服务运行。通过这种方法,我们可以将任何程序运行为服务,增加程序的稳定性和可靠性,提高系统安全性。对于那些想要将应用程序作为服务运行的开发人员来说,这种方法无疑是一个重要的技能。