diff --git a/internal/functions/Get-DecryptedObject.ps1 b/internal/functions/Get-DecryptedObject.ps1 index fe09b522e4e1..cd5a20e602fa 100644 --- a/internal/functions/Get-DecryptedObject.ps1 +++ b/internal/functions/Get-DecryptedObject.ps1 @@ -22,7 +22,7 @@ function Get-DecryptedObject { # Query Service Master Key from the database - remove padding from the key # key_id 102 eq service master key, thumbprint 3 means encrypted with machinekey Write-Message -Level Verbose -Message "Querying service master key" - $sql = "SELECT substring(crypt_property,9,len(crypt_property)-8) as smk FROM sys.key_encryptions WHERE key_id=102 and (thumbprint=0x03 or thumbprint=0x0300000001)" + $sql = "SELECT substring(crypt_property,9,datalength(crypt_property)-8) as smk FROM sys.key_encryptions WHERE key_id=102 and (thumbprint=0x03 or thumbprint=0x0300000001)" try { $smkbytes = $server.Query($sql).smk } catch { @@ -115,14 +115,14 @@ function Get-DecryptedObject { syslnklgns.name, substring(syslnklgns.pwdhash,5,$ivlen) iv, substring(syslnklgns.pwdhash,$($ivlen + 5), - len(syslnklgns.pwdhash)-$($ivlen + 4)) pass + datalength(syslnklgns.pwdhash)-$($ivlen + 4)) pass FROM master.sys.syslnklgns inner join master.sys.sysservers on syslnklgns.srvid=sysservers.srvid - WHERE len(pwdhash) > 0" + WHERE datalength(pwdhash) > 0" } "Credential" { - "SELECT QUOTENAME(name) AS name,credential_identity,substring(imageval,5,$ivlen) iv, substring(imageval,$($ivlen + 5),len(imageval)-$($ivlen + 4)) pass from sys.credentials cred inner join sys.sysobjvalues obj on cred.credential_id = obj.objid where valclass=28 and valnum=2" + "SELECT QUOTENAME(name) AS name,credential_identity,substring(imageval,5,$ivlen) iv, substring(imageval,$($ivlen + 5),datalength(imageval)-$($ivlen + 4)) pass from sys.credentials cred inner join sys.sysobjvalues obj on cred.credential_id = obj.objid where valclass=28 and valnum=2" } } @@ -199,4 +199,4 @@ function Get-DecryptedObject { Password = $encode.GetString($decrypted) } } -} \ No newline at end of file +} diff --git a/internal/functions/Resolve-IpAddress.ps1 b/internal/functions/Resolve-IpAddress.ps1 index 319001be2a7f..36da513ca5f3 100644 --- a/internal/functions/Resolve-IpAddress.ps1 +++ b/internal/functions/Resolve-IpAddress.ps1 @@ -8,9 +8,17 @@ function Resolve-IpAddress { ) $ping = New-Object System.Net.NetworkInformation.Ping $timeout = 1000 #milliseconds + $destComputer=$null if ($Server.GetType() -eq [Microsoft.SqlServer.Management.Smo.Server]) { - return $ping.Send($Server.ComputerName, $timeout).Address.IPAddressToString + if($server.computername){ + $destComputer=$server.Computername + }elseif($server.ComputerNamePhysicalNetBIOS){ + $destComputer=$server.ComputerNamePhysicalNetBIOS + }elseif($server.name){ + $destComputer=$server.name + } } else { - return $ping.Send($server.Split('\')[0], $timeout).Address.IPAddressToString + $destComputer=$server.Split('\')[0] } -} \ No newline at end of file + return $ping.Send($destComputer, $timeout).Address.IPAddressToString +} diff --git a/internal/functions/Resolve-NetBiosName.ps1 b/internal/functions/Resolve-NetBiosName.ps1 index 160f79c8ec3e..80e620371c11 100644 --- a/internal/functions/Resolve-NetBiosName.ps1 +++ b/internal/functions/Resolve-NetBiosName.ps1 @@ -10,5 +10,11 @@ Internal function. Takes a best guess at the NetBIOS name of a server. [PSCredential]$SqlCredential ) $server = Connect-SqlInstance -SqlInstance $SqlInstance -SqlCredential $SqlCredential - $server.ComputerName -} \ No newline at end of file + if($server.ComputerName){ + return $server.ComputerName + }elseif($server.ComputerNamePhysicalNetBIOS){ + return $server.ComputerNamePhysicalNetBIOS + }else{ + return $server.name + } +}