コマンドラインからサービスの実行可能ファイルへのパスを変更したいです。
どうやってやるの?
そのサービスのパスから実行可能ファイルへの別の.EXEを実行したいです。
sc config
コマンドを使用して、サービスが指すパスを変更できます。
SC CONFIG YourServiceName binPath= "C:\SomeDirectory\YourFile.EXE"
これにより、YourServiceName
というサービスが更新され、 "Path to Executable"エントリが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から adminとして:
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"