Add this to your SQL toolbox so that it’ll be quick and easy to validate a given MS SQL database credential before applying it to your scripts.

$id='sa'
$password='somePasswordHere'
$sqlServer='sqlServerName'
$databaseName='bookFace'
$cred=New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $id,$(ConvertTo-securestring $password -AsPlainText -Force)

function testSqlCredential {
    param(
        [Parameter(Mandatory)][string]$sqlServer,
        [Parameter(Mandatory)][pscredential]$credential,
        [string]$databaseName='master'
    )

    $ErrorActionPreference = 'Stop'

    try {
        $id = $credential.UserName
        $password = $credential.GetNetworkCredential().Password
        $connectionString = 'Data Source={0};database={1};User ID={2};Password={3}' -f $sqlServer,$databaseName,$id,$password
        $sqlConnection = New-Object System.Data.SqlClient.SqlConnection $ConnectionString
        $sqlConnection.Open()
        $sqlConnection.Close()
        write-host "Credential is valid for $servername for database $databaseName"
        return $true
        }
    catch {
        write-warning "$error"
        return $false
        }
}

testSqlCredential $sqlServer $cred $databaseName