Controle de Conta de Usuário e o WMI

O UAC (Controle de Conta de Usuário) afeta os dados do WMI retornados de uma ferramenta de linha de comando, acesso remoto e como os scripts devem ser executados. Para obter mais informações sobre o UAC, consulte Introdução ao Controle de Conta de Usuário.

As seções a seguir descrevem a funcionalidade do UAC:

Controle de Conta de Usuário

Em UAC, as contas no grupo administradores locais têm dois tokens de acesso, um com privilégios de usuário padrão e outro com privilégios de administrador. Devido à filtragem de token de acesso ao UAC, um script normalmente é executado sob o token de usuário padrão, a menos que seja executado "como um Administrador" no modo de privilégios elevados. Nem todos os scripts exigiam privilégios administrativos.

Os scripts não podem determinar programaticamente se estão sendo executados sob um token de segurança de usuário padrão ou um token de Administrador. O script pode falhar com um erro de acesso negado. Se o script exigir privilégios de administrador, ele deverá ser executado no modo elevado. O acesso aos namespaces do WMI difere dependendo se o script é executado no modo elevado. Algumas operações do WMI, como obter dados ou executar a maioria dos métodos, não exigem que a conta seja executada como um administrador. Para obter mais informações sobre permissões de acesso padrão, consulte Acesso aos namespaces do WMI e Executar operações com privilégios.

Devido ao Controle de Conta de Usuário, a conta que executa o script deve estar no grupo Administradores no computador local para ter a capacidade de executar com direitos elevados.

Execute um script ou um aplicativo com direitos elevados executando um dos seguintes métodos:

Para executar um script no modo elevado

  1. Abra um Prompt de Comando clicando com o botão direito do mouse em Prompt de Comando no menu Iniciar e selecione Executar como administrador.
  2. Agende o script para ser executado com privilégios elevados usando o Agendador de Tarefas. Para obter mais informações, consulte Contextos de segurança para executar tarefas.
  3. Execute o script usando a conta de Administrador interna.

Conta necessária para executar as Ferramentas de Linha de Comando do WMI

Para executar as Ferramentas de Linha de Comando do WMI a seguir, sua conta deve estar no grupo Administradores e a ferramenta deve ser executada em um prompt de comandos com privilégios elevados. A conta de administrador interna também pode executar essas ferramentas.

  • mofcomp

  • wmic

    Na primeira vez que executar o Wmic após a instalação do sistema, ele deve ser executado em um prompt de comando com privilégios elevados. O modo elevado pode não ser necessário para execuções subsequentes do Wmic, a menos que as operações do WMI exijam privilégio de administrador.

  • winmgmt

  • wmiadap

Para executar o Controle do WMI (Wmimgmt.msc) e fazer alterações nas configurações de segurança ou auditoria do namespace do WMI, sua conta deve ter o direito Editar Segurança concedido explicitamente ou estar no grupo administradores local. A conta de administrador interno também pode alterar a segurança ou a auditoria de um namespace.

Wbemtest.exe, uma ferramenta de linha de comando que não tem suporte com os serviços de Suporte ao Cliente da Microsoft, pode ser executada por contas que não estão no grupo administrador local, a menos que uma operação específica exija privilégios que normalmente são concedidos às contas de Administrador.

Manipular conexões remotas em UAC

Caso esteja se conectando a um computador remoto em um domínio ou em um grupo de trabalho, determina se a filtragem do UAC ocorre.

Se o computador fizer parte de um domínio, conecte-se ao computador de destino usando uma conta de domínio que esteja no grupo administradores local do computador remoto. Em seguida, a filtragem de token de acesso ao UAC não afetará as contas de domínio no grupo administradores local. Não use uma conta local, fora do domínio, no computador remoto, mesmo que a conta esteja no grupo Administradores.

Em um grupo de trabalho, a conta que se conecta ao computador remoto é um usuário local nesse computador. Mesmo que a conta esteja no grupo Administradores, a filtragem do UAC significa que um script é executado como um usuário padrão. Uma melhor prática é criar um grupo de usuários local dedicado ou uma conta de usuário no computador de destino especificamente para conexões remotas.

A segurança deve ser ajustada para poder usar essa conta porque a conta nunca teve privilégios administrativos. Dê ao usuário local:

  • Iniciar remotamente e ativar direitos para acessar o DCOM. Para obter mais informações, consulte Conexão ao WMI em um computador remoto.
  • Direitos para acessar o namespace do WMI remotamente (Habilitação Remota). Para obter mais informações, consulte Acesso aos namespaces do WMI.
  • Direito de acessar o objeto protegível específico, dependendo da segurança exigida pelo objeto.

Caso use uma conta local, seja porque você está em um grupo de trabalho ou é uma conta de computador local, você pode ser forçado a fornecer tarefas específicas a um usuário local. Por exemplo, é possível conceder ao usuário o direito de parar ou iniciar um serviço específico por meio do comando SC.exe, dos métodos GetSecurityDescriptor e SetSecurityDescriptor de Win32_Service ou por meio de Política de Grupo usando Gpedit.msc. Alguns objetos protegíveis podem não permitir que um usuário padrão execute tarefas e não ofereçam meios para alterar a segurança padrão. Nesse caso, talvez seja necessário desabilitar o UAC para que a conta de usuário local não seja filtrada e, em vez disso, se torne um administrador completo. Lembre-se de que, por motivos de segurança, desabilitar o UAC deve ser um último recurso.

Desabilitar o UAC remoto alterando a entrada do registro que controla o UAC remoto não é recomendado, mas pode ser necessário em um grupo de trabalho. A entrada do registro é HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Políticas\sistema\LocalAccountTokenFilterPolicy. Quando o valor dessa entrada for zero (0), a filtragem de token de acesso do UAC remoto será habilitada. Quando o valor for 1, o UAC remoto será desabilitado.

Efeito do UAC nos dados do WMI retornados aos scripts ou aplicativos

Se um script ou aplicativo estiver em execução em uma conta no grupo Administradores, mas não estiver em execução com um privilégio elevado, talvez você não obtenha todos os dados retornados porque essa conta está em execução como um usuário padrão. Os provedores do WMI para algumas classes não retornam todas as instâncias para uma conta de usuário padrão ou uma conta de Administrador que não está em execução como um administrador completo devido à filtragem do UAC.

As seguintes classes não retornam algumas instâncias quando a conta é filtrada pelo UAC:

As seguintes classes não retornam algumas propriedades quando a conta é filtrada pelo UAC:

Sobre o WMI

Acesso aos objetos protegíveis do WMI

Como alterar a segurança de acesso em objetos protegíveis