3
\$\begingroup\$

I have a power shell script that when run will prompt the user to:

  1. Select a folder location
  2. select a file name
  3. enter credentials

This then exports those credentials in a xml file. Although this requires 3 prompts to the user before is complete. Looking to find if there is a better way to approach this. For example, having a single prompt for the user.

###########################################################
# Create a file containing encrypted credentials
###########################################################
clear
Function Get-Folder($initialDirectory)
{
 #User selected folder location
 [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")|Out-Null
 $path = New-Object System.Windows.Forms.FolderBrowserDialog
 $path.Description = "Select a folder"
 $path.rootfolder = "MyComputer"
 if($path.ShowDialog() -eq "OK")
 {
 $location += $path.SelectedPath
 }
 #User selected file name
 [void][Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')
 $title = 'File Name'
 $msg = 'Please enter your file name'
 $text = [Microsoft.VisualBasic.Interaction]::InputBox($msg, $title)
 #Open prompt for user to enter credentials and export to xml file
 Get-Credential | Export-Clixml "$location\Credentials-$text.xml"
}
Get-Folder
asked Apr 25, 2019 at 7:16
\$\endgroup\$

1 Answer 1

3
\$\begingroup\$
  • Instead of letting the user (1) choose a folder and (2) choose a file name, you can just present the user with a Save File Dialog. It also warns the user if he tries to overwrite an existing file.

  • If the user cancels one of your dialogs, you should cancel the script rather than continue with invalid data.


$dialog = New-Object System.Windows.Forms.SaveFileDialog
$dialog.FileName = "Credentials.xml"
$dialog.Filter = "XML files (*.xml)|*.xml|All files|*.*"
if ($dialog.ShowDialog() -ne "OK")
{
 exit
}
...
Get-Credential | Export-Clixml $dialog.FileName
answered Apr 25, 2019 at 14:34
\$\endgroup\$

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.