Windows 서비스의 실행 파일 경로를 변경하는 방법은 무엇입니까?

Windows 서비스의 실행 파일 경로를 변경하는 방법은 무엇입니까?

명령줄에서 서비스 실행 파일의 경로를 변경하고 싶습니다.

어떻게 해야 합니까?

해당 서비스의 실행 파일 경로에서 다른 .EXE를 실행하고 싶습니다.

답변1

sc config이 명령을 사용하여 서비스가 가리키는 경로를 변경할 수 있습니다 .

SC CONFIG YourServiceName binPath= "C:\SomeDirectory\YourFile.EXE"

그러면 호출된 서비스가 업데이트 YourServiceName되고 "실행 파일 경로" 항목이 C:\SomeDirectory\YourFile.EXE. 나중에 서비스를 다시 시작하려면 다음을 수행하세요.

NET STOP YourServiceName & NET START YourServiceName

답변2

레지스트리에서 이 작업을 수행해야 합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

서비스로 이동한 다음 새 경로를 반영하도록 이미지 이름을 수정합니다.

항상 그렇듯이 시스템을 먼저 백업하십시오.

답변3

위에 제공된 답변은 훌륭합니다. 답변을 드릴 수는 없지만 경로에 따옴표나 다른 인수가 필요한 경우 추가하자면 이미지 경로와 같이 레지스트리에서 따옴표가 없는 경로 취약점을 수정해야 한다고 가정해 보겠습니다. 다음을 할 수 있습니다CMD에서관리자로서:

(예: C:\Program Files (x86)\YourService\YourProcess.exe의 경우)

SC CONFIG YourService binPath= "\"C:\Program Files (x86)\YourService\YourProcess.exe\"

당신은 다음을 할 수 있습니다파워셸에서관리자로서:

 SC.exe CONFIG YourService binPath= --% "\"C:\Program Files (x86)\YourService\YourProcess.exe\"

그러면 다음과 같은 결과가 나타납니다.

"C:\Program Files (x86)\YourService\YourProcess.exe"

...피비린내 나는 인수와 이스케이프 매개 변수는 악몽입니다! 이것이 미래에 누군가에게 도움이 되기를 바랍니다.

답변4

서비스 실행 경로를 직접 편집할 수는 없습니다. 이를 위해 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"

관련 정보