@@ -640,7 +640,17 @@ function Connect-DbaInstance {
640640
641641 if ($DedicatedAdminConnection -and $serverName ) {
642642 Write-Message - Level Debug - Message " Parameter DedicatedAdminConnection is used, so serverName will be changed and NonPooledConnection will be set."
643- $serverName = ' ADMIN:' + $serverName
643+ if ($instance.IsLocalHost ) {
644+ # Use localhost to avoid multiple IP resolution on multi-homed servers (issue #10151)
645+ if ($instance.InstanceName -ne ' MSSQLSERVER' ) {
646+ $serverName = " ADMIN:localhost\$ ( $instance.InstanceName ) "
647+ } else {
648+ $serverName = " ADMIN:localhost"
649+ }
650+ Write-Message - Level Debug - Message " IsLocalHost is true, using '$serverName ' for DAC to avoid multi-IP resolution."
651+ } else {
652+ $serverName = " ADMIN:$serverName "
653+ }
644654 $NonPooledConnection = $true
645655 }
646656
@@ -704,7 +714,16 @@ function Connect-DbaInstance {
704714 $connContext.StatementTimeout = $StatementTimeout
705715 }
706716 if ($DedicatedAdminConnection -and $inputObject.ConnectionContext.ServerInstance -notmatch ' ^ADMIN:' ) {
707- $connContext.ServerInstance = ' ADMIN:' + $connContext.ServerInstance
717+ if ($instance.IsLocalHost ) {
718+ # Use localhost to avoid multiple IP resolution on multi-homed servers (issue #10151)
719+ if ($instance.InstanceName -ne ' MSSQLSERVER' ) {
720+ $connContext.ServerInstance = " ADMIN:localhost\$ ( $instance.InstanceName ) "
721+ } else {
722+ $connContext.ServerInstance = " ADMIN:localhost"
723+ }
724+ } else {
725+ $connContext.ServerInstance = ' ADMIN:' + $connContext.ServerInstance
726+ }
708727 $connContext.NonPooledConnection = $true
709728 }
710729 if ($Database ) {
0 commit comments