(Get-WmiObject -query "select * from SoftwareLicensingService").OA3xOriginalProductKey Перед выполнением Set-ExecutionPolicy RemoteSigned, после Set-ExecutionPolicy Default
function GetWin10Key { $Hklm = 2147483650 $Target = $env:COMPUTERNAME $regPath = "Software\Microsoft\Windows NT\CurrentVersion" $DigitalID = "DigitalProductId" $wmi = [WMIClass]"\\$Target\root\default:stdRegProv" # Get registry value $Object = $wmi.GetBinaryValue($hklm, $regPath, $DigitalID) [Array]$DigitalIDvalue = $Object.uValue # If get successed if($DigitalIDvalue) { # Get producnt name and product ID $ProductName = (Get-itemproperty -Path "HKLM:Software\Microsoft\Windows NT\CurrentVersion" -Name "ProductName").ProductName $ProductID = (Get-itemproperty -Path "HKLM:Software\Microsoft\Windows NT\CurrentVersion" -Name "ProductId").ProductId # Convert binary value to serial number $Result = ConvertTokey $DigitalIDvalue $OSInfo = (Get-WmiObject "Win32_OperatingSystem" | select Caption).Caption if($OSInfo -match "Windows 10") { if($Result) { [string]$value ="ProductName : $ProductName `r`n" ` + "ProductID : $ProductID `r`n" ` + "Installed Key: $Result" $value } } else { Write-Warning "Run in Windows 10 only" } } else { Write-Warning "Error reading key" }}# Convert binary to serial number function ConvertToKey($Key) { $Keyoffset = 52 $isWin10 = [int]($Key[66]/6) -band 1 $HF7 = 0xF7 $Key[66] = ($Key[66] -band $HF7) -bOr (($isWin10 -band 2) * 4) $i = 24 [String]$Chars = "BCDFGHJKMPQRTVWXY2346789" do { $Cur = 0; $X = 14 do { $Cur = $Cur * 256 $Cur = $Key[$X + $Keyoffset] + $Cur $Key[$X + $Keyoffset] = [math]::Floor([double]($Cur / 24)) $Cur = $Cur % 24 $X = $X - 1 } while($X -ge 0) $i = $i - 1 $KeyOutput = $Chars.SubString($Cur, 1) + $KeyOutput $last = $Cur } while($i -ge 0) $Keypart1 = $KeyOutput.SubString(1, $last) $Keypart2 = $KeyOutput.Substring(1, $KeyOutput.Length - 1) if($last -eq 0 ) { $KeyOutput = "N" + $Keypart2 } else { $KeyOutput = $Keypart2.Insert($Keypart2.IndexOf($Keypart1) + $Keypart1.Length, "N") } $a = $KeyOutput.Substring(0,5) $b = $KeyOutput.Substring(5,5) $c = $KeyOutput.Substring(10,5) $d = $KeyOutput.Substring(15,5) $e = $KeyOutput.Substring(20,5) $keyproduct = $a + "-" + $b + "-"+ $c + "-"+ $d + "-"+ $e $keyproduct }GetWin10Key