Public/ConvertFrom-Base64ToString.ps1
<#
.SYNOPSIS Converts a base64 encoded string to a string. .DESCRIPTION Converts a base64 encoded string to a string. .PARAMETER String A Base64 Encoded String .PARAMETER Encoding The encoding to use for conversion. Defaults to UTF8. Valid options are ASCII, BigEndianUnicode, Default, Unicode, UTF32, UTF7, and UTF8. .PARAMETER Decompress If supplied, the output will be decompressed using Gzip. .EXAMPLE ConvertFrom-Base64ToString -String 'QSBzdHJpbmc=' A string .EXAMPLE ConvertTo-Base64 -String 'A string','Another string' QSBzdHJpbmc= QW5vdGhlciBzdHJpbmc= .EXAMPLE 'QSBzdHJpbmc=' | ConvertFrom-Base64ToString A string .EXAMPLE 'QSBzdHJpbmc=','QW5vdGhlciBzdHJpbmc=' | ConvertFrom-Base64ToString A string Another string .OUTPUTS [String[]] .LINK http://convert.readthedocs.io/en/latest/functions/ConvertFrom-Base64ToString/ #> function ConvertFrom-Base64ToString { [CmdletBinding(HelpUri = 'http://convert.readthedocs.io/en/latest/functions/ConvertFrom-Base64ToString/')] [OutputType('String')] param ( [Parameter( Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] [String[]] $String, [ValidateSet('ASCII', 'BigEndianUnicode', 'Default', 'Unicode', 'UTF32', 'UTF7', 'UTF8')] [String] $Encoding = 'UTF8', [Parameter(Mandatory = $false)] [Switch] $Decompress ) begin { $userErrorActionPreference = $ErrorActionPreference } process { foreach ($s in $String) { try { $bytes = [System.Convert]::FromBase64String($s) if ($Decompress) { ConvertFrom-CompressedByteArrayToString -ByteArray $bytes -Encoding $Encoding } else { [System.Text.Encoding]::$Encoding.GetString($bytes) } } catch { Write-Error -ErrorRecord $_ -ErrorAction $userErrorActionPreference } } } } |