Windows 서비스의 실행 파일 경로를 변경하는 방법은 무엇입니까? 서비스의 실행 파일 경로를 변경하고 싶습니다. 어떻게해야합니까? 해당 서비스

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

어떻게해야합니까?

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



답변

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

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

그러면 호출 된 서비스가 업데이트되고 YourServiceName“실행 파일 경로”항목이로 변경됩니다 C:\SomeDirectory\YourFile.EXE. 나중에 서비스를 다시 시작하여 다음 작업을 수행 할 수 있습니다.

NET STOP YourServiceName & NET START YourServiceName


답변

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

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"


답변

위에 제공된 대답은 훌륭하게 작동하지만 회신 할 수는 없지만 경로에 따옴표 또는 다른 인수가 필요한 경우 레지스트리에서 인용되지 않은 경로 취약성을 수정하기 위해 말하십시오. CMD 에서 admin으로 다음 수행 할 수 있습니다 .

(예 : C : \ Program Files (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"


답변