Resumo
Ao tentar chamar um script do Visual Basic de um servidor Web no contexto de um script CGI, o script pode falhar ao executar corretamente. A razão mais provável para isso é que o mecanismo de script é normalmente executado no contexto de segurança do IUSR_Machine criado pelo IIS quando ele é instalado.
Infelizmente, o Cscript.exe (o mecanismo de script) requer a presença de determinadas entradas do registro para o usuário IUSR_Machine. Uma vez que um hive HKEY_CURRENT_USER não está disponível para o IUSR_Machine, o IIS carregará o hive HKEY_USERS\.DEFAULT em seu lugar. No entanto, o hive HKEY_USERS\.DEFAULT não contém as chaves necessárias e entradas para o mecanismo de script.
Nesses casos, ocorrerá um erro CGI, sem nenhuma informação adicional. Ou se o arquivo Cscript.exe foi iniciado no modo de lote, um erro aparecerá indicando que não foi possível carregar as configurações para o usuário especificado. Este documento mostrará como configurar a máquina do IIS para permitir que os scripts do Visual Basic sejam executados como um script CGI.
Informações adicionais
Este artigo pressupõe que o Windows Script Host está instalado na máquina do servidor IIS; a opção de instalação predefinida do NT Option Pack irá fazê-lo.
Execute estas etapas a seguir para ativar o suporte VBScript:
-
Abra um prompt de comando. Para fazer isso, execute as seguintes etapas:
-
Clique em Iniciar e em Executar.
-
Digite cmd e clique em OK.
-
-
Localize a pasta Inetpub\AdminScripts. (essa localização pode variar dependendo da instalação do Internet Information Server).
-
Digite os seguintes comandos:
cscript adsutil.vbs SET w3svc/CreateCGIWithNewConsole "1"
cscript adsutil.vbs SET w3svc/CreateProcessAsUser "0"
-
Configure a extensão .vbs a ser mapeada para o Cscript.exe localizado no diretório %SYSTEMROOT%\System32. Faça isso pelo Console de gerenciamento Microsoft. Especificamente, as etapas de configuração para IIS4 são as seguintes:
-
Execute o IIS4 aplicativo de Console de Gerenciamento.
-
Edite as propriedades do seu site (clique com o botão direito do mouse no site na exibição em árvore e selecione Propriedades).
-
Clique na guia Diretório Inicial.
-
Na caixa Configurações do aplicativo, selecione Configuração.
-
Na guia Mapeamentos do aplicativo, selecione Adicionar.
-
O executável será o seguinte em uma máquina WinNT 4.0 (certifique-se de usar o caminho correto para Cscript.exe em sua instalação do WinNT):
C:\WINNT\system32\CSCRIPT.EXE.exe %s %s
Insira .vbs como a extensão.
-
Certifique-se de que as caixas de seleção mecanismo de script e verificar se os arquivos existem estejam selecionadas.
-
Salve o arquivo clicando em OK, Aplicar, OK e OK novamente.
-
-
Usando o Editor do Registro, crie as seguintes chaves e entradas:
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows Script Host
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows Script Host\SettingsVerifique se todos tem acesso de leitura a essas duas chaves.
Agora, crie as seguintes entradas em:HKEY_USERS\.DEFAULT\Software\Microsoft\Windows Script Host\Settings
BatchMode: REG_DWORD: 0
DisplayLogo: REG_DWORD: 0
Timeout: REG_DWORD: 0 -
Agora, copie o arquivo de script .vbs para um diretório virtual no servidor que tem permissões de execução/script. Por padrão, o diretório /scripts terá as permissões necessárias.
Você poderá testar se a configuração funciona ou não, criando o seguinte script:
Option Explicit
WScript.Echo "Content-Type: text/html"
WScript.Echo
WScript.Echo "If you see this, it worked."
Salve o script acima no diretório /scripts como Test.vbs. Agora, invoque o script usando qualquer navegador com a seguinte URL:
http://server/scripts/test.vbs.
OBSERVAÇÃO: Limitações semelhantes se aplicam a todas as situações em que um script Cscript.exe é iniciado a partir do contexto de segurança de um sistema local ou um sistema local representando um usuário. As alterações acima para o Registro devem remediar essas situações.
Referências
Documentação Online do Servidor de Informação Microsoft Internet