Public/Get-MD5Hash.ps1

function Get-MD5Hash {
    <#
        .Synopsis
            MD5Hash для строки
        .Description
            MD5Hash для строки
            Помним про Get-FileHash для работы с файлами
        .Parameter Value
            Строка для преобразования
        .Parameter Hyphened
            Должен определять, вставлять ли символ "-" в строку или нет.
        .Example
            PS C:\> Get-MD5Hash -Value 'Йцукен' -Hyphened
            1A-63-05-60-6D-BE-C3-D2-4E-99-42-EA-50-98-DA-DD
        .Inputs
            Строка
        .Outputs
            Строка, MD5Hash для входного параметра
 
    #>

    [CmdletBinding()]
    [OutputType([System.String])]
    Param(
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, Position = 0)]
        [System.String]
        $Value,
        [Parameter(Mandatory = $false, ValueFromPipeline = $false, Position = 1)]
        [switch]
        $Hyphened
    )
    Begin {

    }
    Process {
        try {
            $MD5 = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
            $UTF8 = New-Object -TypeName System.Text.UTF8Encoding
            $Result = [System.BitConverter]::ToString($MD5.ComputeHash($UTF8.GetBytes($Value)))
            if (-not($Hyphened)) {
                $Result = $Result.Replace('-', '')
            }
        }
        catch {
            #$PSCmdlet.ThrowTerminatingError($PSItem)
            Write-Error -Exception $PSItem.Exeception
        }
    }
    End {
        return $Result
    }
}