EventLog.SourceExists Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Busca un origen de eventos dado en el Registro de un equipo.
Sobrecargas
SourceExists(String) |
Determina si un origen de eventos está registrado en el equipo local. |
SourceExists(String, String) |
Determina si un origen de eventos está registrado en un equipo especificado. |
SourceExists(String)
- Source:
- EventLog.cs
- Source:
- EventLog.cs
- Source:
- EventLog.cs
Determina si un origen de eventos está registrado en el equipo 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
Parámetros
- source
- String
Nombre del origen de eventos.
Devoluciones
true
si el origen de eventos está registrado en el equipo local; en caso contrario, false
.
Excepciones
No se ha encontrado source
, aunque no se ha podido buscar en algunos de los registros de eventos o en ninguno.
Ejemplos
En el ejemplo siguiente se crea el origen MySource
si aún no existe y se escribe una entrada en el registro de eventos 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
Comentarios
Use este método para determinar si existe un origen de eventos en el equipo local. Si desea determinar si existe un registro en el equipo local, use Exists.
Dado que este método accede al registro, debe tener los permisos del Registro adecuados en el equipo local; de lo contrario, se producirá una SecurityException excepción .
Nota
Para buscar un origen de eventos en Windows Vista y versiones posteriores o Windows Server 2003, debe tener privilegios administrativos.
El motivo de este requisito es que se deben buscar todos los registros de eventos, incluida la seguridad, para determinar si el origen del evento es único. A partir de Windows Vista, los usuarios no tienen permiso para acceder al registro de seguridad; por lo tanto, se produce una SecurityException excepción .
A partir de Windows Vista, el Control de cuentas de usuario (UAC) determina los privilegios de un usuario. Si es miembro del grupo Administradores integrados, se le asignarán dos símbolos (tokens) de acceso en tiempo de ejecución: un símbolo (token) de acceso de usuario estándar y un símbolo (token) de acceso de administrador. De forma predeterminada, se le asignará el rol de usuario estándar. Para ejecutar el código que accede a los contadores de rendimiento, primero debe elevar sus privilegios del usuario estándar al administrador. Para ello, inicie una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indique que desea ejecutarla como administrador.
Nota
Un servicio que se ejecuta en la LocalSystem cuenta no tiene los privilegios necesarios para ejecutar este método. La solución consiste en comprobar si el origen del evento existe en ServiceInstallery, si no existe, para crear el origen en el instalador.
Dado que no puede asignar un nuevo origen al nombre de un origen existente en el mismo equipo, use este método antes de intentar llamar CreateEventSource a para asegurarse de que un origen con el nombre especificado por source
no existe aún en el equipo local. El source
parámetro no distingue mayúsculas de minúsculas.
Consulte también
Se aplica a
SourceExists(String, String)
- Source:
- EventLog.cs
- Source:
- EventLog.cs
- Source:
- EventLog.cs
Determina si un origen de eventos está registrado en un equipo especificado.
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
Parámetros
- source
- String
Nombre del origen de eventos.
- machineName
- String
Nombre del equipo en el se debe buscar o "." para el equipo local.
Devoluciones
Es true
si el origen de eventos está registrado en el equipo dado; en caso contrario, es false
.
Excepciones
machineName
no es un nombre de equipo válido.
No se ha encontrado source
, aunque no se ha podido buscar en algunos de los registros de eventos o en ninguno.
Ejemplos
En el ejemplo siguiente se crea el origen MySource
en el equipo MyServer
y se escribe una entrada en el registro de eventos 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
Comentarios
Use este método para determinar si existe un origen de eventos en el equipo especificado por el machineName
parámetro . Si desea determinar si existe un registro en el equipo especificado, use Exists.
Dado que este método tiene acceso al Registro, debe tener los permisos del Registro adecuados en el servidor especificado; de lo contrario, se producirá una SecurityException excepción .
Nota
Para buscar un origen de eventos en Windows Vista y versiones posteriores o Windows Server 2003, debe tener privilegios administrativos.
El motivo de este requisito es que se deben buscar todos los registros de eventos, incluida la seguridad, para determinar si el origen del evento es único. A partir de Windows Vista, los usuarios no tienen permiso para acceder al registro de seguridad; por lo tanto, se produce una SecurityException excepción .
A partir de Windows Vista, el Control de cuentas de usuario (UAC) determina los privilegios de un usuario. Si es miembro del grupo Administradores integrados, se le asignarán dos símbolos (tokens) de acceso en tiempo de ejecución: un símbolo (token) de acceso de usuario estándar y un símbolo (token) de acceso de administrador. De forma predeterminada, se le asignará el rol de usuario estándar. Para ejecutar el código que accede a los contadores de rendimiento, primero debe elevar sus privilegios del usuario estándar al administrador. Para ello, inicie una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indique que desea ejecutarla como administrador.
Nota
Un servicio que se ejecuta en la LocalSystem cuenta no tiene los privilegios necesarios para ejecutar este método. La solución consiste en comprobar si el origen del evento existe en ServiceInstallery, si no existe, para crear el origen en el instalador.
Dado que no se puede proporcionar a un nuevo origen el nombre de un origen existente en el mismo equipo, use este método antes de intentar llamar CreateEventSource a para asegurarse de que un origen con el nombre especificado por source
no existe en el equipo. Los source
parámetros y machineName
no distinguen mayúsculas de minúsculas.
SourceExists es un static
método, por lo que se puede llamar a en la propia clase. No es necesario crear una instancia de EventLog para llamar SourceExistsa .