Private/Write-Telemetry.ps1
function Write-Telemetry { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [ValidateSet("RegisterModernMailMessageEntraIDApp","SendModernMailMessage","EnableMailMessageAlias")] [string] $EventName ) #$EventName = "SendModernMailMessage" Write-Verbose "Sending telemetry event: $EventName" $tenantId = Get-MgContext | Select-Object -ExpandProperty TenantId if (-not $tenantId) { $tenantId = "unknown" } $jsonData = @{ "api_key" = "c0cd5aa997bde6dd291d06729c7548a7" "events" = @{ "user_id" = $tenantId #"device_id" = "$($env:ComputerName)" "device_id" = $([BitConverter]::ToString([System.Security.Cryptography.SHA256]::Create().ComputeHash([System.Text.Encoding]::UTF8.GetBytes($env:ComputerName))).Replace('-', '').ToLower()) "event_type"= $EventName "app_version" = "0.1.2" "platform" = "PowerShell $($PSVersionTable.PSVersion)" "os_name" = (Get-CimInstance Win32_OperatingSystem).Caption "language" = (Get-Culture).Name "ip" = '$remote' } } # Convert the data to JSON format $jsonBody = $jsonData | ConvertTo-Json # Define the URL $url = "https://api.eu.amplitude.com/2/httpapi" # Send the POST request try { Invoke-RestMethod -Uri $url -Method Post -ContentType "application/json" -Body $jsonBody | Out-Null } catch { Write-Verbose $_ } } |