ติดตั้งบริการ Windows โดยใช้พรอมต์คำสั่ง Windows หรือไม่


323

ฉันต้องการติดตั้งบริการ Windows โดยใช้พรอมต์คำสั่ง Windows (ไม่ใช่พรอมต์คำสั่ง Visual Studio)

ฉันจะทำสิ่งนี้ได้อย่างไร

คำตอบ:


517

นำทางไปที่ installutil.exe ในโฟลเดอร์. net ของคุณ (สำหรับ. net 4 เป็น C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 เป็นต้น) และใช้เพื่อติดตั้งบริการของคุณดังนี้:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"

35
ถ้าเป็นบริการที่คอมไพล์ด้วย x64 ให้ใช้ "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe"
nme

20
ฉันพบข้อผิดพลาดแปลก ๆ ไม่มีตัวติดตั้งสาธารณะที่มี RunInstallerAttribute พบแอตทริบิวต์ได้ในชุดประกอบ. exe ลบไฟล์ InstallState เนื่องจากไม่มีตัวติดตั้ง
Nick

1
สวัสดีฉันลองใช้วิธีแก้ไขปัญหานี้ แต่ให้ข้อยกเว้นเป็น "... ไม่พบไฟล์หรือหนึ่งในการอ้างอิง" กรุณาช่วย.
ShaileshDev

สำหรับทุกคนที่มีปัญหาเช่นเดียวกับสิ่งเหล่านี้และฉัน: คุณไม่จำเป็นต้องใส่เส้นทางทั้งหมดอีกต่อไป installutil.exe ง่ายๆ "C: \ YourProject.exe" ก็เพียงพอแล้ว
Cataklysim

1
@Cataklysim คุณจะต้องใช้เส้นทางแบบเต็มยกเว้นว่าคุณเพิ่มลงในตัวแปรสภาพแวดล้อมของเส้นทาง
BluE

211

ไม่มีอะไรผิดปกติกับคำสั่ง SC Create คุณเพียงแค่ต้องรู้เนื้อหาที่ถูกต้อง:

SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"

27
นี่เป็นคำตอบเดียวที่อ้างอิงถึงวิธีการอย่างเป็นทางการในการติดตั้ง / แก้ไข / ลบบริการ ยิ่งไปกว่านั้นมันไม่ได้ขึ้นอยู่กับ. NET Framework ที่กำลังติดตั้งและทำงานกับไฟล์ประเภทใด ๆ
Alejandro

7
ใช่ .. ทำไมฉันชอบวิธีนี้และให้คำแนะนำเสมอเนื่องจากงานทั้งหมดจะต้องทำใน exe ซึ่งสามารถเป็นรุ่นใด ๆ . net fw
Sid

1
น่าสังเกตว่าคำสั่งนี้ใช้ได้เฉพาะกับเซิร์ฟเวอร์ windows (และบาง windows รุ่นที่เก่ากว่า) Win 10 มีscคำสั่งด้วยเช่นกัน แต่มันแตกต่างกันไม่สามารถใช้ในการลงทะเบียนบริการได้
Captain Dashenka

4
โปรดทราบว่าช่องว่างหลัง "binpath =" มีความจำเป็น @ParamvirSinghKarwal
Urk

1
หากใช้ powershell เพื่อเรียกใช้คำสั่งนี้โปรดทราบว่า SC เป็นนามแฝงสำหรับชุดเนื้อหา การเขียน SC.exe จะแก้ไขได้
Jesper Riemer Andersen

84

หากชื่อไดเรกทอรีมีช่องว่างเช่นc:\program files\abc 123นั้นคุณต้องใช้เครื่องหมายคำพูดคู่รอบ ๆ พา ธ

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

ติดตั้งบริการ windows จากพรอมต์คำสั่ง

มันทำให้ง่ายขึ้นมากถ้าคุณตั้งค่าไฟล์ bat ดังต่อไปนี้

เช่นหากต้องการติดตั้งบริการให้สร้าง "myserviceinstaller.bat" และ " 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

เพื่อถอนการติดตั้งบริการ

เพียงเพิ่ม-uลงในคำสั่ง 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"

16

ดำเนินการดังต่อไปนี้:

  1. เริ่มต้นพรอมต์คำสั่ง (CMD) ด้วยสิทธิ์ผู้ดูแลระบบ
  2. ชนิด c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
  3. กดreturnและนั่นคือ!

