Я хочу змінити шлях до виконуваного файлу для служби з командного рядка.
Як я можу це зробити?
Я хочу запустити інший .EXE зі шляху цієї служби до виконуваного файлу.
Я хочу змінити шлях до виконуваного файлу для служби з командного рядка.
Як я можу це зробити?
Я хочу запустити інший .EXE зі шляху цієї служби до виконуваного файлу.
Відповіді:
За допомогою sc config
команди можна змінити шлях, на який вказує служба:
SC CONFIG YourServiceName binPath= "C:\SomeDirectory\YourFile.EXE"
Це оновить виклик служби YourServiceName
та змінить запис "Шлях до виконуваного" C:\SomeDirectory\YourFile.EXE
. Ви хочете після цього перезапустити службу, що можна зробити з:
NET STOP YourServiceName & NET START YourServiceName
Path to executable
також містять лапки та інші параметри? Наприклад: "C:\Program Files\CollabNet\Subversion Server\svnserve.exe" --service -r "E:\Repositories" --listen-port "3690"
мені на жаль довелося пройти маршрут regedit для цього.
Вам потрібно буде це зробити в реєстрі:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services
Перейдіть до служби, а потім змініть ім'я зображення, щоб відобразити новий шлях
Як завжди, зробіть резервну копію системи PRIOR.
Ви також можете це зробити з 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 як адміністратора:
(наприклад, для C: \ Program Files (x86) \ YourService \ YourProcess.exe)
SC CONFIG YourService binPath= "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
Ви можете виконати наступні дії із Powerhell як адміністратора:
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"