Created
March 3, 2020 04:07
-
-
Save dialogbox/e9b89836ce33b16f9942da5598fc9d00 to your computer and use it in GitHub Desktop.
Get installed SQLServer product key. https://xzwang.wordpress.com/2013/06/22/retreiving-sql-server-2012-product-key-from-the-registry/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function Get-SQLserverKey { | |
## function to retrieve the license key of a SQL 2012 Server. | |
## by Jakob Bindslet (jakob@bindslet.dk) | |
## 2012 Modification by Xian Wang (daanno2@gmail.com) | |
param ($targets = ".") | |
$hklm = 2147483650 | |
$regPath = "SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\Setup" | |
$regValue1 = "DigitalProductId" | |
$regValue2 = "PatchLevel" | |
$regValue3 = "Edition" | |
Foreach ($target in $targets) { | |
$productKey = $null | |
$win32os = $null | |
$wmi = [WMIClass]"\\$target\root\default:stdRegProv" | |
$data = $wmi.GetBinaryValue($hklm,$regPath,$regValue1) | |
[string]$SQLver = $wmi.GetstringValue($hklm,$regPath,$regValue2).svalue | |
[string]$SQLedition = $wmi.GetstringValue($hklm,$regPath,$regValue3).svalue | |
$binArray = ($data.uValue)[0..16] | |
$charsArray = "B","C","D","F","G","H","J","K","M","P","Q","R","T","V","W","X","Y","2","3","4","6","7","8","9" | |
## decrypt base24 encoded binary data | |
For ($i = 24; $i -ge 0; $i--) { | |
$k = 0 | |
For ($j = 14; $j -ge 0; $j--) { | |
$k = $k * 256 -bxor $binArray[$j] | |
$binArray[$j] = [math]::truncate($k / 24) | |
$k = $k % 24 | |
} | |
$productKey = $charsArray[$k] + $productKey | |
If (($i % 5 -eq 0) -and ($i -ne 0)) { | |
$productKey = "-" + $productKey | |
} | |
} | |
$win32os = Get-WmiObject Win32_OperatingSystem -computer $target | |
$obj = New-Object Object | |
$obj | Add-Member Noteproperty Computer -value $target | |
$obj | Add-Member Noteproperty OSCaption -value $win32os.Caption | |
$obj | Add-Member Noteproperty OSArch -value $win32os.OSArchitecture | |
$obj | Add-Member Noteproperty SQLver -value $SQLver | |
$obj | Add-Member Noteproperty SQLedition -value $SQLedition | |
$obj | Add-Member Noteproperty ProductKey -value $productkey | |
$obj | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment