O acesso é negado quando você executa um trabalho em lote em um computador baseado no Windows Server 2003

Este artigo fornece solução para um erro (o Access é negado) que ocorre quando você executa um trabalho em lote em um computador baseado no Microsoft Windows Server 2003.

Aplica-se a: Windows Server 2003
Número de KB original: 867466

Sintomas

Quando você executa um trabalho em lote que é executado no contexto de uma conta de usuário regular, o script pode não ser executado. Se você executar o trabalho em lote usando o recurso Tarefas Agendadas, a seguinte mensagem de erro poderá ser registrada no arquivo de log Tarefas Agendadas (Schedlgu.txt):

0x80070005: o acesso é negado.

Se você usar um programa de depurador para tentar determinar por que o trabalho em lote não funciona, a seguinte mensagem de erro poderá aparecer na saída de depuração:

Acesso negado (Erro 5)

Motivo

Esse problema ocorrerá se todas as seguintes condições forem verdadeiras:

  • Você executa o trabalho em lote em um servidor membro baseado no Windows Server 2003.
  • O trabalho em lote é executado como um processo não interativo.
  • O trabalho em lote é configurado para ser executado no contexto de uma conta que não é membro do grupo Administradores.

No Windows Server 2003, o grupo Usuários não tem permissões de Leitura e Execução para o processador de comando (Cmd.exe). Por padrão, o programa Cmd.exe tem as seguintes configurações de permissões:

  • O grupo implícito interativo e o grupo implícito de serviço têm permissões de leitura e execução.

    Observação

    Em um servidor membro, o grupo TelnetClients também tem permissões de leitura e execução. Em um controlador de domínio, o grupo implícito Lote também tem permissões de Leitura e Execução.

  • O grupo Administradores e o grupo implícito do Sistema têm permissões de Controle Total.

Para resolve esse problema, use um dos métodos a seguir.

Resolução 1: conceder permissões de leitura e execução Cmd.exe

Conceda ao programa Cmd.exe permissões De leitura e execução para a conta de usuário em que o trabalho em lote é executado. Para fazer isso, siga estas etapas:

  1. Clique em Iniciar e clique em Explorer do Windows.

  2. Localize e clique com o botão direito do mouse no arquivo Cmd.exe. O arquivo Cmd.exe está localizado na pasta %windir%\System32.

  3. Clique em Propriedades.

  4. Clique na guia Segurança.

  5. Clique em Adicionar.

  6. Na caixa Inserir os nomes de objeto para selecionar, digite o nome de usuário em que o trabalho do lote é executado e clique em OK duas vezes.

    Observação

    Quando você adiciona o usuário, o usuário recebe automaticamente permissões de Leitura e Execução.

  7. Clique em Sim quando você for solicitado a continuar.

Resolução 2: conceder permissões de leitura e execução para Cmd.exe arquivo ao grupo Batch

Conceda permissões de leitura e execução para o arquivo Cmd.exe para o grupo Lote. Isso permite que todos os processos em lote executem o processador de comando. Para fazer isso, siga estas etapas:

  1. Clique em Iniciar e clique em Explorer do Windows.
  2. Localize e clique com o botão direito do mouse no arquivo Cmd.exe . O arquivo Cmd.exe está localizado na pasta %windir%\System32.
  3. Clique em Propriedades.
  4. Clique na guia Segurança.
  5. Clique em Adicionar.
  6. Na caixa Inserir os nomes de objeto para selecionar , digite Lote e clique em OK duas vezes.
  7. Clique em Sim quando você for solicitado a continuar.

Mais informações

O comportamento descrito neste artigo é diferente do comportamento padrão do Microsoft Windows 2000 Server. Por padrão, o Windows 2000 Server concede permissões de leitura e executar permissões para o grupo Usuários.

Para obter mais informações sobre grupos implícitos, visite os seguintes sites da Microsoft: