IT – online

Notícias | Análises | Software Microsoft

Guias IT-online: Como obter a chave de produto do Windows através do Powershell

4 comentários

Existem uma série de situações inesperadas que nos podem fazer perder uma chave de produto do Windows, simplesmente porque perdemos o papel onde anotamos a mesma, o autocolante COA deteriorou-se com o tempo ou como acontece nos equipamentos mais recentes, a ausência do COA que identifica a chave.

Perder ou não ter conhecimento da chave de produto, pode causar algum transtorno quando queremos reinstalar o Windows.

Para identificar a chave de produto do Windows ou de outras aplicações que temos instaladas, podemos recorrer a diversas ferramentas de terceiros existentes no mercado, mas nem sempre conseguimos encontrar a ferramenta certa ou por vezes usamos com algum receio porque o antivírus pode identificar algumas destas aplicações como potenciais ameaças.

Neste guia, vou explicar como podemos identificar a chave de produto do Windows sem recorrer a qualquer ferramenta de terceiros, usando apenas o Powershell e um script escrito para o efeito.

Vamos abrir o Notepad e colar o seguinte Script:

function Get-WindowsKey {
## function to retrieve the Windows Product Key from any PC
## by Jakob Bindslet (jakob@bindslet.dk)
param ($targets = ".")
$hklm = 2147483650
$regPath = "Software\Microsoft\Windows NT\CurrentVersion"
$regValue = "DigitalProductId"
Foreach ($target in $targets) {
$productKey = $null
$win32os = $null
$wmi = [WMIClass]"\\$target\root\default:stdRegProv"
$data = $wmi.GetBinaryValue($hklm,$regPath,$regValue)
$binArray = ($data.uValue)[52..66]
$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 Caption -value $win32os.Caption
$obj | Add-Member Noteproperty CSDVersion -value $win32os.CSDVersion
$obj | Add-Member Noteproperty OSArch -value $win32os.OSArchitecture
$obj | Add-Member Noteproperty BuildNumber -value $win32os.BuildNumber
$obj | Add-Member Noteproperty RegisteredTo -value $win32os.RegisteredUser
$obj | Add-Member Noteproperty ProductID -value $win32os.SerialNumber
$obj | Add-Member Noteproperty ProductKey -value $productkey
$obj
}
}

Em seguida vamos guardar o ficheiro com a extensão Powershell “.ps1” numa qualquer localização, neste exemplo será no desktop.

Para nos certificarmos que o ficheiro é guardado com a extensão exata, podemos digitar o nome do ficheiro entre aspas desta forma: “recoverykey.ps1”

save as_recoveryAgora que temos o ficheiro do Script criado vamos abrir o Powershell com privilégios de administrador.

No Start do Windows 8 vamos escrever Powershell para que este seja apresentado na barra de Search. Em seguida vamos clicar com o botão direito em Powershell e selecionamos a opção “Run as administrator”.

Powershell via StartCom o Powershell aberto, em primeiro lugar vamos dar permissões para a execução de Scripts guardados localmente e que não são assinados digitalmente. Esta operação evita erros de permissões ao executarmos o Script.

Para isso vamos escrever o seguinte comando: “Set-ExecutionPolicy RemoteSigned”, seguido de Enter.

remote_executionCom o passo anterior feito, vamos agora escrever o seguinte comando seguindo de Enter (alterar de acordo com a localização/nome que atribuírem ao script):

Import-Module C:\Users\administrador\Desktop\recoverykey.ps1; Get-WindowsKey

Este comando vai chamar o script à localização onde o guardamos inicialmente e, através do comando “Get-WindowsKey” chamar a função que irá retornar a chave de produto.

Dica: Caso não queiram escrever a localização do ficheiro manualmente, poderão pressionar a tecla SHIFT ao mesmo tempo que clicam com o botão direito do rato no ficheiro. Em seguida escolhem a opção “Copy as Path”. Depois clicam com o botão direito na janela do powershell e automaticamente o caminho é colado.

get_windows_keyO script depois de executado, apresenta algumas informações do sistema, nomeadamente o Sistema Operativo instalado, a Build correspondente, o tipo de arquitetura e o mais importante, o Product ID e a Product Key.

O passo seguinte, será guardar religiosamente a chave de produto num local seguro onde mais tarde a possamos encontrar em caso de necessitarmos de reinstalar o Windows.

Este script está testado e aprovado para retornar a chave de produto das seguintes versões do Windows:

Windows 7 32 e 64 bits, Windows 8 32 e 64 bits e Windows 8.1 32 e 64 bits.

O script usado neste guia foi escrito por Jakob Bindslet, pelo que os crédito são para o respetivo autor.

Espero que este Guia seja útil a todos os que visitam o IT-online.

Cumps,

NS

Autor: nuno silva

IT Professional | Windows Insider MVP | Microsoft MVP - Windows Experience (2014-2016)| Microsoft Technical Beta Tester (Windows International Team)|MCC | Microsoft IT Advisory Council Member | Certified Microsoft Windows Phone Expert | Microsoft Virtual Academy Student | Windows Team Division Manager @ Microsoft Group Portugal (Facebook)

4 thoughts on “Guias IT-online: Como obter a chave de produto do Windows através do Powershell

  1. Consegui a chave, mas na instalação do 10 diz que a chave não funcionou. Até copiei do powershell pra garantir que não estava digitando nada errado.

    • Olá Monique, desde já agradeço o seu comentário.

      Se a chave que o PowerShell devolveu for do Windows 7, Windows 8 ou 8.1, a mesma não pode ser usada numa instalação limpa do Windows 10, tendo em conta que são versões diferentes. Se quiser fazer uma instalação limpa do Windows 10, em primeiro terá que fazer o upgrade a partir de uma das versões já descritas e certificar-se que o Windows 10 foi ativado com sucesso. Após este upgrade, poderá então fazer uma instalação limpa e onde não será necessário introduzir a chave de produto. Após a instalação e configuração da sua conta Microsoft, o Windows fará a ativação de forma automática.

      Espero que de alguma forma tenha esclarecido a sua questão.

      Cumprimentos

  2. cara eu escrevo o comando so q fala Import-Module : O módulo especificado ‘C:\Users\AndréSousa\Desktop\recoverykey.ps1’ não foi carregado porque nenhum
    arquivo de módulo válido foi encontrado em nenhum diretório de módulo. AJUDA AE

    • André executou o PowerShell com previlégio de administrador e executou o comando Set-ExecutionPolicy RemoteSigned para permitir a execução do script?
      Ao introduzir o comando Import-Module escreveu correctamente o caminho para o script? Experimente gravar o script noutra localização e obtenha o caminho para o mesmo como descrito no artigo.

      Caso não consiga executar o script desta forma, arranjamos outra solução

Deixe uma Resposta

Please log in using one of these methods to post your comment:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s