Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se proporciona una solución a un error (se deniega Access) que se produce cuando se ejecuta un trabajo por lotes en un equipo basado en Microsoft Windows Server 2003.
Se aplica a: Windows Server 2003
Número de KB original: 867466
Síntomas
Al ejecutar un trabajo por lotes que se ejecuta en el contexto de una cuenta de usuario normal, es posible que el script no se ejecute. Si ejecuta el trabajo por lotes mediante la característica Tareas programadas, es posible que se registre el siguiente mensaje de error en el archivo de registro de tareas programadas (Schedlgu.txt):
0x80070005: se deniega el acceso.
Si usa un programa de depurador para intentar determinar por qué el trabajo por lotes no funciona, puede aparecer el siguiente mensaje de error en la salida de depuración:
Acceso denegado (error 5)
Causa
Este problema se produce si se cumplen todas las condiciones siguientes:
- Ejecute el trabajo por lotes en un servidor miembro basado en Windows Server 2003.
- El trabajo por lotes se ejecuta como un proceso no interactivo.
- El trabajo por lotes está configurado para ejecutarse en el contexto de una cuenta que no es miembro del grupo Administradores.
En Windows Server 2003, el grupo Usuarios no tiene permisos de lectura y ejecución en el procesador de comandos (Cmd.exe). De forma predeterminada, el programa Cmd.exe tiene la siguiente configuración de permisos:
El grupo implícito interactivo y el grupo implícito de servicio tienen permisos de lectura y ejecución.
Nota:
En un servidor miembro, el grupo TelnetClients también tiene permisos de lectura y ejecución. En un controlador de dominio, el grupo implícito de Batch también tiene permisos de lectura y ejecución.
El grupo Administradores y el grupo implícito Sistema tienen permisos de Control total.
Para resolver este problema, use cualquiera de los métodos siguientes.
Resolución 1: Conceder permisos de lectura y ejecución Cmd.exe
Conceda los permisos de lectura y ejecución del programa Cmd.exe para la cuenta de usuario en la que se ejecuta el trabajo por lotes. Para ello, siga estos pasos:
Haga clic en Inicioy, a continuación, haga clic en Explorador de Windows.
Busque y haga clic con el botón derecho en el archivo Cmd.exe. El archivo Cmd.exe se encuentra en la carpeta %windir%\System32.
Haga clic en Propiedades.
Haga clic en la pestaña Security (Seguridad).
Haga clic en Agregar.
En el cuadro Escriba los nombres de objeto que se van a seleccionar , escriba el nombre de usuario en el que se ejecuta el trabajo por lotes y, a continuación, haga clic en Aceptar dos veces.
Nota:
Al agregar el usuario, al usuario se le conceden automáticamente permisos de lectura y ejecución.
Haga clic en Sí cuando se le pida que continúe.
Resolución 2: Otorgar permisos de lectura y ejecución para el archivo Cmd.exe al grupo Batch
Conceda permisos de lectura y ejecución para el archivo Cmd.exe al grupo Batch. Esto permite que todos los procesos por lotes ejecuten el procesador de comandos. Para ello, siga estos pasos:
- Haga clic en Inicioy, a continuación, haga clic en Explorador de Windows.
- Busque y haga clic con el botón derecho en el archivo Cmd.exe. El archivo Cmd.exe se encuentra en la carpeta %windir%\System32.
- Haga clic en Propiedades.
- Haga clic en la pestaña Security (Seguridad).
- Haga clic en Agregar.
- En el cuadro Escriba los nombres de objeto que se van a seleccionar , escriba Batch y, a continuación, haga clic en Aceptar dos veces.
- Haga clic en Sí cuando se le pida que continúe.
Más información
El comportamiento que se describe en este artículo es diferente del comportamiento predeterminado de Microsoft Windows 2000 Server. De forma predeterminada, Windows 2000 Server concede permisos de lectura y permisos de ejecución al grupo Usuarios.
Para obtener más información sobre los grupos implícitos, visite los siguientes sitios web de Microsoft: