EventLog.SourceExists Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Esegue la ricerca di una determinata origine eventi nel Registro di sistema di un computer.
Overload
SourceExists(String) |
Determina se un'origine eventi è registrata nel computer locale. |
SourceExists(String, String) |
Determina se un'origine eventi è registrata nel computer specificato. |
SourceExists(String)
- Source:
- EventLog.cs
- Source:
- EventLog.cs
- Source:
- EventLog.cs
Determina se un'origine eventi è registrata nel computer locale.
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
Parametri
- source
- String
Nome dell'origine evento.
Restituisce
true
se l'origine eventi è registrata nel computer locale; in caso contrario, false
.
Eccezioni
Il parametro source
non è stato trovato ma non è stato possibile cercare alcuni o tutti i log eventi.
Esempio
L'esempio seguente crea l'origine MySource
, se non esiste già, e scrive una voce nel registro eventi 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
Commenti
Utilizzare questo metodo per determinare se nel computer locale esiste un'origine evento. Se si desidera determinare se nel computer locale è presente un log, usare Exists.
Poiché questo metodo accede al Registro di sistema, è necessario disporre delle autorizzazioni appropriate del Registro di sistema nel computer locale; in caso contrario, verrà generata un'eccezione SecurityException .
Nota
Per cercare un'origine evento in Windows Vista e versioni successive o Windows Server 2003, è necessario disporre di privilegi amministrativi.
Il motivo di questo requisito è che tutti i registri eventi, inclusa la sicurezza, devono essere cercati per determinare se l'origine evento è univoca. A partire da Windows Vista, gli utenti non hanno l'autorizzazione per accedere al log di sicurezza; pertanto, viene generata un'eccezione SecurityException .
A partire da Windows Vista, controllo dell'account utente determina i privilegi di un utente. Ai membri del gruppo Administrators predefinito vengono assegnati due token di accesso in fase di esecuzione, ovvero un token di accesso utente standard e un token di accesso amministratore. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard. Per eseguire il codice che accede ai contatori delle prestazioni, è necessario innanzitutto elevare i privilegi dall'utente standard all'amministratore. È possibile farlo quando si avvia un'applicazione facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e indicando l'opzione di esecuzione come amministratore.
Nota
Un servizio in esecuzione con l'account LocalSystem non dispone dei privilegi necessari per eseguire questo metodo. La soluzione consiste nel verificare se l'origine evento esiste in ServiceInstallere, se non esiste, per creare l'origine nel programma di installazione.
Poiché non è possibile assegnare a una nuova origine il nome di un'origine esistente nello stesso computer, utilizzare questo metodo prima di tentare di chiamare CreateEventSource per garantire che un'origine con il nome specificato da source
non esista già nel computer locale. Il source
parametro non fa distinzione tra maiuscole e minuscole.
Vedi anche
Si applica a
SourceExists(String, String)
- Source:
- EventLog.cs
- Source:
- EventLog.cs
- Source:
- EventLog.cs
Determina se un'origine eventi è registrata nel computer specificato.
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
Parametri
- source
- String
Nome dell'origine evento.
- machineName
- String
Nome del computer in cui cercare oppure "." per il computer locale.
Restituisce
true
se l'origine eventi è registrata nel computer indicato; in caso contrario, <false
.
Eccezioni
machineName
è un nome di computer non valido.
Il parametro source
non è stato trovato ma non è stato possibile cercare alcuni o tutti i log eventi.
Esempio
L'esempio seguente crea l'origine MySource
nel computer MyServer
e scrive una voce nel registro eventi 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
Commenti
Utilizzare questo metodo per determinare se nel computer specificato dal machineName
parametro esiste un'origine evento. Se si desidera determinare se nel computer specificato esiste un log, usare Exists.
Poiché questo metodo accede al Registro di sistema, è necessario disporre delle autorizzazioni appropriate del Registro di sistema nel server specificato; in caso contrario, verrà generata un'eccezione SecurityException .
Nota
Per cercare un'origine evento in Windows Vista e versioni successive o Windows Server 2003, è necessario disporre di privilegi amministrativi.
Il motivo di questo requisito è che tutti i registri eventi, inclusa la sicurezza, devono essere cercati per determinare se l'origine evento è univoca. A partire da Windows Vista, gli utenti non hanno l'autorizzazione per accedere al log di sicurezza; pertanto, viene generata un'eccezione SecurityException .
A partire da Windows Vista, controllo dell'account utente determina i privilegi di un utente. Ai membri del gruppo Administrators predefinito vengono assegnati due token di accesso in fase di esecuzione, ovvero un token di accesso utente standard e un token di accesso amministratore. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard. Per eseguire il codice che accede ai contatori delle prestazioni, è necessario innanzitutto elevare i privilegi dall'utente standard all'amministratore. È possibile farlo quando si avvia un'applicazione facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e indicando l'opzione di esecuzione come amministratore.
Nota
Un servizio in esecuzione con l'account LocalSystem non dispone dei privilegi necessari per eseguire questo metodo. La soluzione consiste nel verificare se l'origine evento esiste in ServiceInstallere, se non esiste, per creare l'origine nel programma di installazione.
Poiché non è possibile assegnare a una nuova origine il nome di un'origine esistente nello stesso computer, utilizzare questo metodo prima di tentare di chiamare CreateEventSource per assicurarsi che un'origine con il nome specificato da source
non esista già nel computer. I source
parametri e non fanno distinzione tra maiuscole e machineName
minuscole.
SourceExists è un static
metodo, quindi può essere chiamato sulla classe stessa. Non è necessario creare un'istanza di EventLog per chiamare SourceExists.