How to write an event log entry with structured XML data?
Here's the real answer on how to do this: https://kevinholman.com/2016/04/02/writing-events-with-parameters-using-powershell/
#Script to create events with parameters#Define the event log and your custom event source$evtlog = "Application"$source = "MyEventSource"#These are just examples to pass as parameters to the event$hostname = "computername.domain.net"$timestamp = (get-date)#Load the event source to the log if not already loaded. This will fail if the event source is already assigned to a different log.if ([System.Diagnostics.EventLog]::SourceExists($source) -eq $false) { [System.Diagnostics.EventLog]::CreateEventSource($source, $evtlog)}#function to create the events with parametersfunction CreateParamEvent ($evtID, $param1, $param2, $param3) { $id = New-Object System.Diagnostics.EventInstance($evtID,1); #INFORMATION EVENT #$id = New-Object System.Diagnostics.EventInstance($evtID,1,2); #WARNING EVENT #$id = New-Object System.Diagnostics.EventInstance($evtID,1,1); #ERROR EVENT $evtObject = New-Object System.Diagnostics.EventLog; $evtObject.Log = $evtlog; $evtObject.Source = $source; $evtObject.WriteEvent($id, @($param1,$param2,$param3)) }#Command line to call the function and pass whatever you likeCreateParamEvent 1234 "The server $hostname was logged at $timestamp" $hostname $timestamp