Private/_ShowMessageBox.ps1

function _ShowMessageBox {
    <#
    .DESCRIPTION
        Hand = 'X' in red
        Asterisk = 'i' in blue
        Question = '?' in blue
        Warning = '!' in yellow
    #>


    [CmdletBinding()]
    [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', '', Justification = 'Basically a blackhole.')]

    param (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]
        $MessageText,

        [Parameter(Mandatory = $false)]
        [ValidateSet('OK', 'OKCancel', 'YesNo', 'YesNoCancel')]
        [String]$ButtonType,

        [Parameter(Mandatory = $true)]
        [ValidateSet('None', 'Hand', 'Question', 'Warning', 'Asterisk')]
        [String]$MessageIcon,

        [Parameter(Mandatory = $false)]
        [String]$MessageTitle = 'AD Lookups Message'
    )
    $ButtonType = [System.Windows.Forms.MessageBoxButtons]::$ButtonType
    $MessageIcon = [System.Windows.Forms.MessageBoxIcon]::$MessageIcon
    $MessageBody = $MessageText
    $MessageTitle = $MessageTitle

    [System.Windows.Forms.MessageBox]::Show($MessageBody, $MessageTitle, $ButtonType, $MessageIcon)
}