Skip to content

Instantly share code, notes, and snippets.

@dgosbell
Created October 26, 2021 00:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dgosbell/cdc157eb43091e1d1eca242344d104e1 to your computer and use it in GitHub Desktop.
Save dgosbell/cdc157eb43091e1d1eca242344d104e1 to your computer and use it in GitHub Desktop.
Powershell test harness for capturing XMLA trace events
$serverName = 'localhost\tab19'
add-type -Path 'C:\Program Files\DAX Studio\bin\Microsoft.AnalysisServices.dll'
$server = New-Object Microsoft.AnalysisServices.Server
$server.Connect($serverName)
$trace = $server.Traces.Add()
$event1 = $trace.Events.Add( [Microsoft.AnalysisServices.TraceEventClass]::DiscoverBegin)
$event1.Columns.Add( [Microsoft.AnalysisServices.TraceColumn]::EventClass) > $null
$event1.Columns.Add( [Microsoft.AnalysisServices.TraceColumn]::EventSubclass) > $null
$event1.Columns.Add( [Microsoft.AnalysisServices.TraceColumn]::CurrentTime) > $null
$event1.Columns.Add( [Microsoft.AnalysisServices.TraceColumn]::Spid) > $null
$trace.e
$trace.Update()
$e = Register-ObjectEvent -InputObject $trace -EventName OnEvent -Action { Write-Host -ForegroundColor Green "Event Received" -NoNewline ; Write-host " $($EventArgs.CurrentTime.ToString('hh:mm:ss')) $($EventArgs.EventClass) / $($EventArgs.EventSubClass) ($($EventArgs.Spid))" }
$trace.Start()
<#
## run this section below to stop the trace and disconnect from the server
Get-EventSubscriber | % { Unregister-event $_.SubscriptionId }
$trace.Stop()
$trace.Drop()
$server.Disconnect()
#>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment