Saya menginstal layanan windows menggunakan installUtil.exe.
Setelah memperbarui kode saya menggunakan installUtil.exe lagi untuk menginstal layanan tanpa menghapus instalasi versi asli terlebih dahulu.
Ketika saya sekarang mencoba untuk menghapus instalasi layanan, installUtil.exe berhasil menyelesaikan uninstall, tetapi layanan masih muncul.
Jika saya mencoba mengubah propertinya, saya menerima pesan 'layanan ditandai untuk dihapus'.
Bagaimana saya bisa memaksa penghapusan (lebih disukai tanpa me-restart server)?
.net
windows-services
Manu
sumber
sumber
Jawaban:
Satu hal yang menarik saya di masa lalu adalah bahwa jika Anda memiliki layanan penampil berjalan maka itu mencegah layanan dari sepenuhnya dihapus, begitu dekat sehingga sebelumnya
sumber
Anda tidak perlu me-restart mesin Anda. Mulai cmd atau PowerShell dalam mode tinggi.
Maka Anda akan mendapatkan beberapa info. Nomor PID akan ditampilkan.
Di mana / f adalah untuk memaksa berhenti.
Sekarang Anda dapat menginstal atau meluncurkan layanan Anda.
sumber
sc.exe queryex <SERVICENAME>
. Karenasc
juga merupakan alias untukSet-Content
, Diam-diam akan gagal ketika Anda menggunakannya.baik, Anda dapat menggunakan SC.EXE untuk menghapus Windows service dengan paksa jika un-install tidak menghapus secara kebetulan.
Baca lebih lanjut tentang "MS Techno Blogging" Menghapus Layanan Secara Paksa dari Layanan MMC
sumber
sc delete
juga akan melaporkan "layanan ditandai untuk dihapus" jika ada pegangan yang terbuka untuk layanan.Saya tahu ini tidak akan membantu, tetapi mungkin membantu seseorang di masa depan.
Saya baru saja mengalami masalah yang sama, menutup dan membuka kembali manajer layanan menghapus entri dari registri dan menyelesaikan penghapusan instalasi layanan.
Sebelumnya, menyegarkan manajer layanan tidak membantu.
sumber
Pastikan layanan dihentikan sebelum melakukan ini. Saya sering melihat pekerjaan ini. Ada kalanya saya melihat windows macet pada sesuatu dan bersikeras reboot.
sumber
Tutup cmd dan jendela layanan jika dibuka, lalu mulai cmd lagi dengan mengklik kanan dan memilih run as administrator. Jika
sc delete sericeName
tidak berhasil atau apapun tidak berfungsi.http://weblogs.asp.net/avnerk/archive/2007/09/05/windows-services-services-msc-and-the-quot-this-service-is-marked-for-deletion-quot-error. aspx
sumber
Sayangnya, Anda harus memulai ulang server. Itu harus menghapus layanan "dihapus".
sumber
Kalau-kalau jawaban ini membantu seseorang: seperti yang ditemukan di sini , Anda mungkin menyelamatkan diri Anda dari banyak kesulitan menjalankan Autoruns Sysinternals sebagai administrator. Buka saja tab "Layanan" dan hapus layanan Anda.
Itu melakukan trik untuk saya pada mesin di mana saya tidak memiliki izin untuk mengedit registri.
sumber
Anda dapat secara manual menghapus kunci registri untuk layanan Anda, yang terletak di
HKLM\SYSTEM\CurrentControlSet\Services
, setelah itu Anda tidak akan melihat layanan di manajer kontrol layanan (perlu menyegarkan atau membuka kembali untuk melihat perubahan), dan Anda dapat menginstal ulang layanan seperti biasa.sumber
Berikut ini akan berfungsi tanpa menghidupkan ulang mesin:
sumber
Sudahkah Anda mencoba menghentikan layanan sebelum menelepon untuk menghapus instalan? Saya punya masalah ini secara acak. Kadang saya bisa menghapusnya tanpa memulai ulang. Dugaan saya adalah bahwa hal itu berkaitan dengan layanan yang masih berjalan
sumber
Saya terlambat, tetapi ingin menambahkan alternatif, yang mungkin terlihat aneh, tetapi saya tidak melihat cara lain:
Ketika saya menginstal Layanan Windows saya dalam proses CI setiap malam, saya membutuhkan sesuatu yang berfungsi sepanjang waktu dan sepenuhnya otomatis. Untuk beberapa alasan, layanan selalu ditandai untuk dihapus untuk waktu yang lama (5 menit atau lebih) setelah mencopotnya. Oleh karena itu, saya memperluas skrip batch instalasi ulang untuk memastikan bahwa layanan tersebut benar-benar dihapus (versi yang disederhanakan):
Apa yang bisa saya lihat, adalah bahwa layanan ditandai untuk dihapus selama sekitar 5 menit (!) Sampai akhirnya melewati. Akhirnya, saya tidak membutuhkan intervensi manual lagi. Saya akan memperpanjang skrip di masa depan sehingga sesuatu terjadi setelah waktu tertentu (mis. Pemberitahuan setelah 30 menit).
sumber
Ini berhasil untuk saya
sumber
ReturnValue : 16
, maka perintah gagal dengan " Layanan ini sedang dihapus dari sistem ". Daftar lengkap ReturnValues dari Microsoft di siniJika Anda tidak dapat menghentikan layanan di Layanan , Anda dapat menghentikan exe layanan windows di Task Manager . Setelah itu, Anda dapat menghapus layanan.
sumber
Menyegarkan daftar layanan selalu berhasil untuk saya. Jika jendela layanan terbuka, itu akan menampung sebagian memori yang ada karena suatu alasan. F5 dan saya menginstal ulang lagi!
sumber
Pastikan juga bahwa tidak ada contoh executable yang masih aktif (mungkin yang dijalankan, untuk alasan apa pun, terlepas dari layanan).
Saya membuka dan menutup MMC dan mencari PID untuk dibunuh - tetapi ketika mencari di penjelajah proses ada beberapa proses yang masih berjalan dari batch terjadwal yang terlupakan. Membunuh mereka. Pekerjaan selesai.
sumber
Ada banyak pertanyaan di forum tentang hal itu.
Saya telah menemukan jawabannya di windows api. Anda tidak perlu me-restart komputer setelah menghapus instalasi layanan. Anda harus menelepon:
Itu menutup pegangan layanan. Pada windows 7 itu memecahkan masalah saya. Saya lakukan:
sumber
Saya menggunakan PowerShell berikut ini yang dirangkai bersama dari beberapa tempat untuk contoh Octopus Deploy kami ketika TopShelf kacau atau layanan gagal karena alasan lain.
sumber
Perlu juga dicatat bahwa ini:
tidak bekerja di PowerShell, sc adalah alias untuk Set-Content cmdlet di PowerShell. Yang perlu Anda lakukan:
sumber