When you declare a parameter mandatory and the user does not specify it, PowerShell prompts the user for it. Another way of creating mandatory parameters is to provide a default value that triggers an action.
Here is an example:
#requires -Version 2 function Get-Something { param ( $Name = $( Add-Type -AssemblyName Microsoft.VisualBasic [Microsoft.VisualBasic.Interaction]::InputBox('Enter Name','Name', $env:username) ) ) "You entered $Name." }
When you run Get-Something like this, the function runs unattended:
Get-Something -Name Test
When you forget to specify -Name, a dialog box pops up, and the user can enter the value.