Czy zainstalować usługę Windows za pomocą wiersza polecenia systemu Windows?

323

Chcę zainstalować usługę systemu Windows za pomocą wiersza polecenia systemu Windows (nie wiersza polecenia programu Visual Studio).

Jak mam to zrobic?

Vikash Pandey
źródło

Odpowiedzi:

517

Przejdź do pliku installutil.exe w folderze .net (na przykład .net 4 to C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319) i użyj go do zainstalowania usługi, w następujący sposób:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"
hcb
źródło
35
Jeśli jest to usługa skompilowana x64, użyj „C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe”.
nme
20
Mam dziwny błąd. Brak publicznego instalatora z RunInstallerAttribute. Tak atrybut można znaleźć w zestawie .exe. Usuń plik InstallState, ponieważ nie ma instalatorów
Nick
1
Cześć, wypróbowałem to rozwiązanie, ale daje ono wyjątek jako „... nie znaleziono pliku lub jedna z jego zależności”. Proszę pomóż.
ShaileshDev
Dla wszystkich, którzy mają ten sam problem, co ja i wszyscy: nie musisz już w to wkładać całej ścieżki. wystarczy prosty installutil.exe „C: \ YourProject.exe”.
Cataklysim,
1
@Cataklysim Musisz użyć pełnej ścieżki, chyba że dodałeś ją do zmiennej środowiskowej path.
BluE
211

Nic złego w poleceniu SC Create. Musisz tylko znać poprawne argumenty:

SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"
Sid
źródło
27
To jedyna odpowiedź, która odwołuje się do oficjalnego sposobu instalowania / modyfikowania / usuwania usługi. Co więcej, nie zależy to od zainstalowanego .NET Framework i działa z dowolnym rodzajem pliku, nie tylko z plikami binarnymi .NET.
Alejandro
7
Tak .. właśnie dlatego podobało mi się to podejście i zawsze doradzam, ponieważ cała praca musi być wykonana w pliku exe, który może należeć do dowolnej wersji .net fw.
Sid
1
warto zauważyć, że to polecenie jest dostępne tylko dla serwera Windows (i niektórych starszych wersji Windows). Win 10 ma również scpolecenie, ale jest coś innego, nie można go używać do rejestrowania usług.
Kapitan Dashenka,
4
Zauważ, że spacja po „binpath =” jest konieczna. @ParamvirSinghKarwal
Urk
1
Jeśli używasz programu PowerShell do uruchomienia tego polecenia, zauważ, że SC jest aliasem dla Set-Content. Pisanie SC.exe to naprawi.
Jesper Riemer Andersen
84

Jeśli nazwa katalogu ma spację c:\program files\abc 123, musisz użyć podwójnych cudzysłowów wokół ścieżki.

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

Zainstaluj usługę systemu Windows z wiersza polecenia

To znacznie ułatwia, jeśli skonfigurujesz plik nietoperza, taki jak śledzenie,

np. Aby zainstalować usługę, utwórz „myserviceinstaller.bat” i „ Uruchom jako 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

odinstalować usługę,

Wystarczy dodać -u do komendy 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
źródło
16

Wykonaj następujące czynności:

  1. Uruchom wiersz polecenia (CMD) z uprawnieniami administratora.
  2. Rodzaj c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
  3. Naciśnij returni to wszystko!

Ważne jest, aby otworzyć z uprawnieniami administratora, w przeciwnym razie mogą pojawić się błędy, które nie mają sensu. Jeśli otrzymasz, najpierw sprawdź, czy otworzyłeś go z uprawnieniami administratora!

Aby otworzyć z uprawnieniami administratora , kliknij prawym przyciskiem myszy „Wiersz polecenia” i wybierz „Uruchom jako administrator”.

Źródło: http://coderamblings.wordpress.com/2012/07/24/how-to-install-a-windows-service-using-the-command-prompt/

Baza33
źródło
11

Zainstaluj usługę: -

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

Odinstaluj urządzenie: -

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" -u "C:\Services\myservice.Service.exe"
Kaushik AppzyTech
źródło
6

Muszę dodać jeszcze jeden punkt w tym wątku. Aby zainstalować / odinstalować 64-bitwersję zestawu, należy użyć 64-bitwersji narzędzia. Aby zainstalować usługę, polecenie powinno brzmieć:

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

i aby odinstalować polecenie powinno być:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u
"C:\YourFolder\YourService.exe"
MKR
źródło
4

Utwórz *.batplik obok swojego usługa Windows exeplik do instalacji w następującym kontekście:

CLS
ECHO Installing My Windows Service 

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

Utwórz *.batplik obok swojego usługa Windows exeplik o odinstalowanie z następującym kontekście:

CLS
ECHO Uninstalling My Windows Service 

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

Uruchom każdy batplik jako Administrator, aby zainstalować lub odinstalować usługę Windows.

Mohammad Dayyan
źródło
2
  1. Uruchom wiersz polecenia systemu Windows jako administrator
  2. wklej ten kod: cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\aby przejść do folderu
  3. edytuj i uruchom także: installutil C:\ProjectFolder\bin\Debug\MyProject.exe

Uwaga: Aby odinstalować:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe

Oguzhan KIRCALI
źródło
2

Otwórz Visual Studio i wybierz nowy projekt, wybierając Windows Serviceszablon na Windows Desktopkarcie. Następnie skopiuj poniższy kod do pliku nazwa_usługi.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." });
        }
    }
}

