Windowsサービスの実行ファイルのパスを変更するには?

services windows

コマンドラインからサービスの実行ファイルのパスを変更したい

どうすればいいの?

そのサービスの実行パスから別の.exeを実行したい

  64  sam  2010-12-15


ベストアンサー

sc config コマンドを使用して、サービスが指すパスを変更することができます

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

これにより、YourServiceNameというサービスが更新され、”Path to Executable “エントリがC:\SomeDirectory\YourFile.EXEに変更されます。その後でサービスを再起動したいと思うでしょうが、これは以下の方法で行うことができます

NET STOP YourServiceName & NET START YourServiceName

83  LittleBobbyTables – Au Revoir  2011-03-03


レジストリで行う必要があります

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

サービスに移動し、新しいパスを反映するように画像名を変更します

いつものように、システムのバックアップを取っておきましょう

19  dave  2010-12-15


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")

Or:

Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\My Service" `
-Name ImagePath -Value "C:\Program Files (x86)\My Service\NewName.EXE"

2  Greg Sansom  2015-08-13


上で提供された回答は素晴らしい働きをします、私はそれに答えることはできませんが、追加するには、パスに引用符や他の引数を持つ必要がある場合、例えば、レジストリで引用符で囲まれていないパスの脆弱性を修正するために、imageepathのように、管理者としてCMDから次のように実行することができます

(例えば、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"

…血まみれの引数とパラメータのエスケープは悪夢です!これが将来誰かの助けになることを願っています

2  Maverick Sevmont  2017-07-27


サービスの実行パスを直接編集することはできません。そのためには sc コマンドを使用します

管理者としてコマンドプロンプトを開き、次のコマンドを入力します

SC CONFIG ServiceName binPath= "Path of your file"

Eg:

sc config MongoDB binPath="I:\Programming\MongoDB\MongoDB\bin\mongod.exe --config I:\Programming\MongoDB\MongoDB\bin\mongod.cfg --service"

0  Codemaker  2018-08-14


タイトルとURLをコピーしました