Erro 0xC004F074 "Nenhum KMS (Serviço de Gerenciamento de Chaves) pode ser contatado"

Este artigo discute como resolve o erro 0xC004F074 que ocorre quando você tenta ativar uma VM (máquina virtual) do Windows no Microsoft Azure.

Pré-requisitos

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 contactar nenhum KMS (Serviço de Gerenciamento de Chaves). Consulte o log de eventos do aplicativo para obter informações adicionais.

Motivo

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á ter origem em 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 fora do Azure (normalmente para um ambiente local) usando o Azure ExpressRoute ou um dispositivo virtual de rede

  • Tráfego bloqueado por um dispositivo virtual de rede ou 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 a 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 um Windows 10 Enterprise VM de várias sessões e atualizar a chave do produto para outra edição, não poderá reverter a VM para Windows 10 Enterprise várias sessões. Em vez disso, você precisa reimplantar a VM. Para obter mais informações, confira Posso atualizar uma VM do Windows para múltiplas sessões do Windows Enterprise?

Para a VM criada a partir de uma imagem personalizada, você deve configurar a chave de configuração de cliente KMS apropriada para a VM. Siga estas etapas:

  1. Em uma janela de Prompt de Comando elevada, execute o seguinte comando de script do Gerenciador de Licenças de Software:

    cscript c:\windows\system32\slmgr.vbs /dlv
    
  2. 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).

  3. Se a saída de comando anterior indicar o RETAIL canal, execute os seguintes comandos de script do Gerenciador de Licenças de Software. O primeiro comando define a chave de configuraçã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 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: verifique se a VM está por trás de um balanceador de carga interno SKU Padrão

Siga estas etapas para marcar se a VM está por trás de um balanceador de carga interno SKU Padrão que bloqueia o tráfego de saída da Internet por padrão:

  1. No portal do Azure, procure e clique em Máquinas virtuais.

  2. Na lista de máquinas virtuais, selecione o nome da sua VM.

  3. No painel de menus da VM, localize o título Rede e selecione Balanceamento de carga. Se você vir uma mensagem que afirma sem recursos de balanceamento de carga a serem exibidos, a VM não estará atrás de nenhum balanceador de carga. Nesse caso, você pode prosseguir para a Parte 3: Verifique a conectividade entre a VM e o serviço KMS do Azure.

  4. Se você vir um recurso de balanceador de carga, selecione o nome do balanceador de carga para acessar a página Visão geral do balanceador de carga.

  5. No painel de menus do balanceador de carga, selecione Propriedades.

  6. 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 SKU é Standard e o valor tipo de balanceamento de carga é Privado. A VM está por trás de um balanceador de carga interno SKU Padrão 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 SKU não é Standard e o valor tipo de balanceamento de carga é Público. A VM não está por trás de um balanceador de carga interno SKU Padrão e o tráfego de saída da Internet não é bloqueado por padrão. Continue até a Parte 3: verifique 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

  1. Certifique-se de que a VM esteja configurada para usar o servidor KMS do Azure correto. 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"
    

    Este comando deve retornar o seguinte texto:

    Nome do computador do Serviço de Gerenciamento de Chaves definido como azkms.core.windows.net:1688 com êxito.

  2. 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á "TcpTestSucceededed: True" no texto de saída.

    • Verifique a conectividade executando a ferramenta PsPing:

      .\psping.exe azkms.core.windows.net:1688
      

      Na saída de comando, a linha penúltima deve se assemelhar 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á garantir que o servidor DNS possa resolve o nome do azkms.core.windows.net domínio. Se não puder, altere o servidor DNS para um que possa resolve azkms.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.

  3. Use um teste Observador de Rede próximo salto do Azure para verificar se o próximo tipo de salto é Internet da VM afetada para destinos específicos. Para aplicar o próximo teste de salto, siga estas etapas:

    1. No portal do Azure, procure e clique em Máquinas virtuais.

    2. Na lista de máquinas virtuais, selecione o nome da sua VM.

    3. No painel de menus da VM, localize o título Ajuda e selecione Solucionar problemas de conexão.

    4. Na página Solução de problemas de conexão da sua VM, especifique os valores de campo a seguir.

      Campo Valor
      Tipo de destino Especificar manualmente
      Endereço URI, FQDN ou IP 20.118.99.224, 40.83.235.53 (para azkms.core.windows.net), ou o IP do ponto de extremidade KMS apropriado que se aplica à sua região
      Porta de destino 1688
      Porta de origem 1688
      Testes de diagnóstico Próximo salto
    5. Selecione o botão Executar testes de diagnóstico .

    6. Após a conclusão dos testes de diagnóstico, examine a caixa Resultados que aparece abaixo do botão. O teste Próximo salto (de origem) deve ter um valor status de êxito, e o valor Detalhes deve incluir o tipo de próximo salto: Internet no texto. Se o próximo tipo de salto for Internet, repita o próximo teste de salto para cada um dos IPs restantes. No entanto, se o próximo tipo de salto for mostrado como VirtualAppliance, VirtualNetworkGateway ou qualquer outra coisa que não seja Internet, um dos seguintes cenários provavelmente ocorrerá:

      • Existe uma rota padrão que roteia o tráfego 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.

  4. Depois de verificar se uma conexão com azkms.core.windows.net é bem-sucedida, execute o comando a seguir nesse prompt de Windows PowerShell elevado. 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 que se assemelha ao seguinte texto:

    Ativando o Windows(R), a edição do Server Datacenter (<kms-client-product-key>) ... Produto ativado com êxito.

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

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 correto da ação. Uma solução possível é descrita na seção Solução da ativação do Windows falha 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 no Use Source Network Address Translation (SNAT) para conexões de saída:

Recomendamos que você use uma configuração nat do Azure Rede Virtual para conectividade de saída em implantações de produção. Para obter mais informações sobre o Gateway nat do Azure, confira O que é o Gateway NAT do Azure?

No entanto, se houver um requisito para bloquear todo o tráfego da Internet, verifique se você nega o acesso à Internet de saída 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.