Instal layanan Windows menggunakan prompt perintah Windows?

323

Saya ingin menginstal layanan Windows menggunakan prompt perintah Windows (bukan prompt perintah Visual Studio).

Bagaimana saya melakukan ini?

Vikash Pandey
sumber

Jawaban:

517

Arahkan ke installutil.exe di folder .net Anda (untuk .net 4 itu C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 misalnya) dan gunakan untuk menginstal layanan Anda, seperti ini:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"
hcb
sumber
35
Jika ini adalah layanan yang dikompilasi x64, gunakan "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe".
nme
20
Saya mendapat kesalahan aneh. Tidak ada pemasang publik dengan RunInstallerAttribute. Atribut ya dapat ditemukan di rakitan .exe. Hapus file InstallState karena tidak ada installer
Nick
1
Hai, saya mencoba solusi ini tetapi memberikan pengecualian sebagai "... file tidak ditemukan atau salah satu dari dependensinya." Tolong bantu.
ShaileshDev
Untuk semua orang dengan masalah yang sama dengan semua ini dan saya: Anda tidak perlu meletakkan seluruh jalan di dalamnya lagi. installutil.exe sederhana "C: \ YourProject.exe" sudah cukup.
Cataklysim
1
@Cataklysim Anda harus menggunakan path lengkap, kecuali Anda menambahkannya ke variabel lingkungan path.
BluE
211

Tidak ada yang salah dengan perintah SC Create. Anda hanya perlu tahu args yang benar:

SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"
Sid
sumber
27
Ini adalah satu-satunya jawaban yang merujuk pada cara resmi untuk menginstal / memodifikasi / menghapus layanan. Selain itu, ini tidak tergantung pada .NET Framework yang diinstal dan berfungsi dengan semua jenis file, tidak hanya .NET binari.
Alejandro
7
Ya .. itulah sebabnya saya menyukai pendekatan ini dan selalu menasihatinya karena semua pekerjaan harus dilakukan ke dalam exe yang bisa menjadi milik versi .net fw.
Sid
1
perlu dicatat bahwa perintah ini hanya tersedia untuk server windows (dan beberapa versi windows yang lebih lama). Win 10 memiliki scperintah juga tetapi itu sesuatu yang berbeda, tidak dapat digunakan untuk mendaftar layanan.
Kapten Dashenka
4
Perhatikan bahwa spasi setelah "binpath =" sangat penting. @ParamvirSinghKarwal
Urk
1
Jika menggunakan PowerShell untuk menjalankan perintah ini perhatikan bahwa SC adalah alias untuk Set-Content. Menulis SC.exe akan memperbaikinya.
Jesper Riemer Andersen
84

Jika nama direktori memiliki ruang seperti c:\program files\abc 123, maka Anda harus menggunakan tanda kutip ganda di sekitar jalan.

installutil.exe "c:\program files\abc 123\myservice.exe"

Instal layanan windows dari command prompt

Itu membuat segalanya lebih mudah jika Anda mengatur file bat seperti mengikuti,

mis. Untuk menginstal layanan, buat "myserviceinstaller.bat" dan " Run as Administrator "

@echo off
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
installutil.exe "C:\Services\myservice.exe"

if ERRORLEVEL 1 goto error
exit
:error
echo There was a problem
pause

untuk menghapus layanan,

Cukup tambahkan -u ke perintah installutil.

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "C:\Services\myservice.exe"
Dhanuka777
sumber
16

Lakukan hal berikut:

  1. Mulai prompt perintah (CMD) dengan hak administrator.
  2. Tipe c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
  3. Tekan returndan itu dia!

Sangat penting untuk membuka dengan hak administrator jika tidak Anda mungkin menemukan kesalahan yang muncul yang tidak masuk akal. Jika ada, periksa Anda sudah membukanya dengan hak admin terlebih dahulu!

Untuk membuka dengan hak admin , klik kanan 'Prompt Perintah' dan pilih 'Jalankan sebagai administrator'.

