Saya perlu menanyakan layanan windows agar jalurnya dapat dieksekusi melalui command prompt. Saya pikir cara saya akan melakukan ini adalah:, sc qc myServiceName
tetapi ketika saya melakukan itu, saya mendapatkan kesalahan berikut:
[SC] QueryServiceConfig GAGAL 122:
Area data yang diteruskan ke panggilan sistem terlalu kecil.
[SC] GetServiceConfig membutuhkan 1094 byte
Saya pikir ini berarti bahwa perintah sc mengirim struktur data ke beberapa perpustakaan lain yang terlalu kecil untuk data yang perlu dikembalikan. Alih-alih SC mencoba ulang dengan baik dengan struktur data yang lebih besar (1094 bytes) itu meledak dan memberi saya pesan kesalahan yang jelek ini. Terima kasih, Micro $ oft.
Jadi apakah ada cara untuk mengatasi kesalahan ini? Saya hanya perlu path ke executable, tetapi akan menguraikannya dari beberapa teks lain jika diperlukan.
2^13 = 8192
adalah nilai maksimum untuk ukuran buffer.sc queryex type= service state= all | find /i "myServiceName
daftar semua layanan tetapi sayangnya tidak ada jalur.Saya menemukan solusi yang bisa diterapkan:
reg query "HKLM\System\CurrentControlSet\Services\<serviceName>" /v "ImagePath"
Tentu saja ini membutuhkan beberapa penguraian, tetapi itu memberi saya path lengkap yang disediakan oleh kotak dialog services.msc.
sumber
Anda dapat melakukan ini di PowerShell dengan kueri WMI seperti ini:
Ini akan memberi Anda path lengkap, termasuk opsi seperti yang ditunjukkan di services.msc. Ganti saja
winrm
dalam contoh saya dengan layanan apa pun yang ingin Anda cari.Permintaan di atas untuk
winrm
output harusC:\Windows\System32\svchost.exe -k NetworkService
sumber
Cobalah menggunakan
wmic
utilitas baris perintah. Berikut ini contoh layanan pada mesin saya yang disebutCrashPlanService
.Pada dasarnya
wmic service <<YourService>> get PathName
,.sumber
wmic
(Saya menggunakan Windows 7 SP1)?"")[0].replace("
" "," ")wmic service
bekerja dengan baik. Daftar semua layanan dengan jalurnya.