สิ่งสำคัญคือการเปิดด้วยสิทธิ์ผู้ดูแลระบบมิฉะนั้นคุณอาจพบข้อผิดพลาดที่เกิดขึ้นซึ่งไม่สมเหตุสมผล หากคุณได้รับสิ่งใดให้ตรวจสอบว่าคุณได้เปิดด้วยสิทธิ์ผู้ดูแลระบบก่อน!

หากต้องการเปิดด้วยสิทธิ์ผู้ดูแลระบบให้คลิกขวาที่ 'Command Prompt' และเลือก 'Run as administrator'

ที่มา: http://coderamblings.wordpress.com/2012/07/24/how-to-install-a-windows-service-using-the-command-prompt/


11

บริการติดตั้ง: -

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

UnInstall Sevice: -

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

6

ฉันต้องเพิ่มอีกหนึ่งจุดในชุดข้อความนี้ ในการติดตั้ง / ถอนการติดตั้ง64-bitชุดประกอบหนึ่งควรใช้64-bitรุ่นของเครื่องมือ ในการติดตั้งบริการคำสั่งควรเป็น:

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

และการถอนการติดตั้งคำสั่งควรเป็น:

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

4

สร้าง*.batไฟล์ข้างในการให้บริการของคุณหน้าต่างexeไฟล์สำหรับการติดตั้งกับบริบทต่อไปนี้:

CLS
ECHO Installing My Windows Service 

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

สร้าง*.batไฟล์ข้างในการให้บริการของคุณหน้าต่างexeไฟล์สำหรับการถอนการติดตั้งกับบริบทต่อไปนี้:

CLS
ECHO Uninstalling My Windows Service 

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

เรียกใช้แต่ละbatไฟล์ในฐานะผู้ดูแลระบบเพื่อติดตั้งหรือถอนการติดตั้งบริการ windows ของคุณ


2
  1. เรียกใช้พรอมต์คำสั่งของ Windows ในฐานะผู้ดูแลระบบ
  2. วางรหัสนี้: cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\เพื่อไปที่โฟลเดอร์
  3. แก้ไขและเรียกใช้สิ่งนี้ด้วย: installutil C:\ProjectFolder\bin\Debug\MyProject.exe

หมายเหตุ:ในการถอนการติดตั้ง:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe


2

เปิด Visual Studio และเลือกโครงการใหม่โดยเลือกWindows ServiceเทมเพลตในWindows Desktopแท็บ กว่าคัดลอกรหัสต่อไปนี้ลงในไฟล์ service_name.cs ของคุณ

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." });
        }
    }
}

คลิกขวาที่ไฟล์ service_name.cs แล้วเปิดตัวออกแบบบริการ Add Installerกว่าคลิกขวาและเลือก กว่าคลิกขวาบนserviceProcessInstaller1และเปลี่ยนค่าของคุณสมบัติของการAccountจากไปUserLocal System

ลบstatic void mainวิธีการจากProgram.csไฟล์ กว่าบันทึกและสร้างโครงการของคุณ

หมายเหตุ:bin\Ddebugโฟลเดอร์goto ของโฟลเดอร์โครงการของคุณ กว่าเปิดคุณสมบัติของservice_name.exeไฟล์ของคุณ กว่าCompatibilityแท็บgoto Change Settings For All Usersกว่าการคลิกที่

Run this program as an administratorเลือกตัวเลือก

ตอนนี้คุณต้องเปิด CommandPromt ในฐานะผู้ดูแลระบบ หลังจากเปิดให้ตั้งค่าไดเรกทอรีเป็นที่InstallUtil.exeเก็บไฟล์ของคุณ สำหรับอดีต: C:\Windows\Microsoft.NET\Framework64\v4.0.30319. ตอนนี้เขียนคำสั่งต่อไปนี้:

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

หมายเหตุ: -i ใช้สำหรับติดตั้งบริการและ -u สำหรับ Unsinstall

หลังจาก -i ตั้งค่าการเขียนเส้นทางที่คุณต้องการติดตั้งบริการของคุณ

ตอนนี้เขียนคำสั่งใน CommandPromt ดังนี้:

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

หมายเหตุ:ใช้stopสำหรับหยุดการบริการ

ViewEventLog.exeตอนนี้เปิด เลือกบันทึก Windows> แอปพลิเคชัน ที่นั่นคุณสามารถตรวจสอบบันทึกของบริการโดยเริ่มและหยุดบริการ


2

หากคุณใช้ Powershell และคุณต้องการติดตั้งบริการ. NET คุณสามารถใช้โมดูลบริการติดตั้งได้ มันเป็นเสื้อคลุมสำหรับเครื่องมือ InstalUtil

