Public/Connect-SqlServer.ps1
function Connect-SqlServer { <# .SYNOPSIS Creates a Connection to an SQL Server. .DESCRIPTION Creates a Connection to an SQL server using either an existing SQL Connection String or Server/Database/Credentials. .EXAMPLE Connect-SqlServer -Server "mysqlserver.example.com" -Database "MyFavoriteDb" -UseWindowsAuthentication Connects to MyFavoriteDB on mysqlserver.example.com using integrated Windows authenticatin .EXAMPLE Connect-SqlServer -Server "mysqlserver.exampl.com" -Database "MyFavoriteDb" -Credential (Get-Credential) Prompts for Credentials and Connects to MyFavoriteDB on mysqlserver.example.com. .EXAMPLE New-SqlConnectionString -Server "mysqlserver.exampl.com" -Database "MyFavoriteDb" -Credential (Get-Credential) | Connect-SqlServer Prompts for Credentials and Creates Connection String for MyFavoriteDB on mysqlserver.example.com. Uses this Connection String to make the connection. .PARAMETER ConnectionString Existing Connection String to use for Connection. .PARAMETER Server IP address or Hostname of SQL Server. .PARAMETER Database Database to use for Connection. .PARAMETER Credential Credentials to use for Connection. .PARAMETER UseWindowsAuthentication Specifies that current Windows Credentials should be used for the Connection. Note that these credentials will be available in plaintext in the returned string. #> [cmdletbinding(DefaultParameterSetName="connstring")] Param ( [Parameter(Mandatory=$true,ParameterSetName="connstring",ValueFromPipeline=$True,Position=0)] [string]$ConnectionString, [Parameter(Mandatory=$true,ParameterSetName="not_integrated",Position=0)] [Parameter(Mandatory=$true,ParameterSetName="integrated",Position=0)] [string]$Server, [Parameter(Mandatory=$true,ParameterSetName="not_integrated",Position=1)] [Parameter(Mandatory=$true,ParameterSetName="integrated",Position=1)] [string]$Database, [Parameter(Mandatory=$True,ParameterSetName="not_integrated",Position=2)] [System.Management.Automation.PSCredential] [System.Management.Automation.Credential()] $Credential, [Parameter(Mandatory=$true,ParameterSetName="integrated",Position=2)] [switch]$UseWindowsAuthentication, [Parameter(Mandatory=$false)] [switch]$ApplicationIntentRO ) BEGIN { } PROCESS { switch ($PSCmdlet.ParameterSetName) { { $_ -ne 'connstring' } { $ConnectionString = New-SqlConnectionString @PSBoundParameters continue } } $Connection = New-Object System.Data.SqlClient.SqlConnection $ConnectionString $Connection.open() $Global:SqlConnection = $Connection $Connection } } |