ฉันต้องการเปลี่ยนพา ธ ไปใช้งานได้สำหรับบริการจากบรรทัดคำสั่ง
ฉันจะทำสิ่งนั้นได้อย่างไร
ฉันต้องการเรียกใช้. EXE อื่นจากเส้นทางของบริการนั้นไปยังปฏิบัติการได้
ฉันต้องการเปลี่ยนพา ธ ไปใช้งานได้สำหรับบริการจากบรรทัดคำสั่ง
ฉันจะทำสิ่งนั้นได้อย่างไร
ฉันต้องการเรียกใช้. EXE อื่นจากเส้นทางของบริการนั้นไปยังปฏิบัติการได้
คำตอบ:
คุณสามารถใช้sc config
คำสั่งเพื่อเปลี่ยนเส้นทางที่จุดบริการเป็น:
SC CONFIG YourServiceName binPath= "C:\SomeDirectory\YourFile.EXE"
นี้จะมีการปรับปรุงการให้บริการที่เรียกว่าYourServiceName
และเปลี่ยนรายการ "เส้นทางสู่ปฏิบัติการ" C:\SomeDirectory\YourFile.EXE
เพื่อ คุณจะต้องเริ่มบริการของคุณใหม่หลังจากนั้นซึ่งคุณสามารถทำได้:
NET STOP YourServiceName & NET START YourServiceName
Path to executable
มีเครื่องหมายคำพูดและพารามิเตอร์อื่น ๆ ตัวอย่างเช่น"C:\Program Files\CollabNet\Subversion Server\svnserve.exe" --service -r "E:\Repositories" --listen-port "3690"
ฉันเศร้าต้องไปเส้นทาง regedit สำหรับอันนี้
คุณจะต้องทำเช่นนั้นในรีจิสทรี:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services
นำทางไปยังบริการจากนั้นแก้ไขชื่อภาพเพื่อสะท้อนถึงเส้นทางใหม่
เช่นเคยทำการสำรองข้อมูลของระบบก่อน
คุณสามารถทำได้ด้วย PowerShell:
Get-WmiObject win32_service -filter "Name='My Service'" `
| Invoke-WmiMethod -Name Change `
-ArgumentList @($null,$null,$null,$null,$null, `
"C:\Program Files (x86)\My Service\NewName.EXE")
หรือ:
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\My Service" `
-Name ImagePath -Value "C:\Program Files (x86)\My Service\NewName.EXE"
คำตอบที่ให้ไว้ข้างต้นใช้งานได้ดีฉันไม่สามารถตอบกลับได้ แต่เพื่อเพิ่มขึ้นในกรณีที่คุณจำเป็นต้องมีเครื่องหมายคำพูดหรือข้อโต้แย้งอื่น ๆ ในเส้นทางพูดเพื่อแก้ไขช่องโหว่ของเส้นทางที่ไม่รู้จักในรีจิสทรีเช่น imagepath คุณ สามารถทำสิ่งต่อไปนี้จาก CMDในฐานะผู้ดูแลระบบ:
(เช่นสำหรับไฟล์ C: \ Program (x86) \ YourService \ YourProcess.exe)
SC CONFIG YourService binPath= "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
คุณสามารถทำสิ่งต่อไปนี้จาก powershellในฐานะผู้ดูแลระบบ:
SC.exe CONFIG YourService binPath= --% "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
สิ่งเหล่านี้จะให้ผลลัพธ์ดังนี้:
"C:\Program Files (x86)\YourService\YourProcess.exe"
... ข้อโต้แย้งนองเลือดและการหลบหนีพารามิเตอร์เป็นฝันร้าย! หวังว่าสิ่งนี้จะช่วยให้ใครบางคนในอนาคต
คุณไม่สามารถแก้ไขเส้นทางของคุณโดยตรงเพื่อดำเนินการบริการ เพื่อให้คุณสามารถใช้คำสั่ง sc
เปิดพรอมต์คำสั่งของคุณในฐานะผู้ดูแลระบบจากนั้นพิมพ์คำสั่งต่อไปนี้
SC CONFIG ServiceName binPath= "Path of your file"
เช่น:
sc config MongoDB binPath="I:\Programming\MongoDB\MongoDB\bin\mongod.exe --config I:\Programming\MongoDB\MongoDB\bin\mongod.cfg --service"