it-swarm.cn

如何在Windows 2008 Server上创建运行.bat文件的服务?

我已经使用创建了服务

sc create myService binpath=myservice.bat

但是,当我启动它时,它失败并显示以下错误消息:

[SC] StartService FAILED 1053:
    The service did not respond to the start or control request in a timely fashion.

在Win2k3上,我使用了资源工具包中的srvany.exe,但没有用于win2k8的资源工具包。目前,我已经在计算机上安装了srvany.exe,但是我认为这不是最好的方法。

谢谢!

21
abyx

当然,您不能运行这样的服务。您是否尝试在Server 2008中使用srvany?据我所知,s2k8没有srvany的“官方”版本,但是您可以随时尝试,可以吗?

编辑:哦,我忘了!我们还使用FireDaemon将非服务应用程序作为服务运行。但是,它不是免费的,并且其功能有点无法满足您的需求。

9
shylent

使用NSSM将.BAT或任何旧的.EXE文件作为服务运行。它几乎是SRVANY的替代品,并且是一款毫不费吹灰之力的应用程序。

http://iain.cx/src/nssm/

我和您有同样的问题,NSSM是唯一起作用的实用程序。

24
Matthew Blackford

每当计算机启动时,我们都使用Task Scheduler运行任务(无论用户是否登录)

8
Korayem

您不能仅将.BAT文件或任何旧的.EXE文件作为服务运行。 Windows服务对您不起作用。您可以使用 non-Sucking Service Manager (NSSM)等实用程序或Microsoft的非免费SRVANY实用程序将任意程序作为服务运行,但是您可能会发现自己并没有获得“优雅”的停止行为。

7
Evan Anderson

SC命令只是为服务添加必需的注册表项-如果您指定的文件不是有效的服务exe,则它将不会变成一个文件。

3
Whisk

试试这个...对我有用..

sc create ServiceTest binpath= "C:\Windows\System32\cmd.exe /C C:\ServiceTest\Jenkins-Slave.bat"
2
Kushal Gangan

来自: 这篇文章在Technet论坛上:http://social.technet.Microsoft.com/Forums/en-US/winserverMigration/thread/98a97aee-c62b-4683-94ab-3777899cf7de/

这是做什么的...

在发布本文时,尚无Windows Server 2008资源工具包工具,因此请从“ Windows Server 2003资源工具包工具”中获取“ srvany.exe”,并将其复制到Win2008服务器上的适当位置(例如C:\Windows\System32 \)。使用“ sc”创建一个启动“ srvany”的新服务(例如,sc create MyService binPath = C:\ Windows\System32\srvany.exe DisplayName =“ My Custom Service”)使用RegEdit:为您的服务器创建一个“ Parameters”键服务(例如HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Paramaters \)使用RegEdit:在新创建的“ Parameters”键中,创建一个名为“ Application”的字符串值,并输入要作为其运行的应用程序的完整路径服务。 (无需引号。)

那应该做到的。

注意:某些应用程序将其设置存储在用户Hive中,而不是在HKEY_LOCAL_MACHINE下,因此您需要运行该应用程序对其进行配置,然后将服务配置为以该用户身份运行。

2
user1977194

我使用Windows schtasks。

你可以参考这个。 https://technet.Microsoft.com/zh-cn/library/cc725744.aspx#BKMK_hours

0
Yit Ming

我发现了另外两个选择,您将无法用钱买钱包。

您可以启动sc启动srvany,然后指向您的程序。 (有一个论坛帖子我无法链接到该网站,因为尽管我在StackOverflow上做了,但是这里的代表人数不足-抱怨)

以下是原始海报使用的步骤:

  1. 使用sc创建启动srvany的新服务(例如sc create MyService binPath=C:\Windows\System32\srvany.exe DisplayName="My Custom Service"
  2. 使用RegEdit:为您的服务创建Parameters键(例如HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters\
  3. 使用RegEdit:在新创建的Parameters键中,创建一个名为Application的字符串值,然后输入要作为服务运行的应用程序的完整路径。 (无需引号。)

如果看起来有点hack,那么您可以构建一个.NET服务来启动您的进程。如果您想跳过一些步骤,这是一个可以启动通用进程的开源.NET服务:

http://www.codeproject.com/KB/system/xyntservice.aspx

根据您的需求进行调整,但它可以完成大多数您想做的事情。

0
databyte

我偶然发现了这件事。这是称为Bat_To_Exe_Converter的工具。将任何.bat文件转换为.exe文件非常容易。尝试一下。首先下载下载器,然后它将自动下载Bat_To_Exe_Converter。它确实帮助我创建了通过.exe运行.bat文件的服务。 http://download.cnet.com/Bat-To-Exe-Converter/3001-2069_4-10555897.html?spi=eae5ab48292cc101b5f0ec370cf99ad

0
Ilya