Partilhar via


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

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:

  1. 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
    
  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 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:

  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 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.

  4. 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.

  5. No painel de menu 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 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

  1. 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.

  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á "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 de azkms.core.windows.net domínio. Se não puder, altere o servidor DNS para um que possa resolver 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 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:

    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 menu da VM, localize o título Ajuda e selecione Solução de problemas de conexão.

    4. 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ã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 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.

  4. 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:

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.