Tôi muốn thay đổi đường dẫn đến tệp thực thi cho một dịch vụ từ dòng lệnh.
Làm thế nào tôi có thể làm điều đó?
Tôi muốn chạy một .EXE khác từ đường dẫn của dịch vụ đó để thực thi.
Tôi muốn thay đổi đường dẫn đến tệp thực thi cho một dịch vụ từ dòng lệnh.
Làm thế nào tôi có thể làm điều đó?
Tôi muốn chạy một .EXE khác từ đường dẫn của dịch vụ đó để thực thi.
Câu trả lời:
Bạn có thể sử dụng sc config
lệnh để thay đổi đường dẫn mà dịch vụ trỏ tới:
SC CONFIG YourServiceName binPath= "C:\SomeDirectory\YourFile.EXE"
Điều này sẽ cập nhật dịch vụ được gọi YourServiceName
và thay đổi mục nhập "Đường dẫn đến thực thi" thành C:\SomeDirectory\YourFile.EXE
. Bạn sẽ muốn khởi động lại dịch vụ của mình sau đó, điều bạn có thể làm với:
NET STOP YourServiceName & NET START YourServiceName
Path to executable
cũng chứa dấu ngoặc kép và các tham số khác? Ví dụ: "C:\Program Files\CollabNet\Subversion Server\svnserve.exe" --service -r "E:\Repositories" --listen-port "3690"
tôi buồn bã phải đi theo con đường regedit cho cái này.
Bạn sẽ cần phải làm điều đó trong sổ đăng ký:
HKEY_LOCAL_MACHINE \ HỆ THỐNG \ CurrentControlset \ Services
Điều hướng đến dịch vụ, sau đó sửa đổi tên hình ảnh để phản ánh đường dẫn mới
Như mọi khi, tạo một bản sao lưu của hệ thống TRƯỚC.
Bạn cũng có thể làm điều đó với 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")
Hoặc là:
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\My Service" `
-Name ImagePath -Value "C:\Program Files (x86)\My Service\NewName.EXE"
Câu trả lời được cung cấp ở trên hoạt động rất tốt, tôi không thể trả lời nó, nhưng để thêm vào, trong trường hợp bạn cần có dấu ngoặc kép hoặc các đối số khác trong đường dẫn, hãy nói để khắc phục lỗ hổng đường dẫn không được trích dẫn trong sổ đăng ký, như đường dẫn hình ảnh, bạn có thể làm như sau từ CMD với tư cách quản trị viên:
(ví dụ: đối với C: \ Chương trình tệp (x86) \ YourService \ YourProcess.exe)
SC CONFIG YourService binPath= "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
bạn có thể thực hiện các thao tác sau từ powershell với tư cách quản trị viên:
SC.exe CONFIG YourService binPath= --% "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
Chúng sẽ cho bạn kết quả như sau:
"C:\Program Files (x86)\YourService\YourProcess.exe"
... những cuộc cãi vã đẫm máu và những thông số thoát ra là một cơn ác mộng! Mong rằng điều này sẽ giúp ai đó trong tương lai.
Bạn không thể trực tiếp chỉnh sửa đường dẫn của mình để thực hiện dịch vụ. Cho rằng bạn có thể sử dụng lệnh sc,
Mở dấu nhắc lệnh của bạn với tư cách quản trị viên, sau đó nhập lệnh sau,
SC CONFIG ServiceName binPath= "Path of your file"
Ví dụ:
sc config MongoDB binPath="I:\Programming\MongoDB\MongoDB\bin\mongod.exe --config I:\Programming\MongoDB\MongoDB\bin\mongod.cfg --service"