我试图把一个batch file放在一起,这个文件将把响应用户input的robocopy任务设置为服务。 基本思想是用户将inputMyRobocopyBatchFile.bat sourceFolder destinationMachine,然后从destinationMachine上已知文件夹镜像的文件夹的内容。 服务将被设置为自动启动,以便在启动时运行。 为此我已经从这个问题中排队了
目标环境是WindowsServer 2008 R2
我的意图是如何做到这一点
set destination=\\%2\RunSheets set source=%~dp0%1 echo Setting source to %source% echo Setting destination to %destination% set serviceName=RunSheetCopy%2 sc create %serviceName% binPath= "c:\Windows\System32\robocopy.exe %source% %destination% /MIR /MON:1 /v /log:C:\Logs\RoboCopy\%serviceName%.log /LEV:1" start= auto DisplayName= %serviceName% sc start %serviceName%
用户input如下所示:
MyRobocopyBatchFile.bat .\RunSheets 10.20.30.40
我面临的问题是当batch file启动服务时,它给了我一个错误消息。 使用NetStart或通过服务窗口启动时会出现相同的错误消息。 错误消息是:
[SC] StartService FAILED 1053: The service did not respond to the start or control request in a timely fashion.
尽pipe出现错误消息,但是robocopy正在同步这些目录,但是它不会在监视器模式下继续。
如果有任何帮助如何让robocopy作为服务运行将不胜感激。
NB产品经理非常热衷于服务的理念。
更新:由于没有办法做到这一点,使PM的开心(SrvAny,遗产是不是一种select)的机制,我最终要一起打包RoboCopy的服务包装,它不是我的解决scheme有喜欢,但会做这项工作。
几年前我已经能够设置这样的事情,但不记得怎么样! 所以我重新启动了我的旧VM来检查。
我使用了Windows 2003资源工具包附带的srvany.exe实用程序。
最新版本的Windows不支持此实用程序,但适用于Windows 2008 R2 。
从前面的链接中,请注意这一点:
但请注意,SC不是SRVANY的替代品! SC将帮助你创build/安装一个服务,但是它不允许你像srvany.exe那样运行一个常规的,非服务的可执行文件作为Windows服务。
这就是为什么你得到你的错误信息。 Robocopy命令在服务启动时执行,但由于它不是作为Windows服务运行而崩溃的。
在你的工作站上下载并安装rktools.exe ,然后只把需要的文件srvany.exe复制到服务器的某个地方(比如说c:\Tools )。
然后为srvany创buildWindows服务:
sc create Robocopy-Service binPath= "C:\Tools\srvany.exe" start= auto
打开registry并转到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Robocopy-Service
创build一个名为Parameters的新密钥
在这个新的键下,创build3个新的string值:
最后启动名为Robocopy-Service ,一切都应该正常工作。
现在,从这里开始,您仍然可以在batch file中自动执行某些操作,但是您必须使用reg.exe (或regedit.exe)来操作registry设置。
我还在我的书签中find了帮助我的原始链接: https : //plus.google.com/112485889729268615636/posts/bH8rSDo5ocC
旧的post,新的答案49.95美元,这应该做到这一点。 努力将Onedrive业务作为服务运行。 http://www.coretechnologies.com/products/AlwaysUp/
这是另一个候选人(免费)自己推出: http : //www.rozanski.org.uk/services
SVC.EXE简介。 SVC.EXE是一个简单的Windows NT命令行程序来pipe理NT服务。 可以列出服务,并可以显示,安装,修改或删除单个服务。 它包括定义服务依赖关系的工具。 该程序提示从标准input所需的所有信息。 对于大多数提示,键入? 会显示帮助信息。
警告 – 在运行本程序之前,您已被build议备份您的registry。 (虽然在使用时我从来没遇到过任何问题)
请注意,SVC.EXE与同名的Madfinder间谍软件程序无关。 点击这里查看更多信息。
SRVSTART.EXE
概要。 SRVSTART.EXE是一个Win32可执行文件和DLL,它允许您像运行Windows NT服务一样运行命令。 它还具有一些增强普通控制台命令的运行(提示参数等)的function。 DLL可以独立使用来构build服务,而不必编写任何服务pipe理代码。
SRVSTART.EXE以两种模式之一运行。
It can be used to run an ordinary command (executable program batch file). In this command mode, SRVSTART.EXE can prompt the user for the values of command-line parameters such as passwords. It can be used to run an executable program in the context of a Windows NT service (service mode). SRVSTART.EXE will itself handle all of the interactions with the NT Service Control Manager (SCM). It is not necessary for the program to include any service management code.
SrvStart奖
SRVSTART.EXE最初被ZDNet下载评为最佳五星编辑select等级。 不幸的是,由于Ziff-Davis决定向软件开发者收费,即使像我这样的免费软件开发者也要收费,所以我的软件不再在他们的网站上显示。