Bir hizmet için yürütülebilir dosyanın yolunu komut satırından değiştirmek istiyorum.
Bunu nasıl yapabilirim?
Bu hizmetin yolundan çalıştırılabilir dosyaya başka bir .exe çalıştırmak istiyorum.
Bir hizmet için yürütülebilir dosyanın yolunu komut satırından değiştirmek istiyorum.
Bunu nasıl yapabilirim?
Bu hizmetin yolundan çalıştırılabilir dosyaya başka bir .exe çalıştırmak istiyorum.
Yanıtlar:
sc config
Bir servisin işaret ettiği yolu değiştirmek için komutu kullanabilirsiniz :
SC CONFIG YourServiceName binPath= "C:\SomeDirectory\YourFile.EXE"
Bu, çağrılan hizmeti günceller YourServiceName
ve "Çalıştırılabilir Yol" girişini değiştirir C:\SomeDirectory\YourFile.EXE
. Servisinizi daha sonra yeniden başlatmak isteyeceksiniz, ki bunlarla yapabilirsiniz:
NET STOP YourServiceName & NET START YourServiceName
Path to executable
tırnak ve diğer parametreler içeriyorsa? Örneğin: "C:\Program Files\CollabNet\Subversion Server\svnserve.exe" --service -r "E:\Repositories" --listen-port "3690"
Maalesef bunun için regedit rotasına gitmek zorunda kaldım.
Bunu kayıt defterinde yapmanız gerekecektir:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services
Servise gidin, ardından yeni yolu yansıtacak şekilde görüntü adını değiştirin.
Her zaman olduğu gibi, PRIOR sistemini yedekleyin.
PowerShell ile de yapabilirsiniz:
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")
Veya:
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\My Service" `
-Name ImagePath -Value "C:\Program Files (x86)\My Service\NewName.EXE"
Yukarıda verilen cevap çok iyi sonuç veriyor, cevap veremiyorum, ancak yoldan alıntılar veya başka argümanlar olması durumunda eklemek için, kayıt defterinde bir işaretsiz yol açığı düzeltmek için bir imgelem gibi CMD'den yönetici olarak aşağıdakileri yapabilirsiniz :
(örneğin, C: \ Program Dosyaları (x86) \ YourService \ YourProcess.exe için)
SC CONFIG YourService binPath= "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
powershell'den admin olarak aşağıdakileri yapabilirsiniz :
SC.exe CONFIG YourService binPath= --% "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
Bunlar size aşağıdaki sonucu verecektir:
"C:\Program Files (x86)\YourService\YourProcess.exe"
... kanlı argümanlar ve kaçan parametreler bir kabus! Umarım bu gelecekte birine yardımcı olur.
Bir hizmeti yürütmek için yolunuzu doğrudan düzenleyemezsiniz. Bunun için sc komutunu kullanabilirsiniz,
Komut isteminizi yönetici olarak açın ve aşağıdaki komutu yazın,
SC CONFIG ServiceName binPath= "Path of your file"
Örneğin:
sc config MongoDB binPath="I:\Programming\MongoDB\MongoDB\bin\mongod.exe --config I:\Programming\MongoDB\MongoDB\bin\mongod.cfg --service"