Kliknij prawym przyciskiem myszy plik nazwa_usługi.cs i otwórz projektanta usługi. niż prawym przyciskiem myszy i wybierz Add Installer. niż kliknij prawym przyciskiem myszy serviceProcessInstaller1i zmień wartość jego właściwości Accountz UsernaLocal System .

Usuń static void mainmetodę z Program.cspliku. Następnie zapisz i zbuduj swój projekt.

UWAGA:bin\Ddebug folder goto folderu projektu. Niż otwórz Właściwości service_name.exepliku. Niż Compatibilityzakładka goto . Niż kliknij Change Settings For All Users.

Wybierz opcję Run this program as an administrator.

Teraz musisz otworzyć CommandPromt jako Administrator. Po otwarciu ustaw katalog, w którym znajduje się InstallUtil.exeplik. ex: C:\Windows\Microsoft.NET\Framework64\v4.0.30319. teraz napisz następujące polecenie:

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

Uwaga: -i służy do instalacji usługi i -u do odinstalowania.

po -i ustaw ścieżkę zapisu, w której chcesz zainstalować usługę.

teraz napisz polecenie w CommandPromt w następujący sposób:

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

Uwaga: użyj, stopaby zatrzymać usługę.

Teraz otwórz ViewEventLog.exe. Wybierz Dzienniki systemu Windows> Aplikacja. Tam możesz sprawdzić dziennik usługi, uruchamiając i zatrzymując usługę.

Karan Raiyani
źródło
2

Jeśli korzystasz z PowerShell i chcesz zainstalować usługę .NET, możesz użyć modułu Install-Service . Jest to opakowanie dla narzędzia InstalUtil.

Udostępnia 3 polecenia

  • Install-Service - wywołuje  polecenie InstallUtil.exe pathToExecutable
  • Install-ServiceIfNotInstalled - najpierw sprawdza, czy usługa jest zainstalowana, jeśli nie wykonaj metody Install-Service
  • Uninstall-Service - odinstalowuje usługę. ServiceName ścieżki do pliku wykonywalnego może być użyty.

Kod tego modułu można obejrzeć tutaj

Paweł Wujczyk
źródło
1
  1. uruchom wiersz polecenia (CMD) z uprawnieniami administratora.
  2. Wpisz c: \ windows \ microsoft.net \ framework \ v4.0.30319 \ installutil.exe [ścieżka usługi Windows do pliku exe]
  3. Naciśnij klawisz powrotu
jaki serwer
źródło
1

poniższy kod, zainstaluj i odinstaluj usługę,

Otwórz wiersz polecenia i uruchom program jako administrator uruchom poniższe polecenie i naciśnij klawisz Enter.

Składnia

Żeby zainstalować

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

np .: Nasza ścieżka InstallUtil.exe C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

Aby odinstalować

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

np .: Nasza ścieżka InstallUtil.exe -u C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

Aby uzyskać dodatkową pomoc, możesz zobaczyć następujący link: przykładowy program

Joji Thomas Eapen
źródło
1

Postępuj zgodnie ze wskazówkami podczas wdrażania usługi Windows, nie trać czasu

1- Uruchom wiersz polecenia z uprawnieniami administratora

2- Zapewnij tryb zwolnienia podczas wypełniania swojego IDE

3- Podaj typ dla instalatora projektu w widoku projektu

4- Wybierz typ uwierzytelnienia zgodnie ze sprawą

5- Zapewnij zależności oprogramowania: Jeśli używasz certyfikatu, zainstaluj go poprawnie

6- Przejdź do konsoli, napisz to:

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

przed ścieżką exe -i c:\można użyć ukrytego argumentu -i, którego można użyć -udo odinstalowania

7- Sprawdź swoją ścieżkę .exe, aby wyglądać na plik dziennika. Możesz użyć podglądu zdarzeń do obserwacji w obiekcie

Hamit YILDIRIM
źródło
1

otwórz wiersz polecenia programisty jako Administrator i przejdź do

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

Teraz użyj ścieżki, gdzie jest twoje .exemiejsce

InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"
Arvind Chourasiya
źródło
0

gdy wersja zestawu i projekt Visual Studio projektu Biuld na dot net 2 lub 4 instalują tę samą wersję.

zainstaluj usługę z installutiltą samą wersją

jeśli wbudowana kropka 4

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

jeśli wbudowany 2-punktowy

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

szabla tabatabaee yazdi
źródło
0

1. Z menu Start wybierz katalog Visual Studio, a następnie wybierz Wiersz polecenia programisty dla VS.

2. Pojawi się wiersz poleceń programisty dla programu Visual Studio.

3. Uzyskaj dostęp do katalogu, w którym znajduje się skompilowany plik wykonywalny projektu.

4. Uruchom InstallUtil.exe z wiersza polecenia z plikiem wykonywalnym projektu jako parametrem

AMIR2580
źródło
-1

Powinieneś otworzyć wiersz polecenia, przejdź do

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

Ekspert Soft-Web
źródło
-1

Otwórz wiersz polecenia jako administrator, przejdź do folderu, w którym się .exeznajdujesz. Aby zainstalować Exejako usługę

D:\YourFolderName\YourExeName /i

Aby odinstalować użyj /u.

Duński Sulaiman
źródło