アプリケーションへのパスを変更したいのですが、サービスがまだ古い場所を指しているため、変更するとパスが壊れます。
に移動するとAdministrative Tools > Services
、プロパティダイアログを開いてを表示できますがPath to executable
、変更する方法はありません。
ユーザーがアプリケーションを再インストールせずにサービスパスを変更できる方法はありますか?
アプリケーションへのパスを変更したいのですが、サービスがまだ古い場所を指しているため、変更するとパスが壊れます。
に移動するとAdministrative Tools > Services
、プロパティダイアログを開いてを表示できますがPath to executable
、変更する方法はありません。
ユーザーがアプリケーションを再インストールせずにサービスパスを変更できる方法はありますか?
回答:
レジストリを変更する代わりにコマンドラインを使用するSuperUserで見られるこのアプローチもありsc
ます:
sc config <service name> binPath= <binary path>
注:後のスペースbinPath=
は重要です。次のコマンドを使用して、現在の構成を照会することもできます。
sc qc <service name>
次のような出力が表示されます。
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME:ServiceName
TYPE : 10 WIN32_OWN_PROCESS START_TYPE : 2 AUTO_START ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : C:\Services\ServiceName LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : <Display name> DEPENDENCIES : SERVICE_START_NAME : user-name@domain-name
sc.exe
場合は、ネイキッドではなくを使用してくださいsc
レジストリの編集が必要ですが、サービス情報はにありますHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
。リダイレクトするサービスを見つけ、ImagePath
サブキーを見つけて、その値を変更します。
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"
Run(win + R)を開き、「Regedit.exe」と入力して、「レジストリエディター」を開きます。
HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services
「Apache2.4」を見つけ、フォルダを開き、右側にある「ImagePath」を見つけ、「value Data」の下の「ImagePath」を開き、次のパスを入力します。
"C:\ xampp \ apache \ bin \ httpd.exe" -k runservice foe XAMPPは他のユーザーがApacheがインストールされている場所をポイントし、内部でbinフォルダーを見つけます "C:(Apacheがインストールされている場所)\ bin \ httpd.exe" -k runservice
認証を使用するようにMongoDBサービスを変更しようとしている私のような人のために、この@CodeMakerの回答を少し変更します。
「サービス」の「実行可能ファイルへのパス」を見ると、実行された行にはすでに音声マークが含まれていました。だから私は彼の例に小さな変更を加える必要がありました。
具体的には。
私にとっての道は(スピーチマークに注意)
"C:\Program Files\MongoDB\Server\4.2\bin\mongod.exe" --config "C:\Program Files\MongoDB\Server\4.2\bin\mongod.cfg" --service
コマンドラインで
sc config MongoDB binPath= "<Modified string with \" to replace ">"
私の場合、これは
sc config MongoDB binPath= "\"C:\Program Files\MongoDB\Server\4.2\bin\mongod.exe\" --config \"C:\Program Files\MongoDB\Server\4.2\bin\mongod.cfg\" --service -- auth"
「SC」コマンドで少し深く、すべての「サービス名」を抽出してすべての「QueryServiceConfig」を取得できます:)
>SC QUERY > "%computername%-services.txt" [enter]
>FIND "SERVICE_NAME: " "%computername%-services.txt" /i > "%computername%-services-name.txt" [enter]
>NOTEPAD2 "%computername%-services-name.txt" [enter]
次に、「CMD」に進みます。
>FOR /F "DELIMS= SKIP=2" %S IN ('TYPE "%computername%-services-name.txt"') DO @SC QC "%S" >> "%computername%-services-list-config.txt" [enter]
>NOTEPAD2 "%computername%-services-list-config.txt" [enter]
生データは「将来のバッチファイル」を供給する準備ができているので、結果は以下のようになります!!!
+ -------------+-------------------------+---------------------------+---------------+--------------------------------------------------+------------------+-----+----------------+--------------+--------------------+
| SERVICE_NAME | TYPE | START_TYPE | ERROR_CONTROL | BINARY_PATH_NAME | LOAD_ORDER_GROUP | TAG | DISPLAY_NAME | DEPENDENCIES | SERVICE_START_NAME |
+ -------------+-------------------------+---------------------------+---------------+--------------------------------------------------+------------------+-----+----------------+--------------+--------------------+
+ WSearch | 10 WIN32_OWN_PROCESS | 2 AUTO_START (DELAYED) | 1 NORMAL | C:\Windows\system32\SearchIndexer.exe /Embedding | none | 0 | Windows Search | RPCSS | LocalSystem |
+ wuauserv | 20 WIN32_SHARE_PROCESS | 2 AUTO_START (DELAYED) | 1 NORMAL | C:\Windows\system32\svchost.exe -k netsvcs | none | 0 | Windows Update | rpcss | LocalSystem |
しかし、HTMLはかなり簡単になります:D
改善のための明るいアイデアは大歓迎ですV ^ _ ^
sc
、はるかに、はるかに簡単で、めちゃくちゃにしたくないものを使用します。
sc config mssqlserver binPath= "\"F:\SQL DATA\MSSQL10.MSSQLSERVER\MSSQL\Binn\sqlservr.exe\" -sMSSQLSERVER"