function Get-BrowseLocation { [Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null [System.Windows.Forms.Application]::EnableVisualStyles() $browse = New-Object System.Windows.Forms.FolderBrowserDialog $browse.RootFolder = [System.Environment+SpecialFolder]'MyComputer' $browse.ShowNewFolderButton = $true $browse.Description = "Choose a directory" $loop = $true while($loop) { if ($browse.ShowDialog() -eq "OK") { $loop = $false } else { $res = [System.Windows.Forms.MessageBox]::Show("You clicked Cancel. Try again or exit script?", "Choose a directory", [System.Windows.Forms.MessageBoxButtons]::RetryCancel) if($res -eq "Cancel") { #End script return } } } $browse.SelectedPath $browse.Dispose() } Get-BrowseLocation write-host $browse