EventLog.SourceExists Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Durchsucht die Registrierung eines Computers nach einer bestimmten Ereignisquelle.
Überlädt
SourceExists(String) |
Bestimmt, ob eine Ereignisquelle auf dem lokalen Computer registriert ist. |
SourceExists(String, String) |
Bestimmt, ob eine Ereignisquelle auf einem angegebenen Computer registriert ist. |
SourceExists(String)
- Quelle:
- EventLog.cs
- Quelle:
- EventLog.cs
- Quelle:
- EventLog.cs
Bestimmt, ob eine Ereignisquelle auf dem lokalen Computer registriert ist.
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
Parameter
- source
- String
Der Name der Ereignisquelle.
Gibt zurück
true
, wenn die Ereignisquelle auf dem lokalen Computer registriert ist, andernfalls false
.
Ausnahmen
source
wurde nicht gefunden, aber einige oder alle Ereignisprotokolle konnten nicht durchsucht werden.
Beispiele
Im folgenden Beispiel wird die Quelle MySource
erstellt, sofern sie noch nicht vorhanden ist, und schreibt einen Eintrag in das Ereignisprotokoll 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
Hinweise
Verwenden Sie diese Methode, um zu bestimmen, ob auf dem lokalen Computer eine Ereignisquelle vorhanden ist. Wenn Sie ermitteln möchten, ob auf dem lokalen Computer ein Protokoll vorhanden ist, verwenden Sie Exists.
Da diese Methode auf die Registrierung zugreift, müssen Sie über die entsprechenden Registrierungsberechtigungen auf dem lokalen Computer verfügen. Andernfalls wird ein SecurityException ausgelöst.
Hinweis
Um in Windows Vista und höher oder Windows Server 2003 nach einer Ereignisquelle zu suchen, müssen Sie über Administratorrechte verfügen.
Der Grund für diese Anforderung ist, dass alle Ereignisprotokolle, einschließlich der Sicherheit, durchsucht werden müssen, um festzustellen, ob die Ereignisquelle eindeutig ist. Ab Windows Vista sind Benutzer nicht mehr berechtigt, auf das Sicherheitsprotokoll zuzugreifen. daher wird ein SecurityException ausgelöst.
Ab Windows Vista bestimmt die Benutzerkontensteuerung (UAC) die Berechtigungen eines Benutzers. Als Mitglied der integrierten Administratorgruppe sind Ihnen zwei Zugriffstoken für die Laufzeit zugewiesen: ein Standardbenutzertoken und ein Administratorzugriffstoken. Standardmäßig verwenden Sie die Standardbenutzerrolle. Um den Code auszuführen, der auf Leistungsindikatoren zugreift, müssen Sie zuerst Ihre Berechtigungen vom Standardbenutzer zum Administrator erhöhen. Dazu starten Sie eine Anwendung, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie die Anwendung als Administrator ausführen möchten.
Hinweis
Ein Dienst, der unter dem LocalSystem Konto ausgeführt wird, verfügt nicht über die berechtigungen, die zum Ausführen dieser Methode erforderlich sind. Die Lösung besteht darin, zu überprüfen, ob die Ereignisquelle im ServiceInstallervorhanden ist, und wenn sie nicht vorhanden ist, um die Quelle im Installationsprogramm zu erstellen.
Da Sie einer neuen Quelle nicht den Namen einer vorhandenen Quelle auf demselben Computer geben können, verwenden Sie diese Methode, bevor Sie versuchen, aufzurufen CreateEventSource , um sicherzustellen, dass eine Quelle mit dem durch angegebenen source
Namen nicht bereits auf dem lokalen Computer vorhanden ist. Beim source
Parameter wird die Groß-/Kleinschreibung nicht beachtet.
Weitere Informationen
Gilt für:
SourceExists(String, String)
- Quelle:
- EventLog.cs
- Quelle:
- EventLog.cs
- Quelle:
- EventLog.cs
Bestimmt, ob eine Ereignisquelle auf einem angegebenen Computer registriert ist.
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
Parameter
- source
- String
Der Name der Ereignisquelle.
- machineName
- String
Der Name des Computers, auf dem gesucht werden soll, oder "." für den lokalen Computer.
Gibt zurück
true
, wenn die Ereignisquelle auf dem angegebenen Computer registriert ist; andernfalls false
.
Ausnahmen
machineName
ist ein ungültiger Computername.
source
wurde nicht gefunden, aber einige oder alle Ereignisprotokolle konnten nicht durchsucht werden.
Beispiele
Im folgenden Beispiel wird die Quelle MySource
auf dem Computer MyServer
erstellt und ein Eintrag in das Ereignisprotokoll MyNewLog
geschrieben.
#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
Hinweise
Verwenden Sie diese Methode, um zu bestimmen, ob auf dem durch den machineName
-Parameter angegebenen Computer eine Ereignisquelle vorhanden ist. Wenn Sie ermitteln möchten, ob auf dem angegebenen Computer ein Protokoll vorhanden ist, verwenden Sie Exists.
Da diese Methode auf die Registrierung zugreift, müssen Sie über die entsprechenden Registrierungsberechtigungen auf dem angegebenen Server verfügen. Andernfalls wird ein SecurityException ausgelöst.
Hinweis
Um in Windows Vista und höher oder Windows Server 2003 nach einer Ereignisquelle zu suchen, müssen Sie über Administratorrechte verfügen.
Der Grund für diese Anforderung ist, dass alle Ereignisprotokolle, einschließlich der Sicherheit, durchsucht werden müssen, um festzustellen, ob die Ereignisquelle eindeutig ist. Ab Windows Vista sind Benutzer nicht mehr berechtigt, auf das Sicherheitsprotokoll zuzugreifen. daher wird ein SecurityException ausgelöst.
Ab Windows Vista bestimmt die Benutzerkontensteuerung (UAC) die Berechtigungen eines Benutzers. Als Mitglied der integrierten Administratorgruppe sind Ihnen zwei Zugriffstoken für die Laufzeit zugewiesen: ein Standardbenutzertoken und ein Administratorzugriffstoken. Standardmäßig verwenden Sie die Standardbenutzerrolle. Um den Code auszuführen, der auf Leistungsindikatoren zugreift, müssen Sie zuerst Ihre Berechtigungen vom Standardbenutzer zum Administrator erhöhen. Dazu starten Sie eine Anwendung, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie die Anwendung als Administrator ausführen möchten.
Hinweis
Ein Dienst, der unter dem LocalSystem Konto ausgeführt wird, verfügt nicht über die berechtigungen, die zum Ausführen dieser Methode erforderlich sind. Die Lösung besteht darin, zu überprüfen, ob die Ereignisquelle im ServiceInstallervorhanden ist, und wenn sie nicht vorhanden ist, um die Quelle im Installationsprogramm zu erstellen.
Da Sie einer neuen Quelle nicht den Namen einer vorhandenen Quelle auf demselben Computer geben können, verwenden Sie diese Methode, bevor Sie versuchen, aufzurufen CreateEventSource , um sicherzustellen, dass eine Quelle mit dem von angegebenen source
Namen nicht bereits auf dem Computer vorhanden ist. Bei den source
Parametern und machineName
wird die Groß-/Kleinschreibung nicht beachtet.
SourceExists ist eine static
Methode, sodass sie für die Klasse selbst aufgerufen werden kann. Es ist nicht erforderlich, eine instance von EventLog zu erstellen, um aufzurufenSourceExists.