Skip to content

Commit

Permalink
Merge pull request #5216 from sqlcollaborative/regstore
Browse files Browse the repository at this point in the history
RegStore via connstring - fixes #5025
  • Loading branch information
potatoqualitee authored Mar 17, 2019
2 parents 0290932 + abd0260 commit 67deb8b
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 1 deletion.
2 changes: 1 addition & 1 deletion functions/Get-DbaCmsRegServerStore.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ function Get-DbaCmsRegServerStore {
process {
foreach ($instance in $SqlInstance) {
try {
$server = Connect-SqlInstance -SqlInstance $instance -SqlCredential $sqlcredential
$server = Connect-ConnstringInstance -SqlInstance $instance -SqlCredential $SqlCredential
} catch {
Stop-Function -Message "Failure" -Category ConnectionError -ErrorRecord $_ -Target $instance -Continue
}
Expand Down
63 changes: 63 additions & 0 deletions internal/functions/Connect-ConnstringInstance.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
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
}
}

0 comments on commit 67deb8b

Please sign in to comment.