Functions/New-InputBox.ps1
function New-Inputbox { <# .SYNOPSIS Display a Visual Basic style inputbox. .DESCRIPTION This function will display a graphical Inputbox, like the one from VisualBasic and VBScript. You must specify a message prompt. You can specify a title, the default is "Input". You can also specify a default value. The inputbox will write whatever is entered into it to the pipeline. If you click Cancel the inputbox will still write a string to the pipeline with a length of 0. It is recommended that you validate input. .PARAMETER Prompt A string that is displayed before the text entry field in dialog box .PARAMETER Title A string that appears as the title of the dialog box .PARAMETER Default An optional parameter indicating the default value of the text entry field .EXAMPLE $c = New-Inputbox -Prompt 'Enter the Netbios name of a domain computer' -Title "Enter a computername" -Default $env:computername Get-Service -ComputerName $c .OUTPUTS [string] #> [CmdletBinding(ConfirmImpact='None')] [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions','')] Param ( [Parameter(Position=0,Mandatory,HelpMessage='Enter a message prompt')] [ValidateNotNullorEmpty()] [string] $Prompt, [Parameter(Position=1)] [string] $Title='Input', [Parameter(Position=2)] [string] $Default='' ) begin { Write-Verbose -Message "Starting [$($MyInvocation.Mycommand)]" Write-Verbose -Message "-Prompt is [$Prompt]" Write-Verbose -Message "-Title is [$Title]" Write-Verbose -Message "-Default is [$Default]" } process { try { Add-Type -AssemblyName 'microsoft.visualbasic' -ErrorAction Stop [Microsoft.VisualBasic.Interaction]::InputBox($Prompt,$Title,$Default) } catch { Write-Warning -Message 'There was a problem creating the inputbox' Write-Warning -Message $_.Exception.Message } } end { Write-Verbose -Message "Ending [$($MyInvocation.Mycommand)]" } } #end New-Inputbox |