How to determine if an EventLog already exists
# Check if Log exists
# Ref: http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlog.exists(v=vs.110).aspx
[System.Diagnostics.EventLog]::Exists('Application');
# Ref: http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlog.sourceexists(v=vs.110).aspx
# Check if Source exists
[System.Diagnostics.EventLog]::SourceExists("YourLogSource");
if ([System.Diagnostics.EventLog]::SourceExists("Visual Studio") -eq $False) {
New-EventLog -LogName "Visual Studio Builds" -Source "Visual Studio"
}
So I was on the right path with Get-EventLog
.
Instead of just reading it, I stored it in a variable. Then I checked if the variable was null
.
This has achieved what I was looking to do.
$logFileExists = Get-EventLog -list | Where-Object {$_.logdisplayname -eq "Visual Studio Builds"}
if (! $logFileExists) {
New-EventLog -LogName "Visual Studio Builds" -Source "Visual Studio"
}