EventLog.SourceExists Metod

Definition

Söker i en dators register efter en viss händelsekälla.

Överlagringar

Name Description
SourceExists(String)

Avgör om en händelsekälla är registrerad på den lokala datorn.

SourceExists(String, String)

Avgör om en händelsekälla är registrerad på en angiven dator.

SourceExists(String)

Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs

Avgör om en händelsekälla är registrerad på den lokala datorn.

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

Parametrar

source
String

Namnet på händelsekällan.

Returer

trueom händelsekällan är registrerad på den lokala datorn. annars . false

Undantag

source hittades inte, men vissa eller alla händelseloggar kunde inte sökas igenom.

Exempel

I följande exempel skapas källan MySource om den inte redan finns och skriver en post till händelseloggen MyNewLog.

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

Kommentarer

Använd den här metoden för att avgöra om en händelsekälla finns på den lokala datorn. Om du vill ta reda på om det finns en logg på den lokala datorn använder du Exists.

Eftersom den här metoden kommer åt registret måste du ha rätt registerbehörigheter på den lokala datorn. annars kommer en SecurityException att kastas.

Note

Om du vill söka efter en händelsekälla i Windows Vista och senare eller Windows Server 2003 måste du ha administratörsbehörighet.

Orsaken till det här kravet är att alla händelseloggar, inklusive säkerhet, måste sökas igenom för att avgöra om händelsekällan är unik. Från och med Windows Vista har användarna inte behörighet att komma åt säkerhetsloggen. Därför utlöses en SecurityException.

Från och med Windows Vista avgör UAC (User Account Control) en användares behörigheter. Om du är medlem i gruppen Inbyggda administratörer tilldelas du två åtkomsttoken för körning: en standardåtkomsttoken för användare och en administratörsåtkomsttoken. Som standard är du i standardanvändarrollen. Om du vill köra koden som kommer åt prestandaräknare måste du först höja dina privilegier från standardanvändare till administratör. Du kan göra detta när du startar ett program genom att högerklicka på programikonen och ange att du vill köra som administratör.

Note

En tjänst som körs under LocalSystem kontot har inte de behörigheter som krävs för att köra den här metoden. Lösningen är att kontrollera om händelsekällan finns i ServiceInstaller, och om den inte finns, för att skapa källan i installationsprogrammet.

Eftersom du inte kan ge en ny källa namnet på en befintlig källa på samma dator använder du den här metoden innan du försöker anropa CreateEventSource för att säkerställa att en källa med det namn som anges av source inte redan finns på den lokala datorn. Parametern source är inte skiftlägeskänslig.

Se även

Gäller för

SourceExists(String, String)

Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs

Avgör om en händelsekälla är registrerad på en angiven dator.

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

Parametrar

source
String

Namnet på händelsekällan.

machineName
String

Namnet på den dator som ska visas, eller "" för den lokala datorn.

Returer

trueom händelsekällan är registrerad på den angivna datorn. annars . false

Undantag

machineName är ett ogiltigt datornamn.

source hittades inte, men vissa eller alla händelseloggar kunde inte sökas igenom.

Exempel

I följande exempel skapas källan MySource på datorn MyServeroch en post skrivs till händelseloggen MyNewLog.

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

Kommentarer

Använd den här metoden för att avgöra om en händelsekälla finns på den dator som anges av parametern machineName . Om du vill ta reda på om det finns en logg på den angivna datorn använder du Exists.

Eftersom den här metoden kommer åt registret måste du ha rätt registerbehörigheter på den angivna servern. annars kommer en SecurityException att kastas.

Note

Om du vill söka efter en händelsekälla i Windows Vista och senare eller Windows Server 2003 måste du ha administratörsbehörighet.

Orsaken till det här kravet är att alla händelseloggar, inklusive säkerhet, måste sökas igenom för att avgöra om händelsekällan är unik. Från och med Windows Vista har användarna inte behörighet att komma åt säkerhetsloggen. Därför utlöses en SecurityException.

Från och med Windows Vista avgör UAC (User Account Control) en användares behörigheter. Om du är medlem i gruppen Inbyggda administratörer tilldelas du två åtkomsttoken för körning: en standardåtkomsttoken för användare och en administratörsåtkomsttoken. Som standard är du i standardanvändarrollen. Om du vill köra koden som kommer åt prestandaräknare måste du först höja dina privilegier från standardanvändare till administratör. Du kan göra detta när du startar ett program genom att högerklicka på programikonen och ange att du vill köra som administratör.

Note

En tjänst som körs under LocalSystem kontot har inte de behörigheter som krävs för att köra den här metoden. Lösningen är att kontrollera om händelsekällan finns i ServiceInstaller, och om den inte finns, för att skapa källan i installationsprogrammet.

Eftersom du inte kan ge en ny källa namnet på en befintlig källa på samma dator använder du den här metoden innan du försöker anropa CreateEventSource för att säkerställa att en källa med det namn som anges av source inte redan finns på datorn. Parametrarna source och machineName är inte skiftlägeskänsliga.

SourceExists är en static metod, så den kan anropas på själva klassen. Det är inte nödvändigt att skapa en instans av EventLog för att anropa SourceExists.

Se även

Gäller för