มันแสดงคำสั่ง 3

  • บริการติดตั้ง - เรียกใช้  คำสั่งInstallUtil.exe pathToExecutable
  • Install-ServiceIfNotInstalled - ก่อนอื่นตรวจสอบว่ามีการติดตั้งบริการหรือไม่หากไม่ได้ใช้วิธีการติดตั้งบริการ
  • ถอนการติดตั้งบริการมันถอนการติดตั้งบริการ สามารถใช้ชื่อบริการของพา ธ ไปยังไฟล์ปฏิบัติการได้

รหัสของโมดูลนี้สามารถดูได้ที่นี่


1
  1. เริ่มต้นพรอมต์คำสั่ง (CMD) ด้วยสิทธิ์ผู้ดูแลระบบ
  2. พิมพ์ c: \ windows \ microsoft.net \ framework \ v4.0.30319 \ installutil.exe [เส้นทางบริการ windows ของคุณไปที่ exe]
  3. กดปุ่มย้อนกลับ

1

รหัสต่อไปนี้ติดตั้งและถอนการติดตั้งบริการ

เปิดพรอมต์คำสั่งและเรียกใช้โปรแกรมในฐานะผู้ดูแลระบบแล้วใช้คำสั่งด้านล่างแล้วกด Enter

วากยสัมพันธ์

ติดตั้ง

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

เช่น: พา ธ ของเรา InstallUtil.exe C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

เพื่อถอนการติดตั้ง

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

เช่น: พา ธ ของเรา InstallUtil.exe -u C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

สำหรับความช่วยเหลือเพิ่มเติมคุณสามารถดูลิงค์ต่อไปนี้: โปรแกรมตัวอย่าง


1

ทำตามขั้นตอนเมื่อปรับใช้บริการ Windows ไม่เสียเวลา

1- เรียกใช้พรอมต์คำสั่งโดยผู้ดูแลระบบที่ถูกต้อง

2- ประกันเกี่ยวกับโหมดการปล่อยเมื่อทำการคอมไพล์ใน IDE ของคุณ

3- ให้ประเภทกับตัวติดตั้งโครงการของคุณในมุมมองออกแบบ

4- เลือกประเภทการตรวจสอบความถูกต้องตามกรณี

5- ประกันเกี่ยวกับการพึ่งพาซอฟต์แวร์: หากคุณใช้ใบรับรองติดตั้งอย่างถูกต้อง

6- ไปที่คอนโซลของคุณเขียนสิ่งนี้:

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

มีอาร์กิวเมนต์ -i ที่ซ่อนอยู่ก่อนเส้นทาง exe ที่-i c:\คุณสามารถใช้-uสำหรับการถอนการติดตั้ง

7 - ดูเส้นทาง. exe ของคุณเพื่อดูไฟล์บันทึก คุณสามารถใช้ตัวแสดงเหตุการณ์เพื่อสังเกตในคุณสมบัติ


1

เปิดพรอมต์คำสั่งสำหรับนักพัฒนาในฐานะผู้ดูแลระบบและไปที่

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

ตอนนี้ใช้เส้นทางที่เป็นของคุณ.exeมี

InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"

0

เมื่อเวอร์ชันการประกอบและการตั้งค่าโครงการ Visual Studio Biuld ของคุณบน dot net 2 หรือ 4 ติดตั้งด้วยเวอร์ชันเดียวกัน

บริการติดตั้งด้วยinstallutilรุ่นเดียวกันนั้น

ถ้าสร้างใน dot net 4

ชนิด c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe

ถ้าสร้างใน dot net 2

ชนิด c:\windows\microsoft.net\framework\v2.0.11319\installutil.exe


0

1. จากเมนู Start เลือกไดเรกทอรี Visual Studio จากนั้นเลือก Developer Command Prompt สำหรับ VS

2. พรอมต์คำสั่งสำหรับนักพัฒนาสำหรับ Visual Studio จะปรากฏขึ้น

3. เข้าถึงไดเรกทอรีที่มีไฟล์ปฏิบัติการของโครงการของคุณ

4. เรียกใช้ InstallUtil.exe จากพรอมต์คำสั่งพร้อมกับปฏิบัติการของโครงการเป็นพารามิเตอร์



-1

เปิดพรอมต์คำสั่งในฐานะผู้ดูแลระบบไปที่โฟลเดอร์ที่คุณ.exeอาศัย เพื่อติดตั้งExeเป็นบริการ

D:\YourFolderName\YourExeName /i

/uการถอนการติดตั้งการใช้งาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.