Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C# для профСссионалов. Π’ΠΎΠΌ IIΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 100

Автор Π‘ΠΈΠΌΠΎΠ½ Робинсон

using System.Collections;

using System.ComponentModel;

using System.Configuration.Install;

namespace Wrox.ProfessionalCSharp {

 /// <summary>

 /// ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ProjectInstaller

 /// </summary>

 [RunInstaller(true)]

 public class ProjectInstaller : System.Configuration.Install.Installer {

ΠšΠ»Π°ΡΡΡ‹ ServiceProcessInstaller ΠΈ ServiceInstaller

Аналогично прилоТСниям Windows Forms ΠΌΠ΅Ρ‚ΠΎΠ΄ InitializeComponent() вызываСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ конструктора класса ProjectInstaller. Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ InitializeComponent() создаСтся экзСмпляр класса ServiceProcessInstaller ΠΈ класса ServiceInstaller. Оба эти класса выводятся ΠΈΠ· класса ComponentInstaller, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сам являСтся Installer.

ΠšΠ»Π°ΡΡΡ‹, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΈΠ· ComponentInstaller, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ части процСсса установки. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ слуТСбный процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ слуТбы. Класс ServiceProcessInstaller примСняСтся для части процСсса установки, Π° класс ServiceInstaller для части слуТбы, поэтому ΠΎΠ΄ΠΈΠ½ экзСмпляр ServiceInstaller трСбуСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ слуТбы. Если Π² процСссС имССтся Ρ‚Ρ€ΠΈ слуТбы, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ServiceInstaller, Π² Ρ‚Π°ΠΊΠΎΠΌ случаС понадобятся Ρ‚Ρ€ΠΈ экзСмпляра ServiceInstaller.

  private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller1;

  private System.ServiceProcess.ServiceInstaller serviceInstaller1;


  /// <summary>

  /// Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ конструктора.

  /// </summary>

  private System.ComponentModel.Container components;

  public ProjectInstaller() {

   // Π­Ρ‚ΠΎΡ‚ Π²Ρ‹Π·ΠΎΠ² Π·Π°Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ конструктором.

   InitializeComponent();

   // TODO: Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ послС Π²Ρ‹Π·ΠΎΠ²Π° InitComponent

  }


  /// <summary>

  /// Π’Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ конструктора β€” Π½Π΅ измСняйтС

  /// содСрТимоС этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π°.

  /// </summary>

  private void InitializeComponent() {

   this.serviceProcessInstaller1 =

    new System.ServiceProcess.ServiceProcessInstaller();

   this.serviceInstaller1 =

    new System.ServiceProcess.ServiceInstaller();

   //

   // serviceProcessInstaller1

   //

   this.serviceProcessInstaller1.Password = null;

   this.serviceProcessInstaller1.UserName = null;

   //

   // serviceInstaller1

   //

   this.serviceInstaller1.ServiceName = "QuoteService";

   //

   // ProjectInstaller

   //

   this.Installers.AddRange(

    new System.Configuration.Install.Installer[] {

    this.serviceProcessInstaller1, this.serviceInstaller1});

  }

 }

}

ServiceProcessInstaller устанавливаСт исполняСмый Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ класс ServiceBase. ServiceProcessInstaller ΠΈΠΌΠ΅Π΅Ρ‚ свойства для всСго процСсса ΠΈ для всСх слуТб Π²Π½ΡƒΡ‚Ρ€ΠΈ процСсса:

Бвойства ServiceProcessInstaller Username, Password Π£ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выполняСтся слуТба, Ссли свойство RunUnderSystemAccount Π·Π°Π΄Π°Π½ΠΎ ΠΊΠ°ΠΊ false. Account Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого свойства ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ слуТба Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с систСмной ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью. HelpText Бвойство Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ справочный тСкст для задания ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ пароля.

ServiceInstaller являСтся классом, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ слуТбы. Он ΠΈΠΌΠ΅Π΅Ρ‚ свойства, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ слуТбы Π²Π½ΡƒΡ‚Ρ€ΠΈ процСсса: StartType, DisplayName, ServiceName ΠΈ ServiceDependedOn:

Бвойства ServiceInstaller StartType Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, запускаСтся Π»ΠΈ слуТба автоматичСски ΠΈΠ»ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния: ServiceStartMode.Automatic, ServiceStartMode.Manual, ServiceStartMode.Disabled. DisplayName ЯвляСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ слуТбы, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выводится ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. Π­Ρ‚ΠΎ имя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ управлСния для контроля ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° слуТбы. ServiceName ЯвляСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ слуТбы. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ свойству ServiceName класса ServiceBase Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ слуТбы. ServicesDependentOn ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ массив слуТб, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ эту слуТбу. Когда слуТба запускаСтся, всС ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ слуТбы Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ автоматичСски.

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ссли измСняСтся имя слуТбы Π² классС, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ ΠΎΡ‚ ServiceBase, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свойство ServiceName Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ServiceInstaller.

