web-dev-qa-db-fra.com

Comment créer une source Windows EventLog à partir de la ligne de commande?

Je crée une application ASP.NET qui enregistre des éléments dans Windows EventLog. Pour ce faire, il faut d'abord créer une source d'événements. Cela nécessite des privilèges administratifs, donc je ne peux pas le faire dans l'application ASP.NET.

Existe-t-il une application de ligne de commande fournie avec Windows pouvant créer une source de journal des événements ou dois-je déployer la mienne?

159
Vilx-

Essayez "eventcreate.exe"

Un exemple:

_eventcreate /ID 1 /L APPLICATION /T INFORMATION  /SO MYEVENTSOURCE /D "My first log"
_

Cela créera un nouvel événement source nommé MYEVENTSOURCE sous APPLICATION événement log en tant que INFORMATION événement tapez .

Je pense que cet utilitaire est inclus uniquement à partir de XP.

Lectures complémentaires

288
MSV Muthu

Essayez les applets de commande EventLog de PowerShell 2.0

Ajoutant ceci à partir de PowerShell 2.0:

  • Exécutez New-EventLog une fois pour enregistrer la source de l'événement:

    _New-EventLog -LogName Application -Source MyApp
    _
  • Puis utilisez Write-EventLog pour écrire dans le journal:

    _Write-EventLog 
        -LogName Application 
        -Source MyApp 
        -EntryType Error 
        -Message "Immunity to iocaine powder not detected, dying now" 
        -EventId 1
    _
171
roufamatic

Vous pouvez également utiliser Windows PowerShell avec la commande suivante:

if ([System.Diagnostics.EventLog]::SourceExists($source) -eq $false) {
    [System.Diagnostics.EventLog]::CreateEventSource($source, "Application")
}

Assurez-vous de vérifier que la source n'existe pas avant d'appeler CreateEventSource, sinon une exception sera générée.

Pour plus d'informations:

42
Luis Rocha

eventcreate2 vous permet de créer des journaux personnalisés, contrairement à eventcreate .

11
Nick Bolton

Si quelqu'un est intéressé, il est également possible de créer une source d'événements manuellement en ajoutant des valeurs de registre.

Enregistrez les lignes suivantes dans un fichier .reg, puis importez-le dans la base de registres en double-cliquant dessus:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\YOUR_EVENT_SOURCE_NAME_GOES_HERE]
"EventMessageFile"="C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\EventLogMessages.dll"
"TypesSupported"=dword:00000007

Cela crée une source d'événements nommée YOUR_EVENT_SOURCE_NAME_GOES_HERE.

4
CSharper

Ou utilisez simplement la commande en ligne de commande:

Eventcreate

1
user111179

Cependant, la version cmd/batch fonctionne, vous pouvez rencontrer un problème lorsque vous souhaitez définir un ID d'événement supérieur à 1000. Pour la création d'événement avec un ID d'événement supérieur à 1000, j'utiliserai Powershell de la manière suivante:

$evt=new-object System.Diagnostics.Eventlog(“Define Logbook”)
$evt.Source=”Define Source”
$evtNumber=Define Eventnumber
$evtDescription=”Define description”
$infoevent=[System.Diagnostics.EventLogEntryType]::Define error level
$evt.WriteEntry($evtDescription,$infoevent,$evtNumber) 

Échantillon:

$evt=new-object System.Diagnostics.Eventlog(“System”)
$evt.Source=”Tcpip”
$evtNumber=4227
$evtDescription=”This is a Test Event”
$infoevent=[System.Diagnostics.EventLogEntryType]::Warning
$evt.WriteEntry($evtDescription,$infoevent,$evtNumber)
1
R. Tettero