EventLog.SourceExists Méthode

Définition

Recherche un Registre de l'ordinateur pour une source d'événements donnée.

Surcharges

SourceExists(String)

Détermine si une source d'événements est inscrite dans l'ordinateur local.

SourceExists(String, String)

Détermine si une source d'événements est inscrite dans un ordinateur spécifié.

SourceExists(String)

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

Détermine si une source d'événements est inscrite dans l'ordinateur local.

public:
 static bool SourceExists(System::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énements.

Retours

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

Exceptions

source est introuvable, mais une partie ou la totalité des journaux des événements n'a pas pu faire l'objet d'une recherche.

Exemples

L’exemple suivant crée la source MySource si elle n’existe pas déjà et écrit une entrée dans le journal des événements MyNewLog.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
   
   // Create the source, if it does not already exist.
   if (  !EventLog::SourceExists( "MySource" ) )
   {
      EventLog::CreateEventSource( "MySource", "MyNewLog" );
      Console::WriteLine( "CreatingEventSource" );
   }

   
   // Create an EventLog instance and assign its source.
   EventLog^ myLog = gcnew 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." );
}
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 . dans le cas contraire, une SecurityException exception est levée.

Notes

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

La raison de cette exigence est que tous les journaux des événements, y compris la sécurité, doivent être recherchés pour déterminer si la source de l’é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, un SecurityException est levée.

À compter de Windows Vista, le contrôle de compte d’utilisateur détermine les privilèges d’un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : 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 d’utilisateur standard à administrateur. Vous pouvez effectuer cela au démarrage d'une application en cliquant avec le bouton droit sur l'icône de l'application et en indiquant que vous voulez l'exécuter en tant qu'administrateur.

Notes

Un service qui s’exécute sous le LocalSystem compte ne dispose pas des privilèges requis pour exécuter cette méthode. La solution consiste à case activée si la source d’événement existe dans le ServiceInstaller, et si elle n’existe pas, de 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 source paramètre ne respecte pas la casse.

Voir aussi

S’applique à

SourceExists(String, String)

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

Détermine si une source d'événements est inscrite dans un ordinateur spécifié.

public:
 static bool SourceExists(System::String ^ source, System::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énements.

machineName
String

Nom de l'ordinateur sur lequel la recherche doit être effectuée ou "." pour l'ordinateur local.

Retours

true si la source d'événements est inscrite sur l'ordinateur spécifié ; sinon, false.

Exceptions

machineName n'est pas un nom d'ordinateur valide.

source est introuvable, mais une partie ou la totalité des journaux des événements n'a pas pu faire l'objet d'une recherche.

Exemples

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

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
   
   // Create the source, if it does not already exist.
   if (  !EventLog::SourceExists( "MySource", "MyServer" ) )
   {
      EventLog::CreateEventSource( "MySource", "MyNewLog", "MyServer" );
      Console::WriteLine( "CreatingEventSource" );
   }

   
   // Create an EventLog instance and assign its source.
   EventLog^ myLog = gcnew 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." );
}
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é . dans le cas contraire, une SecurityException exception est levée.

Notes

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

La raison de cette exigence est que tous les journaux des événements, y compris la sécurité, doivent être recherchés pour déterminer si la source de l’é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, un SecurityException est levée.

À compter de Windows Vista, le contrôle de compte d’utilisateur détermine les privilèges d’un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : 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 d’utilisateur standard à administrateur. Vous pouvez effectuer cela au démarrage d'une application en cliquant avec le bouton droit sur l'icône de l'application et en indiquant que vous voulez l'exécuter en tant qu'administrateur.

Notes

Un service qui s’exécute sous le LocalSystem compte ne dispose pas des privilèges requis pour exécuter cette méthode. La solution consiste à case activée si la source d’événement existe dans le ServiceInstaller, et si elle n’existe pas, de 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. Les source paramètres et machineName ne respectent pas la casse.

SourceExists est une static méthode, elle peut donc être appelée sur la classe elle-même. Il n’est pas nécessaire de créer un instance de EventLog pour appeler SourceExists.

Voir aussi

S’applique à