Sumber: http://coderamblings.wordpress.com/2012/07/24/how-to-install-a-windows-service-using-the-command-prompt/

Base33
sumber
11

Instal Layanan: -

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" 
"C:\Services\myservice.exe"

Hapus Instalasi: -

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" -u "C:\Services\myservice.Service.exe"
Kaushik AppzyTech
sumber
6

Saya harus menambahkan satu poin lagi di utas ini. Untuk menginstal / menghapus 64-bitversi rakitan seseorang harus menggunakan 64-bitversi alat. Untuk menginstal layanan, perintahnya harus:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe"
"C:\YourFolder\YourService.exe"

dan untuk menghapus perintahnya harus:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u
"C:\YourFolder\YourService.exe"
MKR
sumber
4

Buat *.batberkas samping layanan jendela Anda exeberkas untuk menginstal dengan konteks berikut:

CLS
ECHO Installing My Windows Service 

START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe"

Buat *.batberkas samping layanan jendela Anda exeberkas untuk menguninstall dengan konteks berikut:

CLS
ECHO Uninstalling My Windows Service 

START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe"

Jalankan setiap batfile sebagai Admin untuk menginstal atau menghapus instalan layanan windows Anda.

Mohammad Dayyan
sumber
2
  1. Jalankan Prompt Perintah Windows sebagai Administrator
  2. rekatkan kode ini: cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\untuk membuka folder
  3. edit dan jalankan ini juga: installutil C:\ProjectFolder\bin\Debug\MyProject.exe

Catatan: Untuk menghapus instalasi:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe

Oguzhan KIRCALI
sumber
2

Buka Visual studio dan pilih proyek baru dengan memilih Windows Servicetemplate di Windows Desktoptab. Daripada menyalin kode berikut ke file service_name.cs Anda.

using System.Diagnostics;
using System.ServiceProcess;
namespace TimerService
{
    public partial class Timer_Service : ServiceBase
    {
        public Timer_Service()
        {
            InitializeComponent();
        }
        static void Main()
        {
            if (System.Diagnostics.Debugger.IsAttached)
            {
                Timer_Service service = new Timer_Service();
                service.OnStart(null);
            }
            else
            {
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
                {
                    new Timer_Service()
                };
                ServiceBase.Run(ServicesToRun);
            }
        }
        protected override void OnStart(string[] args)
        {
            EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service start successfully." });
        }
        protected override void OnStop()
        {            
            EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service stop successfully." });
        }
    }
}

Klik kanan pada file service_name.cs dan buka desainer layanan. daripada klik kanan dan pilih Add Installer. daripada klik kanan serviceProcessInstaller1dan ubah nilai propertinya dari Accountdari Usermenjadi Local System.

Hapus static void mainmetode dari Program.csfile. Daripada simpan dan Bangun proyek Anda.

CATATAN:bin\Ddebug folder goto dari folder proyek Anda. Daripada buka Properties service_name.exefile Anda . Daripada Compatibilitytab goto . Daripada klik Change Settings For All Users.

Pilih opsi Run this program as an administrator.

Sekarang, Anda harus membuka CommandPromt sebagai Administrator. Setelah terbuka, setel direktori ke tempat InstallUtil.exefile Anda ditempatkan. untuk ex: C:\Windows\Microsoft.NET\Framework64\v4.0.30319. sekarang tulis perintah berikut:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe -i C:\TimerService\TimerService\bin\Debug\TimerService.exe

Catatan: -i adalah untuk instal, dia servis dan -u untuk Unsinstall.

setelah-i mengatur jalur tulis di mana Anda ingin menginstal layanan Anda.

sekarang tulis perintah di CommandPromt sebagai berikut:

C:\TimerService\TimerService\bin\Debug>net start service_name

Catatan: gunakan stopuntuk menghentikan Layanan.

Sekarang, buka ViewEventLog.exe. Pilih Windows Logs> Aplikasi. Di sana Anda dapat memeriksa log Layanan Anda dengan memulai dan menghentikan layanan.

