Jun 3, 2026, 11:07 AM
This commit is contained in:
@@ -22,13 +22,14 @@ function Test-SQLConnection {
|
|||||||
[string]$ServerInstance
|
[string]$ServerInstance
|
||||||
)
|
)
|
||||||
|
|
||||||
|
$connWarnings = $null
|
||||||
try {
|
try {
|
||||||
# Using Test-DbaConnection from dbatools
|
# Using Test-DbaConnection from dbatools and suppressing console warnings while capturing them
|
||||||
$testResult = Test-DbaConnection -SqlInstance $ServerInstance -ErrorAction Stop
|
$testResult = Test-DbaConnection -SqlInstance $ServerInstance -ErrorAction Stop -WarningAction SilentlyContinue -WarningVariable connWarnings
|
||||||
|
|
||||||
if ($testResult.Connect -eq $true) {
|
if ($testResult -and $testResult.Connect -eq $true) {
|
||||||
# If connection is successful, get some basic instance info
|
# If connection is successful, get some basic instance info
|
||||||
$instanceInfo = Get-DbaInstance -SqlInstance $ServerInstance -ErrorAction Stop
|
$instanceInfo = Get-DbaInstance -SqlInstance $ServerInstance -ErrorAction Stop -WarningAction SilentlyContinue
|
||||||
return @{
|
return @{
|
||||||
Success = $true
|
Success = $true
|
||||||
Instance = $instanceInfo.Name
|
Instance = $instanceInfo.Name
|
||||||
@@ -37,10 +38,18 @@ function Test-SQLConnection {
|
|||||||
Status = "Online"
|
Status = "Online"
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return @{ Success = $false; Error = "Connection failed." }
|
$errDetail = "Connection failed."
|
||||||
|
if ($connWarnings) {
|
||||||
|
$errDetail = "$errDetail ($($connWarnings -join '; '))"
|
||||||
|
}
|
||||||
|
return @{ Success = $false; Error = $errDetail }
|
||||||
}
|
}
|
||||||
} catch {
|
} catch {
|
||||||
return @{ Success = $false; Error = $_.Exception.Message }
|
$errMsg = $_.Exception.Message
|
||||||
|
if ($connWarnings) {
|
||||||
|
$errMsg = "$errMsg ($($connWarnings -join '; '))"
|
||||||
|
}
|
||||||
|
return @{ Success = $false; Error = $errMsg }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,9 +63,10 @@ function Get-SQLDatabases {
|
|||||||
[string]$ServerInstance
|
[string]$ServerInstance
|
||||||
)
|
)
|
||||||
|
|
||||||
|
$dbWarnings = $null
|
||||||
try {
|
try {
|
||||||
# Using Get-DbaDatabase from dbatools
|
# Using Get-DbaDatabase from dbatools and suppressing console warnings while capturing them
|
||||||
$databases = Get-DbaDatabase -SqlInstance $ServerInstance -ErrorAction Stop
|
$databases = Get-DbaDatabase -SqlInstance $ServerInstance -ErrorAction Stop -WarningAction SilentlyContinue -WarningVariable dbWarnings
|
||||||
$dbList = @()
|
$dbList = @()
|
||||||
foreach ($db in $databases) {
|
foreach ($db in $databases) {
|
||||||
$dbList += [pscustomobject]@{
|
$dbList += [pscustomobject]@{
|
||||||
@@ -68,7 +78,11 @@ function Get-SQLDatabases {
|
|||||||
}
|
}
|
||||||
return $dbList
|
return $dbList
|
||||||
} catch {
|
} catch {
|
||||||
throw "Failed to get databases: $($_.Exception.Message)"
|
$errMsg = $_.Exception.Message
|
||||||
|
if ($dbWarnings) {
|
||||||
|
$errMsg = "$errMsg ($($dbWarnings -join '; '))"
|
||||||
|
}
|
||||||
|
throw "Failed to get databases: $errMsg"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user