Commands/ConvertTo-Glass.ps1
|
function ConvertTo-Glass { <# .SYNOPSIS Converts text to glass .DESCRIPTION Converts a message to invisible "glass" text .NOTES For safety reasons, this generates a PowerShell engine event. To monitor for this, subscribe to the `ConvertTo-Glass` event. .EXAMPLE ConvertTo-Glass "This is a glass messsage" #> [Alias('ToGlass')] param() $allArgsAndInput = @($input) + $args foreach ($arg in $allArgsAndInput) { $argBytes = $OutputEncoding.GetBytes("$arg") $glassString = [BitConverter]::ToString($argBytes) -replace '-' -replace '[0-9a-f]', { $match = $_ return [string][char](0xFE00 + ("0x$match" -as [byte])) } $null = New-Event -SourceIdentifier ConvertTo-Glass -Sender $arg -EventArguments $arg, $glassString $glassString } } |