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.