Solução de problemas do WMI

Ao acessar dados locais ou remotos do WMI em um aplicativo ou script, você pode encontrar erros que vão desde classes ausentes até acesso negado. Os provedores também têm disponíveis opções de depuração e classes de solução de problemas.

Observação

As informações neste tópico destinam-se a desenvolvedores e administradores de TI. Se você for um usuário final que recebeu uma mensagem de erro relacionada ao WMI, visite Suporte da Microsoft e pesquise o código de erro que você vê na mensagem de erro. Para obter mais informações sobre como solucionar problemas com scripts WMI e o serviço WMI, confira O WMI não está funcionando!

Utilitário de Diagnóstico WMI

Importante

Não há mais suporte para o Utilitário de Diagnóstico WMI (WMIDiag.exe), começando com o Windows 8 e o Windows Server 2012.

Windows 7, Windows Server 2008 R2, Windows Vista e Windows Server 2008:

Se o WMI retornar mensagens de erro, lembre-se de que elas podem não indicar problemas no serviço WMI ou em provedores WMI. As falhas podem se originar em outras partes do sistema operacional e surgir como erros por meio do WMI. Em nenhuma circunstância, você deve excluir o repositório WMI como uma primeira etapa; porque a exclusão do repositório pode causar danos ao sistema ou aos aplicativos instalados.

Anteriormente, para obter mais informações sobre a origem do problema, você poderia baixar e executar a ferramenta de linha de comando de diagnóstico Utilitário de Diagnóstico WMI. Essa ferramenta produziu um relatório que normalmente poderia isolar a origem do problema e fornecer instruções sobre como corrigi-lo. O relatório também ajudou os serviços de suporte da Microsoft a ajudá-lo. O Utilitário de Diagnóstico WMI estava disponível anteriormente no Centro de Download.

Como um gravador de provedor, você também pode encontrar problemas de depuração, a menos que esteja escrevendo um provedor separado. Para obter mais informações, consulte Provedores de depuração.

Registro em log e rastreamento

Os arquivos de log WMI não existem mais; eles foram substituídos pelo ETW (Rastreamento de Eventos para Windows). Para obter mais informações, consulte Rastreamento da atividade WMI, Atividade WMI de registro em log e arquivos de log WMI.

Solução de problemas em scripts e aplicativos

O WMI contém um conjunto de classes para aplicativos cliente de solução de problemas que usam provedores WMI. Para obter mais informações, consulte Solução de problemas de aplicativos cliente WMI.

Como os provedores-gravadores podem evitar problemas de WMI

Os gravadores de provedor podem evitar muitos problemas (que aparecem em mensagens de erro por meio do WMI) executando as seguintes ações:

  • Registrar seu provedor corretamente. Para obter mais informações, consulte Registrando um provedor.
  • Adicionar a instrução #pragma autorecover ao arquivo MOF (Managed Object Format) que define suas classes de provedor.

Para obter mais informações, consulte Provedores de depuração, Fornecendo dados para WMI e Configuração do provedor e classes de solução de problemas.

Acesso negado

Os erros de acesso negado relatados por scripts e aplicativos que acessam namespaces e dados WMI geralmente se enquadram em três categorias. A tabela a seguir lista as três categorias de erros, juntamente com problemas que podem causar erros e possíveis soluções.

Erro Possíveis problemas Solução
0x800706BA HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE)
Problema de firewall ou servidor não disponível.
O computador realmente não existe ou o Firewall do Windows está bloqueando a conexão
Conectar-se ao Vista: netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=yes Conectar-se a downlevel: permitir a regra "Administração Remota" no Firewall do Windows.
0x80070005 E_ACCESS_DENIED
Acesso negado pela segurança do DCOM.
O usuário não tem acesso remoto ao computador por meio do DCOM. Normalmente, ocorrem erros de DCOM ao se conectar a um computador remoto com uma versão diferente do sistema operacional.
Conceda ao usuário permissões de Inicialização Remota e Ativação Remota no dcomcnfg. Clique com o botão direito do mouse em Meu Computador –> Propriedades. Em Segurança COM, clique em "Editar Limites" para ambas as seções. Forneça ao usuário que você deseja acesso remoto, inicialização remota e ativação remota. Em seguida, vá para Configuração do DCOM, localize "Instrumentação de Gerenciamento do Windows" e forneça ao usuário que você deseja Inicialização Remota e Ativação Remota. Para obter mais informações, consulte Conexão entre sistemas operacionais diferentes
0x80041003 WBEM_E_ACCESS_DENIED
Acesso negado por um provedor
O usuário não tem permissão para executar a operação no WMI. Isso pode acontecer quando você consulta algumas classes como um usuário com direitos limitados, mas geralmente acontece quando você tenta invocar métodos ou alterar instâncias WMI como um usuário com direitos limitados. O namespace ao qual você está se conectando é criptografado, e o usuário está tentando se conectar com uma conexão não criptografada
Dê ao usuário acesso com o Controle WMI (verifique se ele tem Remote_Access definido como true). Conecte-se usando um cliente que dê suporte à criptografia.
  • Normalmente, ocorrem erros de DCOM ao se conectar a um computador remoto com uma versão diferente do sistema operacional.

  • Os provedores também podem negar acesso a dados em namespaces específicos ou podem exigir determinados níveis de segurança de conexão. Para obter mais informações, consulte Configurar a segurança do processo do aplicativo cliente e Hospedagem e segurança do provedor.

  • Erros de acesso negado de alterações no ICF (Firewall de Conexão com a Internet).

    Para obter mais informações, consulte Conexão por meio do Firewall do Windows.

  • Um erro de acesso negado é retornado pela segurança do DCOM quando um cliente de baixa integridade tenta acessar o WMI. Por exemplo, um controle ActiveX em execução no Internet Explorer, que tem o nível de segurança definido como baixo, não tem acesso para executar operações WMI locais.

    Windows 7: os usuários de baixa integridade têm permissões somente leitura para operações WMI locais.

Informações sobre erros

Ao receber uma mensagem de erro do WMI, você pode localizar a mensagem em Constantes de erro do WMI ou, para scripts, WbemErrorEnum. No entanto, as informações fornecidas apenas pelo erro normalmente são insuficientes para determinar o que está acontecendo. Os danos no repositório WMI podem ser mascarados como classes ou instâncias "não encontradas".

Para obter mais informações sobre erros do WMI:

Solução de problemas do WMI

Rastreamento da atividade WMI

Registro em log da atividade WMI