function Get-Hostname ([string]$name) { $errMsg = '' if ($name.Length -eq 5) { $res = Get-AssetConversion $name if ($res) { return $res,'' } try { $cmdbData = Search-ISMBO -bo cis -filter "AssetTag eq '$name'" -RawFilter } catch { $cmdbData = $null } if ( $cmdbData ) { return $cmdbData.Name, '' } else { $errMsg += "$name Asset Tag not in SMBIOS or CMDB. " } } # Regex to match IP Address brought to you by https://stackoverflow.com/a/36760050 if ($name -match "^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$") { $res = Resolve-DnsName $name if ($res -and $res.NameHost -and ($res.NameHost -match "([^.]*)\.int\.samhealth\.net")) { return $Matches[0],'' } else { $errMsg += "$name IP Address couldn't be resolved to hostname" } } if ($name.Length -eq 7) { $res = Get-ServiceTagConversion $name if ($res) { return $res,'' } try { $cmdbData = Search-ISMBO -bo cis -filter "SerialNumber eq '$name'" -RawFilter } catch { $cmdbData = $null } if ( $cmdbData ) { return $cmdbData.Name, '' } else { $errMsg += "$name Service Tag not found in SCCM"} } # Regex to match MAC Address brought to you by https://stackoverflow.com/a/4260512 if ($name -match "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$") { $res = Get-SCCM_PCFromMAC $name if ($res) { return $res,'' } else { $errMsg += "$name MAC Address not found in SCCM"} } $cmdbMatches = Find-ISMBO -bo cis -SearchQuery $name if ($cmdbMatches -and $cmdbMatches.Count -lt 2) { return $cmdbMatches.Name,'' } elseif (!$cmdbMatches) { $errMsg += "No CMDB match found" } elseif ($cmdbMatches.Count -ge 2) { $errMsg += "Many CMDB matches found" } return $name, $errMsg }