Π’ΠΎ врСмя тСстирования Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ StartType ΠΊΠ°ΠΊ Manual (Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ). Если остановка слуТбы ΠΎΡ‚ΠΊΠ°ΠΆΠ΅Ρ‚, этот процСсс нСльзя ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ сконфигурирован для выполнСния Π² контСкстС ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи System. Π­Ρ‚Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ·Π΄Π½Π΅Π΅, ΠΊΠΎΠ³Π΄Π° всС Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

ServiceInstallerDialog

Π”Ρ€ΡƒΠ³ΠΈΠΌ классом установки Π² пространствС ΠΈΠΌΠ΅Π½ System.ServiceProcess.Design являСтся ServiceInstallerDialog. Если ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ систСмный администратор Π²Π²ΠΎΠ΄ΠΈΠ» имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π²ΠΎ врСмя установки, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ этот класс.

Если Π·Π°Π΄Π°Ρ‚ΡŒ свойства Username ΠΈ Password класса ServiceProcessInstaller ΠΊΠ°ΠΊ null, это Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π²ΠΎ врСмя установки. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π² это врСмя ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ установку:

InstallUtil

ПослС добавлСния Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ классов для установки ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ installutil.exe для установки ΠΈ удалСния cΠ»ΡƒΠΆΠ±Ρ‹. Π’Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для этих дСйствий выглядит соотвСтствСнно:

installutil quoteservice.exe

installutil /u quoteservice.exe

Если установка ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ рСгистрации установки InstallUtil.InstallLog ΠΈ <имя_слуТбы>.InstallLog. Π’Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ°ΠΊ "Указанная слуТба ΡƒΠΆΠ΅ сущСствуСт".

ΠšΠ»ΠΈΠ΅Π½Ρ‚ 

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ установки слуТбы ΠΈ запуска Π΅Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ (см. ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π» для Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΉ) ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ слуТбы ММБ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ настройками.

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ слуТбой

Для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ управлСния слуТбой имССтся нСсколько ΡƒΡ‚ΠΈΠ»ΠΈΡ‚. Они относятся ΠΊ слуТбам консоли ММБ, которая, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ административной ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ управлСния ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ систСмы ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки net.exe, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ слуТбами, sc.exe слуТит Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, которая ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‡Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π° net.exe, ΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ Platform SDK. ΠœΡ‹ создадим нСбольшоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Windows, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ класс System.ServiceProcess.ServiceController для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ управлСния слуТбами.

Консоль управлСния Microsoft (ММБ)

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (snap-in) Services ΠΈΠ· консоли управлСния Microsoft (ММБ), ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ статус всСх слуТб. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ слуТбам ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ запросы для останова, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ измСнСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Services являСтся слуТСбной ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ слуТСбной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ:

Π”Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ Π½Π° QuoteService ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ имя слуТбы, описаниС, ΠΏΡƒΡ‚ΡŒ доступа ΠΊ исполняСмому Ρ„Π°ΠΉΠ»Ρƒ, Ρ‚ΠΈΠΏ запуска ΠΈ статус. Π‘Π»ΡƒΠΆΠ±Π° Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π°. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Log On Π² этом Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись для процСсса слуТбы.

net.exe

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Services ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ, Π½ΠΎ систСмный администратор Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π΅Π³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΅Π³ΠΎ нСльзя ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ административного сцСнария. БистСмный администратор ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для Windows Scripting Host, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ свою ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Для этой Π·Π°Π΄Π°Ρ‡ΠΈ сущСствуСт ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки net.exe, ΠΈΠΌΠ΅ΡŽΡ‰Π°ΡΡΡ Π² любой установлСнной систСмС Windows. Π­Ρ‚Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для управлСния слуТбами, net start ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ всС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ слуТбы, net start имя_слуТбы запускаСт слуТбу, net stop имя_слуТбы посылаСт слуТбС запрос останова. МоТно Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ слуТбы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ net pause ΠΈ net continue (ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ссли слуТба это допускаСт).

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ net start ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π² консольном ΠΎΠΊΠ½Π΅:

sc.exe

БущСствуСт малоизвСстная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° sc.exe, которая являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Microsoft Platform SDK. НСобходимо ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Microsoft Platform SDK, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ этой ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅. Microsoft Platform SDK Π½Π΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диска Visual Studio.NET. Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диск β€” Ρ‡Π°ΡΡ‚ΡŒ MSDN, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° для подписчиков MSDN. ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ доступа для установки Ρ‚Π°ΠΊΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ β€” с:\Program Files\Microsoft Platform SDK\Bin\WinNT.