ID do artigo: 197964 - Última revisão: quinta-feira, 22 de junho de 2006 - Revisão: 7.1

PRB: Não é possível acessar arquivos remotos com o FileSystemObject

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
IMPORTANTE: Este artigo contém informações sobre como editar a metabase. Antes de editá-la, verifique se você possui uma cópia de backup que possa ser restaurada caso ocorra algum problema. Para obter informações sobre como fazer isso, consulte o tópico da Ajuda "Backup/restauração de configuração" no Console de Gerenciamento Microsoft (MMC).
Expandir tudo | Recolher tudo

Sintomas

Quando você acessa os recursos remotos com o FileSystemObject por meio do ASP (Active Server Pages), um dos seguintes erros ocorre:
Erro de tempo de execução do Microsoft VBScript "800a004c" Caminho não encontrado
Erro de tempo de execução do Microsoft VBScript "800a0046" Permissão negada
Erro do objeto do servidor "ASP 0177: 800a0046" Server.CreateObject falhou

Resolução

AVISO: Se editar a metabase incorretamente, você poderá causar sérios problemas que talvez exijam a reinstalação de algum produto que utilize a metabase. A Microsoft não garante que os problemas decorrentes do uso incorreto da edição da metabase possam ser resolvidos. A edição da metabase é de sua responsabilidade.

OBSERVAÇÃO: Sempre faça backup da metabase antes de editá-la.


Use as seguintes etapas para resolver esse problema:
  1. Abra o Gerenciador de usuários para domínios no computador remoto e crie uma conta chamada IUSR_Nome_do_computador (do servidor da Web). Dê a essa conta a mesma senha usada em IUSR_Nome_do_computador no servidor da Web. Se o site estiver executando em um espaço de memória separado, você deverá usar a conta IWAM_Nome_do_computador em vez da conta IUSR_Nome_do_computador.

    Observação: Se você não souber a senha da IUSR_Nome_do_computador, será necessário atribuir uma nova senha a esse usuário. É necessário usar o Gerenciador de usuários para domínios para alterar a senha para a conta IUSR_Nome_do_computador no servidor Web. Você também deve usar o utilitário de linha de comando Adsutil.vbs para alterar a senha na metabase. Para fazer isso, abra um prompt de comando e altere os diretórios em Winnt\System32\Inetsrv\Adminsamples (para o Windows NT 4.0) ou Inetpub\Adminscripts (para o Windows 2000). Em seguida, digite o seguinte para alterar a senha para a conta IUSR_Nome_do_computador:
    cscript adsutil.vbs set w3svc/anonymoususerpass "password"
    Ou, para obter a senha para a conta IWAM_Nome_do_computador digite o seguinte:

    adsutil.vbs get w3svc/WAMUserpass
    Observação Se estiver usando um controlador de domínio com o Windows 2000 ou um Controlador de domínio primário (PDC) com o Windows NT 4.0, você deverá usar uma conta de domínio em vez de usar a conta IUSR_Nome_do_computador. Pode ser necessário esperar o domínio sincronizar antes da conta se tornar disponível.
  2. Crie um compartilhamento no servidor remoto chamado "arquivos" e atribua permissões de Leitura/Gravação a esse compartilhamento recém-criado para o usuário.
  3. Use o Gerenciador de serviços de Internet do IIS 4.0 para alterar o método de autenticação para acesso anônimo e sincronizar a senha com a conta que você criou na etapa anterior:
    • Abra o Gerenciador de serviços da Internet.
    • Clique com o botão direito do mouse no aplicativo da Web e selecione Propriedades.
    • Selecione a guia Segurança de diretório.
    • Selecione Editar a partir da seção "Permitir acesso anônimo e controle de autenticação".
    • A partir da caixa de diálogo que é exibida, verifique se "Permitir acesso anônimo" está selecionado e clique em Editar.
    • Anule a seleção da opção "Permitir sincronização automática de senha" e digite o nome de usuário (IUSR_Nome_do_computador) e a senha.
  4. Crie uma página ASP no projeto da Web para gravar em um arquivo de texto como o seguinte:
       <%
       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. Salve a página e visualize-a no navegador.
  6. O código ASP criou com êxito um arquivo de texto localizado aqui:
       \\<ComputerName>\files\myfile.txt.
    
    					

Situação

Este comportamento é próprio do projeto.

Mais Informações

O usuário realizando a autenticação precisa ter as permissões NTFS e de compartilhamento para o recurso que está sendo acessado. Se estiver usando acesso anônimo, o usuário que está realizando a autenticação será a conta IUSR_Nome_do_computador. Se precisar acessar o recurso usando um usuário autenticado, você poderá utilizar apenas a Autenticação básica. NTLM e Autenticação integrada do Windows (Windows 2000) não podem acessar os recursos remotos devido a um problema de delegação. Consulte o seguinte artigo no Microsoft Developer Network (MSDN) para obter informações adicionais (em inglês):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnauth/html/dnauth_security.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnauth/html/dnauth_security.asp)
Em um ambiente do Windows 2000, você pode habilitar a delegação e usar a Autenticação integrada do Windows para seu site. Para obter informações adicionais sobre como usar a delegação no Windows 2000, consulte o seguinte artigo no Microsoft Developer Network (MSDN) (em inglês):
http://msdn.microsoft.com/msdnmag/issues/0500/security/ (http://msdn.microsoft.com/msdnmag/issues/0500/security/)

Referências

Para obter informações adicionais, consulte o seguinte artigo na Base de Dados de Conhecimento da Microsoft:

189408  (http://support.microsoft.com/kb/189408/EN-US/ ) CORREÇÃO: ASP falha ao acessar os arquivos de rede sob IIS 4.0
276011  (http://support.microsoft.com/kb/276011/PT-BR/ ) PRB: Erro 800a0035 quando você usa o objeto FileSystemObject
Para obter informações adicionais, consulte os seguintes artigos no MSDN Online Web Workshop (em inglês):
http://www.msdn.microsoft.com/workshop/essentials/webmen/webmen100598.asp#hot (http://www.msdn.microsoft.com/workshop/essentials/webmen/webmen100598.asp#hot) Consultando bancos de dados remotos

A informação contida neste artigo aplica-se a:
  • Microsoft Active Server Pages 4.0
  • Microsoft Internet Information Server 3.0
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
Palavras-chave: 
kbbug kbcodesnippet kberrmsg kbfix kbfso kbiis500fix kboswin2000fix kbprb kbscript kbsecurity KB197964