Partager via


ServiceAccount Énumération

Définition

Spécifie le contexte de sécurité d'un service, qui définit son type de connexion.

public enum class ServiceAccount
public enum ServiceAccount
type ServiceAccount = 
Public Enum ServiceAccount
Héritage
ServiceAccount

Champs

LocalService 0

Compte qui agit en tant qu'utilisateur non privilégié sur l'ordinateur local et présente des informations d'identification anonymes à n'importe quel serveur distant.

LocalSystem 2

Compte, utilisé par le Gestionnaire de contrôle des services, qui a des privilèges étendus sur l'ordinateur local et agit comme l'ordinateur sur le réseau.

NetworkService 1

Compte qui fournit des privilèges locaux extensifs et présente les informations d'identification de l'ordinateur à n'importe quel serveur distant.

User 3

Compte défini par un utilisateur spécifique sur le réseau. Lorsque User est spécifié pour le membre Account, le système demande un nom d'utilisateur et un mot de passe valides lorsque le service est installé, à moins que vous ne définissiez des valeurs pour les propriétés Username et Password de votre instance de ServiceProcessInstaller.

Exemples

L’exemple de code suivant montre comment utiliser l’énumération ServiceAccount pour installer de nouveaux programmes à l’aide du contexte de sécurité du compte système.

#using <System.dll>
#using <System.ServiceProcess.dll>
#using <System.Configuration.Install.dll>

using namespace System;
using namespace System::Collections;
using namespace System::Configuration::Install;
using namespace System::ServiceProcess;
using namespace System::ComponentModel;

[RunInstaller(true)]
public ref class MyProjectInstaller : public Installer
{
private:
    ServiceInstaller^ serviceInstaller1;
    ServiceInstaller^ serviceInstaller2;
    ServiceProcessInstaller^ processInstaller;

public:
    MyProjectInstaller()
    {
        // Instantiate installers for process and services.
        processInstaller = gcnew ServiceProcessInstaller;
        serviceInstaller1 = gcnew ServiceInstaller;
        serviceInstaller2 = gcnew ServiceInstaller;

        // The services run under the system account.
        processInstaller->Account = ServiceAccount::LocalSystem;

        // The services are started manually.
        serviceInstaller1->StartType = ServiceStartMode::Manual;
        serviceInstaller2->StartType = ServiceStartMode::Manual;

        // ServiceName must equal those on ServiceBase derived classes.
        serviceInstaller1->ServiceName = "Hello-World Service 1";
        serviceInstaller2->ServiceName = "Hello-World Service 2";

        // Add installers to collection. Order is not important.
        Installers->Add( serviceInstaller1 );
        Installers->Add( serviceInstaller2 );
        Installers->Add( processInstaller );
    }

    static void Main()
    {
        Console::WriteLine("Usage: InstallUtil.exe [<service>.exe]");
    }
};

int main()
{
    MyProjectInstaller::Main();
}
using System;
using System.Collections;
using System.Configuration.Install;
using System.ServiceProcess;
using System.ComponentModel;

[RunInstaller(true)]
public class MyProjectInstaller : Installer
{
    private ServiceInstaller serviceInstaller1;
    private ServiceInstaller serviceInstaller2;
    private ServiceProcessInstaller processInstaller;

    public MyProjectInstaller()
    {
        // Instantiate installers for process and services.
        processInstaller = new ServiceProcessInstaller();
        serviceInstaller1 = new ServiceInstaller();
        serviceInstaller2 = new ServiceInstaller();

        // The services run under the system account.
        processInstaller.Account = ServiceAccount.LocalSystem;

        // The services are started manually.
        serviceInstaller1.StartType = ServiceStartMode.Manual;
        serviceInstaller2.StartType = ServiceStartMode.Manual;

        // ServiceName must equal those on ServiceBase derived classes.
        serviceInstaller1.ServiceName = "Hello-World Service 1";
        serviceInstaller2.ServiceName = "Hello-World Service 2";

        // Add installers to collection. Order is not important.
        Installers.Add(serviceInstaller1);
        Installers.Add(serviceInstaller2);
        Installers.Add(processInstaller);
    }

    public static void Main()
    {
        Console.WriteLine("Usage: InstallUtil.exe [<service>.exe]");
    }
}
Imports System.Collections
Imports System.Configuration.Install
Imports System.ServiceProcess
Imports System.ComponentModel

<RunInstallerAttribute(True)> _
Public Class MyProjectInstaller
    Inherits Installer
    Private serviceInstaller1 As ServiceInstaller
    Private serviceInstaller2 As ServiceInstaller
    Private processInstaller As ServiceProcessInstaller    
    
    Public Sub New()
        ' Instantiate installers for process and services.
        processInstaller = New ServiceProcessInstaller()
        serviceInstaller1 = New ServiceInstaller()
        serviceInstaller2 = New ServiceInstaller()
        
        ' The services will run under the system account.
        processInstaller.Account = ServiceAccount.LocalSystem
        
        ' The services will be started manually.
        serviceInstaller1.StartType = ServiceStartMode.Manual
        serviceInstaller2.StartType = ServiceStartMode.Manual
        
        ' ServiceName must equal those on ServiceBase derived classes.            
        serviceInstaller1.ServiceName = "Hello-World Service 1"
        serviceInstaller2.ServiceName = "Hello-World Service 2"
        
        ' Add installers to collection. Order is not important.
        Installers.Add(serviceInstaller1)
        Installers.Add(serviceInstaller2)
        Installers.Add(processInstaller)
    End Sub

    Public Shared Sub Main()
        Console.WriteLine("Usage: InstallUtil.exe [<service>.exe]")
    End Sub
End Class

Remarques

Utilisez l’énumération ServiceAccount lorsque vous initialisez un ServiceProcessInstaller pour spécifier le contexte de sécurité du service que vous installez. Le contexte de sécurité indique les privilèges d’un service sur le système et la façon dont les services agissent sur le réseau (par exemple, si le service présente les informations d’identification de l’ordinateur ou les informations d’identification anonymes aux serveurs distants). L’énumération ServiceAccount fournit une plage de privilèges afin que vous puissiez spécifier exactement les privilèges dont vous avez besoin pour n’importe quel service particulier.

La LocalSystem valeur définit un compte à privilèges élevés, mais la plupart des services n’ont pas besoin d’un niveau de privilège élevé. Les LocalService membres et NetworkService les membres d’énumération fournissent un niveau de privilège inférieur pour le contexte de sécurité.

Notes

Les valeurs LocalService et NetworkService sont disponibles uniquement sur Windows famille XP et Windows Server 2003.

S’applique à

Voir aussi