PRB: No es posible obtener acceso a archivos remotos con el objeto FileSystemObject

IMPORTANTE
Este artículo contiene información sobre cómo se modifica la metabase. Antes de modificar la metabase, compruebe que dispone de una copia de seguridad que pueda restaurar si surge algún problema. Para obtener información acerca de cómo hacerlo, vea el tema "Hacer copia de seguridad y restaurar la configuración" en la Ayuda de Microsoft Management Console (MMC).

Síntomas

Cuando obtenga acceso a recursos remotos con FileSystemObject mediante páginas Active Server (ASP), se producirá uno de los siguientes errores:
Error en tiempo de ejecución de Microsoft VBScript 800a004c Ruta de acceso no encontrada
Error en tiempo de ejecución de Microsoft VBScript 800a0046 Permiso denegado
Error de objeto de servidor ASP 0177: 800a0046 Error de Server.CreateObject

Solución

ADVERTENCIA
Si modifica la metabase incorrectamente, puede causar serios problemas que le obligarán a instalar de nuevo todos los productos que utilizan la metabase. Microsoft no puede garantizar la solución de los problemas resultantes de una modificación incorrecta de la metabase. Modifique la metabase bajo su responsabilidad.

NOTA
Haga siempre una copia de seguridad de la metabase antes de modificarla.


Realice los pasos siguientes para resolver este problema:
  1. Inicie el Administrador de usuarios para dominios del equipo remoto y cree una cuenta denominada IUSR_NombreDeEquipo (del servidor Web). Asigne a esa cuenta la misma contraseña que se utiliza en la cuenta IUSR_NombreDeEquipo del servidor Web. Si el sitio Web se ejecuta en un espacio de memoria diferente, deberá utilizar la cuenta IWAM_NombreDeEquipo en lugar de la cuenta IUSR_NombreDeEquipo.

    Nota
    Si no sabe la contraseña de la cuenta IUSR_NombreDeEquipo, debe asignar una nueva contraseña a este usuario. Debe utilizar el Administrador de usuarios para dominios con el fin de cambiar la contraseña de la cuenta IUSR_NombreDeEquipo del servidor Web. Además, debe utilizar la utilidad Adsutil.vbs de la línea de comandos para cambiar la contraseña de la metabase. Para ello, abra un símbolo del sistema y cambie los directorios de Winnt\System32\Inetsrv\Adminsamples (en Windows NT 4.0) o Inetpub\Adminscripts (en Windows 2000). A continuación, escriba el siguiente texto para cambiar la contraseña de la cuenta IUSR_NombreDeEquipo:
    cscript adsutil.vbs set w3svc/anonymoususerpass "password"
    O bien, para obtener la contraseña de la cuenta IWAM_NombreDeEquipo, escriba lo siguiente:

    adsutil.vbs get w3svc/WAMUserpass
    Nota
    Si utiliza un controlador de dominio de Windows 2000 o un controlador principal de dominio (PDC) de Windows NT 4.0, debe usar una cuenta de dominio en lugar de la cuenta IUSR_NombreDeEquipo. Quizás tenga que esperar a que el dominio se sincronice para que la cuenta esté disponible.
  2. Cree un recurso compartido en el servidor remoto denominado "archivos" y asígnele permisos de lectura y escritura para el usuario que acaba de crear.
  3. Utilice el Administrador de servicios Internet de IIS 4.0 para cambiar el método de autenticación a acceso anónimo y sincronizar la contraseña con la cuenta que ha creado en el paso anterior.
    • Abra el Administrador de servicios Internet.
    • Haga clic con el botón secundario del mouse (ratón) en la aplicación Web y elija Propiedades.
    • Seleccione la ficha Seguridad de directorios.
    • Seleccione Modificar en la sección "Habilitar control de autenticación y acceso anónimo".
    • En el cuadro de diálogo que aparece, compruebe que está activada la opción "Permitir el acceso anónimo" y, a continuación, haga clic enModificar.
    • Anule la selección de la opción "Habilitar sincronización automática de contraseñas" y escriba el nombre de usuario (IUSR_NombreDeEquipo) y la contraseña.
  4. Se crea una página ASP en el proyecto Web para escribir en un archivo de texto como el siguiente:
       <%
    Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
    Set MyFile =
    ScriptObject.OpenTextFile("\\<ComputerName>\files\myfile.txt", 8,true)

    MyFile.WriteLine "*** Write file test ***"
    Myfile.writeline " file was written to at: " & Now
    Myfile.writeline " "
    MyFile.Close
    %>
  5. Guarde la página y obtenga una vista previa de la misma en el explorador.
  6. El código ASP ha creado correctamente un archivo de texto ubicado aquí:
       \\<ComputerName>\files\myfile.txt.

Estado

Este comportamiento es una característica del diseño de la aplicación.

Más información

El usuario que se autentica debe tener los permisos NFTS y de recursos compartidos correctos para el recurso al que se está teniendo acceso. Si se usa el acceso anónimo, el usuario que se autentica será el de la cuenta IUSR_NombreDeEquipo. Si necesita acceso al recurso mediante un usuario autenticado, sólo puede utilizar la autenticación básica. NTLM y la Autenticación integrada en Windows (Windows 2000) no pueden tener acceso a recursos remotos debido a un problema de delegación. Para obtener más información, consulte el siguiente artículo de Microsoft Developer Network (MSDN): En un entorno de Windows 2000, puede habilitar la delegación y utilizar la Autenticación de Windows integrada para su sitio. Para obtener más información sobre delegación en Windows 2000, consulte el siguiente artículo de Microsoft Developer Network (MSDN):

Referencias

Para obtener más información al respecto, consulte el artículo siguiente en Microsoft Knowledge Base:

189408 REVISIÓN: ASP no puede tener acceso a archivos de red en IIS 4.0
276011 PRB: Se produce un error 800a0035 cuando se utiliza el objeto FileSystemObject
Para obtener más información al respecto, consulte los artículos siguientes en el taller Web de MSDN Online:
http://www.msdn.microsoft.com/workshop/essentials/webmen/webmen100598.asp#hot Querying Remote Databases (Consultar bases de datos remotas)
Propiedades

Id. de artículo: 197964 - Última revisión: 05/21/2009 - Revisión: 1

Comentarios