web-dev-qa-db-fra.com

Suppression d'une source de journal des événements personnalisée sans utiliser de code

J'ai une application qui a créé un certain nombre de sources de journaux d'événements personnalisées pour aider à filtrer sa sortie. Comment puis-je supprimer les sources personnalisées de la machine SANS écrire de code car l'exécution d'un programme rapide à l'aide de System.Diagnostics.EventLog.Delete n'est pas possible.

J'ai essayé d'utiliser RegEdit pour supprimer les sources personnalisées de [HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services\Eventlog] mais l'application se comporte comme si les journaux existaient toujours en coulisses.

Que manque-t-il d'autre?

40
Wolfwyrd

Je pense aussi que vous êtes au bon endroit ... il est stocké dans le registre, sous le nom du journal des événements. J'ai un journal des événements personnalisé, sous lequel se trouvent plusieurs sources d'événements.

HKLM\System\CurrentControlSet\Services\Eventlog\LOGNAME\LOGSOURCE1 HKLM\System\CurrentControlSet\Services\Eventlog\LOGNAME\LOGSOURCE2

Ces sources ont une clé EventMessageFile, qui est REG_EXPAND_SZ et pointe vers:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll

Je pense que si vous supprimez la clé qui est la source du journal, LOGSOURCE1 dans mon exemple, cela devrait être tout ce dont vous avez besoin.

Pour ce que ça vaut, je l'ai essayé via .NET et c'est ce qu'il a fait. Cependant, il semble que chaque journal des événements personnalisé ait également une source du même nom. Si vous avez un journal personnalisé, cela pourrait affecter votre capacité à l'effacer. Il faudrait peut-être supprimer le journal tout de suite. De plus, si votre application dispose d'un programme d'installation, je peux voir que le nom de l'application peut également être enregistré en tant que source dans le journal des événements de l'application. Encore un endroit à nettoyer.

42
Mike L

Qu'en est-il de l'utilisation de Powershell ?

Remove-EventLog -LogName "Custom log name"

Remove-EventLog -Source "Custom source name"
35
Kapé

Je n'ai pu le supprimer qu'en utilisant:

[System.Diagnostics.EventLog]::Delete("WrongNamedEventLog");

en PowerShell

5
Moondustt

Peut-être que votre application est tolérante aux pannes, ce qui signifie qu'elle vérifie si la source du journal des événements est déjà enregistrée et enregistre la source si ce n'est pas le cas?

Si tel était le cas, votre application recréerait les sources à chaque exécution, peu importe ce que vous avez fait.

3
MusiGenesis