ฉันกำลังพยายามรวบรวมไฟล์แบตช์ที่จะตั้งค่าภารกิจ robocopy เป็นบริการเพื่อตอบสนองต่อการป้อนข้อมูลของผู้ใช้ แนวคิดพื้นฐานที่ผู้ใช้จะป้อน MyRobocopyBatchFile.bat sourceFolder 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%
ด้วยการป้อนข้อมูลของผู้ใช้เช่น:
MyRobocopyBatchFile.bat .\RunSheets 10.20.30.40
ปัญหาที่ฉันกำลังเผชิญคือเมื่อไฟล์แบตช์เริ่มการให้บริการมันทำให้ฉันมีข้อผิดพลาด ข้อความแสดงข้อผิดพลาดเดียวกันเกิดขึ้นเมื่อเริ่มต้นด้วย NetStart หรือผ่านหน้าต่างบริการ ข้อความแสดงข้อผิดพลาดคือ:
[SC] StartService FAILED 1053:
The service did not respond to the start or control request in a
timely fashion.
แม้จะมีข้อความแสดงข้อผิดพลาด robocopy กำลังซิงค์ไดเรกทอรี แต่มันไม่ได้ดำเนินการต่อในโหมดจอภาพ
หากความช่วยเหลือใด ๆ เกี่ยวกับวิธีการรับ robocopy ที่ทำงานเป็นบริการจะได้รับการชื่นชมอย่างมาก
NB ผู้จัดการผลิตภัณฑ์มีความกระตือรือร้นในความคิดของการบริการ
UPDATE: เนื่องจากไม่มีวิธีที่จะทำสิ่งนี้ในกลไกที่จะทำให้ PM มีความสุข (SrvAny การเป็นมรดกไม่ใช่ทางเลือก) ฉันจึงลงเอยด้วยการแฮ็คบริการห่อหุ้มบริการสำหรับ RoboCopy ไม่ใช่วิธีแก้ปัญหาที่ฉันต้องการ ชอบ แต่มันจะทำงาน