Public/New-SqlConnection.ps1

Function New-SqlConnection
{
    [CmdletBinding()]
    param(
        [Parameter(ValueFromPipeline=$true)][String]$ServerName
        ,[String]$DatabaseName
        ,$ApplicationName=$null
        ,[Switch]$Open
        ,[Switch]$DoNotPool
        ,[String]$UserName
        ,[String]$Password
        ,[String]$AccessToken
        ,[Switch]$TrustServerCertificate
    )
    $conn=new-object Microsoft.Data.SqlClient.SqlConnection -ArgumentList @(
        Get-SqlConnectionString `
            -ServerName $serverName `
            -DatabaseName $databaseName `
            -ApplicationName $applicationName `
            -UserName $userName `
            -Password $password `
            -DoNotPool:$DoNotPool.IsPresent `
            -TrustServerCertificate:$TrustServerCertificate.IsPresent
    )
    if($open.IsPresent)
    { 
        Write-Debug "Opening connection to $serverName"
        $conn.Open() 
    }
    if($AccessToken){
        $conn.AccessToken = $accessToken
    }    
    $conn
}