Erro 0xC004F074 "Não foi possível contatar o Serviço de Gerenciamento de Chaves (KMS)"
Aplica-se a: ✔️ Windows VMs
Este artigo discute como resolver o erro 0xC004F074 que ocorre quando você tenta ativar uma VM (máquina virtual) do Windows no Microsoft Azure.
Pré-requisitos
- PowerShell
- O script do Gerenciador de Licenças de Software (slmgr.vbs)
- A ferramenta PsPing
Sintomas
Ao tentar ativar uma VM do Windows do Azure, você encontra a seguinte mensagem de erro no Host de Script do Windows:
Erro: 0xC004F074 O Serviço de Licenciamento de Software informou que o computador não pôde ser ativado. Não foi possível entrar em contato com o KMS (Serviço de Gerenciamento de Chaves). Consulte o Log de Eventos do Aplicativo para obter informações adicionais.
Causa
A VM não pode se conectar ao serviço KMS para ativação. Se um KMS do Azure for usado para ativação (a seleção padrão), a solicitação de ativação deverá ser originada de um endereço IP público do Azure. As possíveis causas para essa falha de conectividade incluem:
Túnel forçado, no qual todo o tráfego é roteado para fora do Azure (normalmente para um ambiente local) usando o Azure ExpressRoute ou uma solução de virtualização de rede
Tráfego bloqueado por uma solução de virtualização de rede ou por um balanceador de carga interno padrão
Investigação
Para determinar a causa específica do problema, siga o procedimento de três partes nas seções a seguir.
Parte 1: Configurar a chave de configuração do cliente KMS apropriada
Observação
Essa parte não é necessária para VMs que executam Windows 10 Enterprise várias sessões (também conhecidas como Windows 10 Enterprise para Áreas de Trabalho Virtuais) na Área de Trabalho Virtual do Azure).
Para determinar se sua VM está executando a edição de várias sessões, execute o seguinte comando de script do Gerenciador de Licenças de Software:
slmgr.vbs /dlv
Se a saída contiver a Name: Windows(R), ServerRdsh edition
cadeia de caracteres, a VM estará executando a edição de várias sessões e você poderá ignorar o restante desta parte.
Observação
Se você implantar uma VM de várias sessões do Windows 10 Enterprise e atualizar a chave do produto para outra edição, não poderá reverter a VM para Windows 10 Enterprise de várias sessões. Em vez disso, você precisa reimplantar a VM. Para obter mais informações, consulte Posso atualizar uma VM do Windows para o Windows Enterprise de várias sessões?
Para a VM criada a partir de uma imagem personalizada, você deve configurar a chave de configuração do cliente KMS apropriada para a VM. Siga estas etapas:
Em uma janela elevada do Prompt de Comando, execute o seguinte comando de script do Gerenciador de Licenças de Software:
cscript c:\windows\system32\slmgr.vbs /dlv
Verifique o
Description
valor na saída para determinar se a VM foi criada a partir da mídia de licença de varejo (RETAIL
canal) ou volume (VOLUME_KMSCLIENT
).Se a saída do comando anterior indicar o
RETAIL
canal, execute os seguintes comandos de script do Software License Manager. O primeiro comando define a chave de instalação do cliente KMS para a versão do Windows Server usada e o segundo comando força outra tentativa de ativação.cscript c:\windows\system32\slmgr.vbs /ipk <kms-client-setup-key> cscript c:\windows\system32\slmgr.vbs /ato
Por exemplo, se você estiver usando o Windows Server 2016 Datacenter, o primeiro comando aparecerá da seguinte maneira:
cscript c:\windows\system32\slmgr.vbs /ipk CB7KF-BWN84-R7R2Y-793K2-8XDDG
Parte 2: Verificar se a VM está atrás de um balanceador de carga interno de SKU Standard
Siga estas etapas para verificar se a VM está atrás de um balanceador de carga interno de SKU Standard que bloqueia o tráfego de saída da Internet por padrão:
No portal do Azure, procure e clique em Máquinas virtuais.
Na lista de máquinas virtuais, selecione o nome da sua VM.
No painel de menu da VM, localize o cabeçalho Rede e selecione Balanceamento de carga. Se você vir uma mensagem informando Nenhum recurso de balanceamento de carga a ser exibido, a VM não está atrás de nenhum balanceador de carga. Nesse caso, você pode prosseguir para a Parte 3: Verificar a conectividade entre a VM e o serviço KMS do Azure.
Se você vir um recurso do balanceador de carga, selecione o nome do balanceador de carga para ir para a página Visão geral do balanceador de carga.
No painel de menu do balanceador de carga, selecione Propriedades.
Na página Propriedades , localize os valores de SKU e Tipo de Balanceamento de Carga e consulte a tabela a seguir para obter conclusões.
Valores de SKU e Tipo de Balanceamento de Carga Conclusão O valor do SKU é Standard e o valor do Tipo de Balanceamento de Carga é Private. A VM está por trás de um balanceador de carga interno de SKU Standard que bloqueia o tráfego de saída da Internet por padrão. Para habilitar a conectividade de saída, consulte Solução 2: (Para balanceador de carga interno padrão) Use um gateway NAT ou um balanceador de carga público padrão. O valor do SKU não é Standard e o valor do Tipo de Balanceamento de Carga é Público. A VM não está atrás de um balanceador de carga interno de SKU Standard e o tráfego de saída da Internet não é bloqueado por padrão. Prossiga para a Parte 3: Verificar a conectividade entre a VM e o serviço KMS do Azure.
Parte 3: Verificar a conectividade entre a VM e o serviço KMS do Azure
Certifique-se de que a VM está configurada para usar o servidor correto do KMS do Azure. Para fazer isso, execute o seguinte comando de script do Gerenciador de Licenças de Software:
Invoke-Expression "$env:windir\system32\cscript.exe $env:windir\system32\slmgr.vbs /skms azkms.core.windows.net:1688"
Esse comando deve retornar o seguinte texto:
Nome da máquina do Serviço de Gerenciamento de Chaves definido como azkms.core.windows.net:1688 com sucesso.
Verifique se o firewall na VM não bloqueia o tráfego de rede de saída para o ponto de extremidade KMS na porta 1688. Para fazer isso, aplique uma das seguintes opções:
Verifique a conectividade executando o cmdlet Test-NetConnection no PowerShell:
Test-NetConnection azkms.core.windows.net -port 1688
Se a tentativa de conexão for permitida, o cmdlet exibirá "TcpTestSucceeded: True" no texto de saída.
Verifique a conectividade executando a ferramenta PsPing:
.\psping.exe azkms.core.windows.net:1688
Na saída do comando, a penúltima linha deve ser semelhante ao seguinte texto:
Sent = 4, Received = 4, Lost = 0 (0% loss)
Se
Lost
for maior que 0 (zero), a VM não terá conectividade com o servidor KMS. Nessa situação, se a VM estiver em uma rede virtual e tiver um servidor DNS personalizado especificado, você deverá verificar se o servidor DNS pode resolver o nome deazkms.core.windows.net
domínio. Se não puder, altere o servidor DNS para um que possa resolverazkms.core.windows.net
.Observação
Se você remover todos os servidores DNS de uma rede virtual, as VMs usarão o serviço DNS interno do Azure. Este serviço pode resolver
kms.core.windows.net
.
Use um teste de próximo salto do Observador de Rede do Azure para verificar se o tipo de próximo salto é a Internet da VM afetada para destinos específicos. Para aplicar o teste do próximo salto, siga estas etapas:
No portal do Azure, procure e clique em Máquinas virtuais.
Na lista de máquinas virtuais, selecione o nome da sua VM.
No painel de menu da VM, localize o título Ajuda e selecione Solução de problemas de conexão.
Na página Solução de problemas de conexão da VM, especifique os valores de campo a seguir.
Campo Valor Tipo de destino Especificar manualmente URI, FQDN ou endereço IP 20.118.99.224, 40.83.235.53 (para azkms.core.windows.net
) ou o IP do endpoint do KMS apropriado que se aplica à sua regiãoPorta de destino 1688 Porta de origem 1688 Testes de diagnóstico Próximo salto Selecione o botão Executar testes de diagnóstico.
Após a conclusão dos testes de diagnóstico, examine a caixa Resultados que aparece abaixo do botão. O teste do próximo salto (da origem) deve ter um valor de Status de Êxito e o valor de Detalhes deve incluir Tipo de próximo salto: Internet no texto. Se o tipo de próximo salto for Internet, repita o teste do próximo salto para cada um dos IPs restantes. No entanto, se o tipo de próximo salto for mostrado como VirtualAppliance, VirtualNetworkGateway ou qualquer coisa diferente de Internet, um dos seguintes cenários provavelmente está ocorrendo:
Existe uma rota padrão que roteia o tráfego para fora do Azure antes que o tráfego seja enviado para o ponto de extremidade KMS do Azure.
O tráfego está bloqueado em algum lugar ao longo do caminho.
Para esses cenários, consulte Solução 1: (para túnel forçado) Use a rota personalizada do Azure para rotear o tráfego de ativação para o servidor KMS do Azure.
Depois de verificar se uma conexão com foi
azkms.core.windows.net
bem-sucedida, execute o comando a seguir nesse prompt do Windows PowerShell com privilégios elevados. Este comando tenta ativar a VM do Windows várias vezes:1..12 | ForEach-Object { Invoke-Expression "$env:windir\system32\cscript.exe $env:windir\system32\slmgr.vbs /ato"; Start-Sleep 5 }
Se a tentativa de ativação for bem-sucedida, o comando exibirá uma mensagem semelhante ao seguinte texto:
Ativando o Windows (R), Server Datacenter edition (<kms-client-product-key>) ... Produto ativado com sucesso.
Solução 1: (Para túnel forçado) Usar a rota personalizada do Azure para rotear o tráfego de ativação para o servidor KMS do Azure
Se a causa for um cenário de túnel forçado no qual o tráfego é roteado para fora do Azure, trabalhe com o administrador de rede para determinar o curso de ação correto. Uma solução possível é descrita na seção Solução de Falha na ativação do Windows no cenário de túnel forçado. Aplique essa solução se ela for consistente com as políticas da sua organização.
Solução 2: (para balanceador de carga interno padrão) Use um gateway NAT ou um balanceador de carga público padrão
Se um balanceador de carga interno padrão bloquear o tráfego, haverá duas abordagens diferentes para corrigir o problema, conforme descrito em Usar SNAT (Conversão de Endereços de Rede de Origem) para conexões de saída:
Associe um gateway de conversão de endereços de rede (NAT) à sub-rede.
Altere para um balanceador de carga público padrão e defina regras de saída.
Recomendamos que você use uma configuração NAT da Rede Virtual do Azure para conectividade de saída em implantações de produção. Para obter mais informações sobre o Gateway da NAT do Azure, confira O que é o Gateway da NAT do Azure?
No entanto, se houver um requisito para bloquear todo o tráfego da Internet, certifique-se de negar o acesso de saída à Internet usando uma regra de NSG (grupo de segurança de rede) na sub-rede da VM que você precisa ativar. Observe que o tráfego de ativação do sistema operacional para os IPs KMS na porta 1688 permanece habilitado devido às regras internas da plataforma.
Entre em contato conosco para obter ajuda
Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.