internal/functions/Connect-ConnstringInstance.ps1
function Connect-ConnstringInstance { <# .SYNOPSIS Internal function to establish smo connections using a connstring .DESCRIPTION Internal function to establish smo connections using a connstring Can interpret any of the following types of information: - String - Smo Server objects .PARAMETER SqlInstance The SQL Server instance to restore to. .PARAMETER SqlCredential Allows you to login to servers using SQL Logins as opposed to Windows Auth/Integrated/Trusted. .PARAMETER AzureUnsupported Throw if Azure is detected but not supported .PARAMETER MinimumVersion The minimum version that the calling command will support .PARAMETER StatementTimeout Sets the number of seconds a statement is given to run before failing with a timeout error. .EXAMPLE Connect-SqlInstance -SqlInstance sql2014 Connect to the Server sql2014 with native credentials. #> [CmdletBinding()] param ( [Parameter(Mandatory)] [DbaInstanceParameter]$SqlInstance, [PSCredential]$SqlCredential, [int]$StatementTimeout, [int]$MinimumVersion, [switch]$AzureUnsupported, [switch]$NonPooled ) if ($SqlInstance.InputObject.GetType().Name -eq 'Server') { $SqlInstance.InputObject.Refresh() return $SqlInstance.InputObject } else { $boundparams = $PSBoundParameters [object[]]$connstringcmd = (Get-Command New-DbaConnectionString).Parameters.Keys [object[]]$connectcmd = (Get-Command Connect-ConnstringInstance).Parameters.Keys foreach ($key in $connectcmd) { if ($key -notin $connstringcmd -and $key -ne "SqlCredential") { $null = $boundparams.Remove($key) } } # Build connection string $connstring = New-DbaConnectionString @boundparams -ClientName "dbatools PowerShell module - dbatools.io" $sqlconn = New-Object System.Data.SqlClient.SqlConnection $connstring $serverconn = New-Object Microsoft.SqlServer.Management.Common.ServerConnection $sqlconn $null = $serverconn.Connect() New-Object Microsoft.SqlServer.Management.Smo.Server $serverconn } } |