From 157a88d0f0d285894ae74ad75c551c8c1dfdad7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Doma=C5=84ski?= Date: Wed, 3 Jun 2026 09:07:50 +0000 Subject: [PATCH] Jun 3, 2026, 11:07 AM --- toolbox/Modules/SQLManager.psm1 | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/toolbox/Modules/SQLManager.psm1 b/toolbox/Modules/SQLManager.psm1 index d8d7102..b2d8d0d 100644 --- a/toolbox/Modules/SQLManager.psm1 +++ b/toolbox/Modules/SQLManager.psm1 @@ -22,13 +22,14 @@ function Test-SQLConnection { [string]$ServerInstance ) + $connWarnings = $null try { - # Using Test-DbaConnection from dbatools - $testResult = Test-DbaConnection -SqlInstance $ServerInstance -ErrorAction Stop + # Using Test-DbaConnection from dbatools and suppressing console warnings while capturing them + $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 - $instanceInfo = Get-DbaInstance -SqlInstance $ServerInstance -ErrorAction Stop + $instanceInfo = Get-DbaInstance -SqlInstance $ServerInstance -ErrorAction Stop -WarningAction SilentlyContinue return @{ Success = $true Instance = $instanceInfo.Name @@ -37,10 +38,18 @@ function Test-SQLConnection { Status = "Online" } } else { - return @{ Success = $false; Error = "Connection failed." } + $errDetail = "Connection failed." + if ($connWarnings) { + $errDetail = "$errDetail ($($connWarnings -join '; '))" + } + return @{ Success = $false; Error = $errDetail } } } 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 ) + $dbWarnings = $null try { - # Using Get-DbaDatabase from dbatools - $databases = Get-DbaDatabase -SqlInstance $ServerInstance -ErrorAction Stop + # Using Get-DbaDatabase from dbatools and suppressing console warnings while capturing them + $databases = Get-DbaDatabase -SqlInstance $ServerInstance -ErrorAction Stop -WarningAction SilentlyContinue -WarningVariable dbWarnings $dbList = @() foreach ($db in $databases) { $dbList += [pscustomobject]@{ @@ -68,7 +78,11 @@ function Get-SQLDatabases { } return $dbList } catch { - throw "Failed to get databases: $($_.Exception.Message)" + $errMsg = $_.Exception.Message + if ($dbWarnings) { + $errMsg = "$errMsg ($($dbWarnings -join '; '))" + } + throw "Failed to get databases: $errMsg" } }