Activation error 0xc004f050

Page 1 of 2 12 LastLast

  1. Posts : 88
    Windows 10 - 32 bit
       #1

    Activation error 0xc004f050


    I'm struggling to get my activation code to work, every time I enter the code, I get error 0xc004f050

    When I'm in the settings menu, I keep getting a message "you need to activate windows before you can personalise this PC"

    Any help would be appreciated
      My Computer


  2. Posts : 3,453
       #2

    Take a guess said:
    I'm struggling to get my activation code to work, every time I enter the code, I get error 0xc004f050

    When I'm in the settings menu, I keep getting a message "you need to activate windows before you can personalise this PC"

    Any help would be appreciated
    We will need a lot more info bud, see Activation troubleshooting - Windows 10 Forums

    Run either tool - we just need some basic info to begin with.

    See also Error Code 0xc004F050 Solved - Windows 10 Forums

    May be a key/edition mismatch...
      My Computer


  3. Posts : 88
    Windows 10 - 32 bit
    Thread Starter
       #3

    Hi

    Thank you for helping, I run the activate troubleshooting link you attached, the report quoted a different key to what I have.

    I've entered the key quoted on the report, initially I got past activation stage, but then got a message "unable to activate due to error OxcOO4c008
      My Computer


  4. Posts : 3,453
       #4

    OK, give me some background on your key and installation... (Sorry I neglected to say to post the report you get- I need to see the info on your PC)
      My Computer


  5. Posts : 3,453
       #5

    @Take a guess

    You can delete the image... it has your key - BTW you can click it to mask but that's irrelevant now - click the Save Report button and post the report rather.
      My Computer


  6. Posts : 88
    Windows 10 - 32 bit
    Thread Starter
       #6

    Sorry if I'm not understanding your instructions

    Is this the report you require, Licensing Diag

    Param([Parameter(Position=1)]
    [switch]$Show = $false
    )

    $OutputFile = Join-Path $env:USERPROFILE -ChildPath "\Desktop\LicensingDiag.txt"

    $CabFile = -join ($env:TEMP, "", $env:computername, (Get-Date -UFormat "_%Y-%m-%d_"), "diag.cab")

    $Extracted = Join-Path $env:TEMP -ChildPath "\Extracted"

    if (Test-Path($Extracted)) { Remove-Item $Extracted -Recurse -Force }
    if (Test-Path($CabFile)) { Remove-Item $CabFile -Force }
    if (Test-Path($OutputFile)) { Remove-Item $OutputFile -Force }

    function MaskKey($PKey){

    if ($Show -ne $true){

    [string[]] $KeyArray = $PKey.Split('-')

    for ($x = 0; $x -lt $KeyArray.Count-1; $x++) {

    $KeyArray[$x] = "*****-"
    }
    return [string] $KeyArray -replace " ", ""
    }
    else {
    return [string] $PKey
    }
    }

    function Get-WindowsKey ($encoded) {
    $HexString = [Convert]::FromBase64String($encoded) | Format-Hex | Select-Object -Expand Bytes | ForEach-Object { '0x{0:x2}' -f $_ }

    [string[]] $digitalProductId = $HexString[52..66]

    New-Variable -Name base24 -Value 'BCDFGHJKMPQRTVWXY2346789' -Option Const
    New-Variable -Name cryptedStringLength -Value 24 -Option Const
    New-Variable -Name decryptionLength -Value 14 -Option Const
    New-Variable -Name decryptedKey -Value ([String]::Empty)

    $containsN = ($digitalProductId[$decryptionLength] -shr 3) -bAnd 1
    $digitalProductId[$decryptionLength] = [Byte]($digitalProductId[$decryptionLength] -bAnd 0xF7)
    for ($i = $cryptedStringLength; $i -ge 0; $i--) {
    $digitMapIndex = 0
    for ($j = $decryptionLength; $j -ge 0; $j--) {
    $digitMapIndex = [Int16]($digitMapIndex -shl 8 -bXor $digitalProductId[$j])
    $digitalProductId[$j] = [Byte][Math]::Floor($digitMapIndex / $base24.Length)
    $digitMapIndex = [Int16]($digitMapIndex % $base24.Length)
    }
    $decryptedKey = $decryptedKey.Insert(0, $base24[$digitMapIndex])
    }
    if ([Boolean]$containsN){
    $firstCharIndex = 0
    for ($index = 0; $index -lt $cryptedStringLength; $index++)
    {
    if ($decryptedKey[0] -ne $base24[$index]) {
    continue
    }
    $firstCharIndex = $index
    break
    }
    $keyWithN = $decryptedKey
    $keyWithN = $keyWithN.Remove(0, 1)
    $keyWithN = $keyWithN.Substring(0, $firstCharIndex) + 'N' + $keyWithN.Remove(0, $firstCharIndex)
    $decryptedKey = $keyWithN;
    }
    $returnValue = $decryptedKey
    for ($t = 20; $t -ge 5; $t -= 5)
    {
    $returnValue = $returnValue.Insert($t, '-')
    }
    return $returnValue
    }

    Invoke-Expression -Command (Join-Path $env:SystemRoot -ChildPath "\system32\licensingdiag.exe -q") | Out-Null

    #Create a folder and extract cab file
    New-Item $Extracted -Type directory | Out-Null

    Invoke-Expression -Command ('expand -F:* $CabFile $Extracted') | Out-Null

    #We now have 2 sub-dir's CLIP and SPP in $Extracted folder
    [xml] $xmlSPPData = Get-Content (Join-Path $Extracted -ChildPath "\SPP\SppDiagReport.xml")

    $OAKey = $xmlSPPData.DiagReport.LicensingData.OA3ProductKey

    $xmlSPPData.DiagReport.LicensingData.OA3ProductKey = MaskKey($OAKey)

    if ([environment]::OSVersion.Version.Build -gt 14393) {

    [xml] $xmlServerProps = $xmlSPPData.DiagReport.GenuineAuthz.ServerProps.Replace($OAKey,(MaskKey($OAKey)))

    foreach ($node in $xmlServerProps.genuineAuthorization.genuineProperties) {
    $ServerProps = "`r`n" + $node.InnerText
    }
    }
    else {
    $ServerProps = "`r`n" + $node.InnerText
    }

    $xmlSPPData.DiagReport.GenuineAuthz.ServerProps = $ServerProps.Replace(';',"`r`n" )


    #Create ArrayLists to store info from each folder
    $SPPInfo = New-Object System.Collections.ArrayList
    $CLIPInfo = New-Object System.Collections.ArrayList

    #Format XML
    $SPPInfo.Add('--------- Licensing Data ---------')

    foreach ($nodes in $xmlSPPData.DiagReport.ChildNodes)
    {
    foreach ($node in $nodes.ChildNodes )
    {
    $SPPInfo.Add($node.Name + ": " + $node.InnerText)
    }
    }

    #Add H/W data
    [xml] $xmlCLIP = Get-Content (Join-Path $Extracted -ChildPath "\CLIP\HardwareData.xml")

    $CLIPInfo.Add(" `r`n" + "--------- Hardware Data ---------")

    foreach ($nodes in $xmlCLIP.HardwareID.ChildNodes)
    {
    foreach ($node in $nodes)
    {
    $CLIPInfo.Add( "+" + $node.LocalName + ': ' + $node.path)

    foreach ($element in $node.ChildNodes)
    {
    switch ($element.name){
    'OSProductPfn' {$OSProductPfn = $element.InnerText}
    'BackupProductKeyDefault' { $element.InnerText = MaskKey($element.InnerText)}
    'LastBiosKey' { $element.InnerText = MaskKey($element.InnerText)}
    'DigitalProductId' {if($Show -eq $true){$element.InnerText = Get-WindowsKey ($element.InnerText)}}
    'DigitalProductId4' {if($Show -eq $true) {
    $element.InnerText =[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($element.InnerText)) -replace '[\W]', ""}}
    else {$element.InnerText = "Encoded info redacted"}
    }
    switch ($Show){
    $true {
    if ($node.LocalName -ccontains'LegacyHWID') {$element.InnerText =[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($element.InnerText)) -replace '[\W]', " "}
    if ($node.LocalName -ccontains 'SMBIOS') {$element.InnerText =[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($element.InnerText)) -replace '[\W]', " " }
    }
    $false {
    #Remove unnecesary info for brevity
    if ($element.name -eq 'DigitalProductId4') {$element.InnerText = "Encoded info redacted"}
    if ($node.LocalName -ccontains'LegacyHWID') {$element.InnerText = "Encrypted info redacted"}
    if ($node.LocalName -ccontains 'SMBIOS') {$element.InnerText = "Encrypted info redacted"}
    }
    }
    $CLIPInfo.Add(" " + $element.name + ": " + $element.InnerText)
    }
    }
    }
    #Add Event log data
    $SPPInfo.Add(" `r`n" + "--------- SPP Event log data ---------")

    $XPathSPP = "*[System[Provider[@Name='Microsoft-Windows-Security-SPP'] and (Level=2)]]"

    #TO DO:
    #$XPathTask = "*[System[Provider[@Name='Microsoft-Windows-Security-SPP'] and EventID=1061]]"

    $SPPEvents = Get-WinEvent -Path (Join-Path $Extracted -ChildPath '\SPP\SppDiagEvents.evtx') -FilterXPath $XPathSPP -ErrorAction Ignore

    if ($SPPEvents.Count -ne 0) {
    foreach ($SPPevent in $SPPEvents)
    {
    $SPPInfo.Add($SPPevent.Message)
    }
    }
    else {
    $SPPInfo.Add("No SPP event log errors found!")
    }


    #Get installed digital licences
    $CLIPInfo.Add(" `r`n" + "--------- Clip Event log data ---------")

    $XPathClip = "*[System[(EventID=116)]]" #These are only installed licences

    $ClipEvents = Get-WinEvent -Path (Join-Path $Extracted -ChildPath '\CLIP\Client-Licensing.evtx') -FilterXPath $XPathClip -Oldest -ErrorAction Ignore

    if ($ClipEvents.Count -ne 0) {
    foreach ($ClipEvent in $ClipEvents)
    {
    if ($ClipEvent.Message.Contains("Microsoft.Windows.48")) {
    $CLIPInfo.Add($ClipEvent.Message)
    $CLIPInfo.Add("Digital License acquired: " + $ClipEvent.TimeCreated.ToLongDateString())
    }
    }
    }
    else
    {
    $CLIPInfo.Add("No Digital License entries found!")
    }

    #Check for digital licence installation errors
    $CLIPInfo.Add(" `r`n" + "--------- Clip Event log errors ---------")

    $XPathClip = "*[System[(Level=2)]]"

    $ClipEvents = Get-WinEvent -Path (Join-Path $Extracted -ChildPath '\CLIP\Client-Licensing.evtx') -FilterXPath $XPathClip -Oldest -ErrorAction Ignore

    if ($ClipEvents.Count -ne 0) {
    foreach ($ClipEvent in $ClipEvents) {
    $CLIPInfo.Add($ClipEvent.Message)
    }
    }
    else {
    $CLIPInfo.Add("No Digital License errors found!")
    }

    #Create the Output File with all gathered info
    Set-Content -Path $OutputFile -Value $SPPInfo
    Add-Content -Path $OutputFile -Value $CLIPInfo

    #Clean up
    Remove-Item $CabFile -Force -ErrorAction SilentlyContinue
    Remove-Item (Join-Path $env:TEMP "\*.etl") -Force -ErrorAction SilentlyContinue
    Remove-Item $Extracted -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Item (Join-Path $env:TEMP -ChildPath "\WindowsPolicyData.xml") -Force -ErrorAction SilentlyContinue

    Invoke-Expression $OutputFile
      My Computer


  7. Posts : 3,453
       #7

    I checked your key - it is factory issued (which only comes built into the PC firmware or as a replacement from the big OEM companies (like Dell, HP, Lenovo etc) when one of their motherboards are replaced.

    Code:
    Key Status        : Valid
    PID            : 00325-80798-63748-AAOEM
    Extended PID        : 03258-03258-079-863748-02-2057-17763.0000-3272018
    Active SKU ID        : 0567073a-7d74-403b-b2d5-6b35da372d8d
    Product Description    : Win 10 RTM Core OEM:DM
    Edition ID        : Core
    Part Number        : [TH]X19-99523
    Product Key Channel    : OEM:DM
    Eula Type        : OEM
    Group ID        : 3258
    It's for another PC and won't activate on yours (yours does not have a factory key in the firmware)

    Where did you get the key from?
      My Computer


  8. Posts : 88
    Windows 10 - 32 bit
    Thread Starter
       #8

    I purchased it from a premium seller on ebay, 1st one didn't work they sent another replacement key which now seems not to work

    Due to my medical condition, being unemployed I can't afford the expense of a new MS key

    I really do appreciate the time you've taken to help me understand what was wrong.
      My Computer


  9. Posts : 3,453
       #9

    Take a guess said:
    I purchased it from a premium seller on ebay, 1st one didn't work they sent another replacement key which now seems not to work

    Due to my medical condition, being unemployed I can't afford the expense of a new MS key

    I really do appreciate the time you've taken to help me understand what was wrong.
    You are welcome, unfortunately you have been scammed - I'll help further by PM.

    Thanx for highlighting this so others may learn.
      My Computer


  10. Posts : 88
    Windows 10 - 32 bit
    Thread Starter
       #10

    Solved, without the help of superfly, it's highly unlikely it would have been.

      My Computer


 

  Related Discussions
Our Sites
Site Links
About Us
Windows 10 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 10" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd
All times are GMT -5. The time now is 02:42.
Find Us




Windows 10 Forums