Private/Get-DomainCredential.ps1

Function Get-DomainCredential 
{
    [CmdletBinding()]            
    Param(            
        [Parameter(            
            Mandatory = $true,            
            ParameterSetName = 'Fresh'            
        )]            
        [ValidateNotNullOrEmpty()]            
        [string[]]            
        $Domain,            
        [Parameter(            
            Mandatory = $true,            
            ParameterSetName = 'File'            
        )]            
        [Parameter(            
            Mandatory = $true,            
            ParameterSetName = 'Fresh'            
        )]            
        [ValidateNotNullOrEmpty()]            
        [string]            
        $Path            
    )            
    If ($PSBoundParameters.ContainsKey('Domain'))
    {            
        # http://www.jaapbrasser.com/quickly-and-securely-storing-your-credentials-powershell/
        $Creds = @{}            
        ForEach ($DomainEach in $Domain)
        {            
            $username = Read-Host "enter the user for domain " $DomainEach
            $Creds[$DomainEach] = Get-Credential `
                -Message "Enter credentials for domain $DomainEach" `
                -UserName $username
        }            
        $Creds | Export-Clixml -Path $Path            
    }
    Else
    {            
        $Creds = Import-Clixml -Path $Path            
    }            
    Return $Creds            
}