EventLog.SourceExists Méthode

Définition

Recherche dans le Registre d’un ordinateur une source d’événement donnée.

Surcharges

Nom Description
SourceExists(String)

Détermine si une source d’événement est inscrite sur l’ordinateur local.

SourceExists(String, String)

Détermine si une source d’événement est inscrite sur un ordinateur spécifié.

SourceExists(String)

Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs

Détermine si une source d’événement est inscrite sur l’ordinateur local.

public:
 static bool SourceExists(System::String ^ source);
public static bool SourceExists(string? source);
public static bool SourceExists(string source);
static member SourceExists : string -> bool
Public Shared Function SourceExists (source As String) As Boolean

Paramètres

source
String

Nom de la source d’événement.

Retours

true si la source d’événement est inscrite sur l’ordinateur local ; sinon, false.

Exceptions

source n’a pas été trouvé, mais certains ou tous les journaux d’événements n’ont pas pu être recherchés.

Exemples

L’exemple suivant crée la source MySource s’il n’existe pas déjà et écrit une entrée dans le journal MyNewLogdes événements.

using System;
using System.Diagnostics;
using System.Threading;

class MySample{

    public static void Main(){

        // Create the source, if it does not already exist.
        if(!EventLog.SourceExists("MySource"))
        {
            // An event log source should not be created and immediately used.
            // There is a latency time to enable the source, it should be created
            // prior to executing the application that uses the source.
            // Execute this sample a second time to use the new source.
            EventLog.CreateEventSource("MySource", "MyNewLog");
            Console.WriteLine("CreatingEventSource");
            Console.WriteLine("Exiting, execute the application a second time to use the source.");
            // The source is created.  Exit the application to allow it to be registered.
            return;
        }

        // Create an EventLog instance and assign its source.
        EventLog myLog = new EventLog();
        myLog.Source = "MySource";

        // Write an informational entry to the event log.
        myLog.WriteEntry("Writing to event log.");

        Console.WriteLine("Message written to event log.");
    }
}
Option Explicit
Option Strict
Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        ' Create the source, if it does not already exist.
        If Not EventLog.SourceExists("MySource") Then
            EventLog.CreateEventSource("MySource", "MyNewLog")
            Console.WriteLine("CreatingEventSource")
        End If
        
        ' Create an EventLog instance and assign its source.
        Dim myLog As New EventLog()
        myLog.Source = "MySource"
        
        ' Write an informational entry to the event log.    
        myLog.WriteEntry("Writing to event log.")
        
        Console.WriteLine("Message written to event log.")
    End Sub
End Class

Remarques

Utilisez cette méthode pour déterminer si une source d’événement existe sur l’ordinateur local. Si vous souhaitez déterminer si un journal existe sur l’ordinateur local, utilisez Exists.

Étant donné que cette méthode accède au Registre, vous devez disposer des autorisations de Registre appropriées sur l’ordinateur local ; sinon, une SecurityException sera levée.

Note

Pour rechercher une source d’événement dans Windows Vista et versions ultérieures ou ultérieures ou Windows Server 2003, vous devez disposer de privilèges administratifs.

La raison de cette exigence est que tous les journaux d’événements, y compris la sécurité, doivent être recherchés pour déterminer si la source d’événement est unique. À compter de Windows Vista, les utilisateurs n’ont pas l’autorisation d’accéder au journal de sécurité ; par conséquent, une SecurityException est levée.

À compter de Windows Vista, le contrôle de compte d’utilisateur (UAC) détermine les privilèges d’un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, vous disposez de deux jetons d’accès au moment de l’exécution : un jeton d’accès utilisateur standard et un jeton d’accès administrateur. Par défaut, vous êtes dans le rôle d’utilisateur standard. Pour exécuter le code qui accède aux compteurs de performances, vous devez d’abord élever vos privilèges de l’utilisateur standard à l’administrateur. Pour ce faire, lorsque vous démarrez une application, cliquez avec le bouton droit sur l’icône de l’application et indiquez que vous souhaitez exécuter en tant qu’administrateur.

Note

Un service qui s’exécute sous le LocalSystem compte n’a pas les privilèges requis pour exécuter cette méthode. La solution consiste à vérifier si la source d’événement existe dans le ServiceInstallerprogramme d’installation, et si elle n’existe pas, pour créer la source dans le programme d’installation.

Étant donné que vous ne pouvez pas donner à une nouvelle source le nom d’une source existante sur le même ordinateur, utilisez cette méthode avant d’essayer d’appeler CreateEventSource pour vous assurer qu’une source portant le nom spécifié par source n’existe pas déjà sur l’ordinateur local. Le paramètre n’est pas sensible à la source casse.

Voir aussi

S’applique à

SourceExists(String, String)

Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs

Détermine si une source d’événement est inscrite sur un ordinateur spécifié.

public:
 static bool SourceExists(System::String ^ source, System::String ^ machineName);
public static bool SourceExists(string? source, string machineName);
public static bool SourceExists(string source, string machineName);
static member SourceExists : string * string -> bool
Public Shared Function SourceExists (source As String, machineName As String) As Boolean

Paramètres

source
String

Nom de la source d’événement.

machineName
String

Nom de l’ordinateur sur lequel rechercher, ou « ».

Retours

true si la source d’événement est inscrite sur l’ordinateur donné ; sinon, false.

Exceptions

machineName est un nom d’ordinateur non valide.

source n’a pas été trouvé, mais certains ou tous les journaux d’événements n’ont pas pu être recherchés.

Exemples

L’exemple suivant crée la source MySource sur l’ordinateur MyServeret écrit une entrée dans le journal MyNewLogdes événements.

using System;
using System.Diagnostics;
using System.Threading;

class MySample{

    public static void Main(){

        // Create the source, if it does not already exist.
        if(!EventLog.SourceExists("MySource", "MyServer"))
        {
            // An event log source should not be created and immediately used.
            // There is a latency time to enable the source, it should be created
            // prior to executing the application that uses the source.
            // Execute this sample a second time to use the new source.
            EventLog.CreateEventSource("MySource", "MyNewLog", "MyServer");
            Console.WriteLine("CreatingEventSource");
            Console.WriteLine("Exiting, execute the application a second time to use the source.");
            // The source is created.  Exit the application to allow it to be registered.
            return;
        }

        // Create an EventLog instance and assign its source.
        EventLog myLog = new EventLog();
        myLog.Source = "MySource";

        // Write an informational entry to the event log.
        myLog.WriteEntry("Writing to event log.");

        Console.WriteLine("Message written to event log.");
    }
}
Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        ' Create the source, if it does not already exist.
        If Not EventLog.SourceExists("MySource", "MyServer") Then
            EventLog.CreateEventSource("MySource", "MyNewLog", "MyServer")
            Console.WriteLine("CreatingEventSource")
        End If
        
        ' Create an EventLog instance and assign its source.
        Dim myLog As New EventLog()
        myLog.Source = "MySource"
        
        ' Write an informational entry to the event log.    
        myLog.WriteEntry("Writing to event log.")
        
        Console.WriteLine("Message written to event log.")
    End Sub
End Class

Remarques

Utilisez cette méthode pour déterminer si une source d’événement existe sur l’ordinateur spécifié par le machineName paramètre. Si vous souhaitez déterminer si un journal existe sur l’ordinateur spécifié, utilisez Exists.

Étant donné que cette méthode accède au Registre, vous devez disposer des autorisations de Registre appropriées sur le serveur donné ; sinon, une SecurityException sera levée.

Note

Pour rechercher une source d’événement dans Windows Vista et versions ultérieures ou ultérieures ou Windows Server 2003, vous devez disposer de privilèges administratifs.

La raison de cette exigence est que tous les journaux d’événements, y compris la sécurité, doivent être recherchés pour déterminer si la source d’événement est unique. À compter de Windows Vista, les utilisateurs n’ont pas l’autorisation d’accéder au journal de sécurité ; par conséquent, une SecurityException est levée.

À compter de Windows Vista, le contrôle de compte d’utilisateur (UAC) détermine les privilèges d’un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, vous disposez de deux jetons d’accès au moment de l’exécution : un jeton d’accès utilisateur standard et un jeton d’accès administrateur. Par défaut, vous êtes dans le rôle d’utilisateur standard. Pour exécuter le code qui accède aux compteurs de performances, vous devez d’abord élever vos privilèges de l’utilisateur standard à l’administrateur. Pour ce faire, lorsque vous démarrez une application, cliquez avec le bouton droit sur l’icône de l’application et indiquez que vous souhaitez exécuter en tant qu’administrateur.

Note

Un service qui s’exécute sous le LocalSystem compte n’a pas les privilèges requis pour exécuter cette méthode. La solution consiste à vérifier si la source d’événement existe dans le ServiceInstallerprogramme d’installation, et si elle n’existe pas, pour créer la source dans le programme d’installation.

Étant donné que vous ne pouvez pas donner à une nouvelle source le nom d’une source existante sur le même ordinateur, utilisez cette méthode avant de tenter d’appeler CreateEventSource pour vous assurer qu’une source portant le nom spécifié par source n’existe pas déjà sur l’ordinateur. Les paramètres et source les paramètres ne respectent pas la machineName casse.

SourceExists est une static méthode, afin qu’elle puisse être appelée sur la classe elle-même. Il n’est pas nécessaire de créer une instance d’appel EventLogSourceExists.

Voir aussi

S’applique à