Karan Raiyani
sumber
2

Jika Anda menggunakan Powershell dan Anda ingin menginstal layanan .NET Anda dapat menggunakan modul Instal-Layanan . Ini adalah pembungkus untuk alat InstalUtil.

Itu memperlihatkan 3 perintah

  • Install-Service - memanggil  perintah InstallUtil.exe pathToExecutable
  • Install-ServiceIfNotInstalled - pertama memeriksa apakah layanan diinstal jika tidak melakukan metode Install-Service
  • Uninstall-Service-it unstall service. ServiceName dari path ke executable dapat digunakan.

Kode untuk modul ini dapat dilihat di sini

Pawel Wujczyk
sumber
1
  1. memulai command prompt (CMD) dengan hak administrator.
  2. Ketik c: \ windows \ microsoft.net \ framework \ v4.0.30319 \ installutil.exe [jalur layanan windows Anda ke exe]
  3. Tekan kembali
server apa
sumber
1

kode berikut, instal dan hapus instalasi Layanan,

Buka prompt perintah dan jalankan program sebagai administrator dan jalankan perintah di bawah ini dan tekan enter.

Sintaksis

Untuk memasang

C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe + Your copied path + \your service name + .exe

misalnya: Jalur Kami InstallUtil.exe C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

Untuk menghapus instalasi

 C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe -u + Your copied path + \your service name + .exe

misalnya: Jalur kami InstallUtil.exe -u C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

untuk bantuan lebih lanjut Anda dapat melihat tautan berikut: contoh program

Joji Thomas Eapen
sumber
1

Bera langkah saat menggunakan Layanan Windows, jangan kehilangan waktu

1- Jalankan command prompt oleh Admin kanan

2- Asuransikan tentang mode rilis saat mengisi di IDE Anda

3 - Berikan jenis untuk installer proyek Anda pada tampilan desain

4 - Pilih tipe otentikasi sesuai kasus

5- Asuransikan tentang ketergantungan perangkat lunak: Jika Anda menggunakan sertifikat, instal dengan benar

6- Buka konsol Anda, tulis ini:

C:\Windows\Microsoft.NET\Framework\yourRecentVersion\installutil.exe c:\yourservice.exe

ada argumen -i tersembunyi sebelum jalur exe -i c:\yang dapat Anda gunakan -uuntuk mencopot pemasangan

7- Lihat path .exe Anda untuk melihat file log. Anda dapat menggunakan penampil acara untuk mengamati dalam fitur

Hamit YILDIRIM
sumber
1

buka command prompt Pengembang sebagai Admin dan arahkan ke

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

Sekarang gunakan jalur di mana Anda berada di .exesana

InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"
Arvind Chourasiya
sumber
0

ketika versi perakitan dan proyek Visual studio Anda pengaturan Biuld di dot net 2 atau 4 instal dengan versi yang sama.

instal layanan dengan installutilversi yang sama

jika membangun di dot net 4

Tipe c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe

jika membangun di dot net 2

Tipe c:\windows\microsoft.net\framework\v2.0.11319\installutil.exe

saber tabatabaee yazdi
sumber
0

1.Dari menu Mulai, pilih direktori Visual Studio, lalu pilih Prompt Perintah Pengembang untuk VS.

2. Prompt Perintah Pengembang untuk Visual Studio muncul.

3.Akses direktori tempat file executable terkompilasi proyek Anda berada.

4.Jalankan InstallUtil.exe dari command prompt dengan executable proyek Anda sebagai parameter

AMIR2580
sumber
-1

Anda harus membuka command prompt, buka

C:\windows\microsoft.net\framework\v4.0.30319\InstallUtil.exe -i ".EXE file of window service"

Pakar Web-Lembut
sumber
-1

Buka command prompt sebagai administrator, buka Folder Anda di mana Anda .exeberada. Untuk Menginstal Exesebagai layanan

D:\YourFolderName\YourExeName /i

Untuk menghapus penggunaan /u.

Sulaiman Denmark
sumber