Resumen
Al intentar llamar a una secuencia de comandos de Visual Basic desde un servidor Web en el contexto de una secuencia de comandos CGI, la secuencia de comandos puede no ejecutarse correctamente. La razón más probable de esto es que el motor de secuencias de comandos se ejecuta normalmente en el contexto de seguridad de la IUSR_Machine creada cuando se instala IIS. Desafortunadamente, la Cscript.exe (el motor de secuencias de comandos) requiere la presencia de determinadas entradas del registro para el usuario de IUSR_Machine. Dado que un subárbol HKEY_CURRENT_USER no está disponible para el IUSR_Machine, IIS cargará el HKEY_USERS\. Subárbol predeterminado en su lugar. Sin embargo, la HKEY_USERS\. Subárbol predeterminado no contiene las claves necesarias y las entradas para el motor de secuencias de comandos. En estos casos, se producirá un error CGI, sin ninguna información adicional. O bien, si el archivo Cscript.exe se inició en modo por lotes, aparecerá un error que indica que no pudo cargar la configuración para el usuario especificado. Este documento mostrará cómo configurar el equipo IIS para permitir secuencias de comandos de Visual Basic se ejecuta como una secuencia de comandos CGI.
Más información
En este artículo se supone que Windows Script Host está instalado en el equipo de servidor IIS; la opción de instalación predeterminada de NT Option Pack lo harán. Utilice los pasos siguientes para habilitar la compatibilidad con VBScript:
-
Abra un símbolo del sistema. Para ello, siga estos pasos:
-
Haga clic en Inicio y luego en Ejecutar.
-
Escriba cmdy, a continuación, haga clic en Aceptar.
-
-
Busque la carpeta Inetpub\AdminScripts. (Esta ubicación puede variar dependiendo de la instalación de Internet Information Server).
-
Escriba los comandos siguientes:
cscript adsutil.vbs SET w3svc/CreateCGIWithNewConsole "1"
cscript adsutil.vbs SET w3svc/CreateProcessAsUser "0"
-
Configurar la extensión .vbs asignarse a la Cscript.exe ubicado en el directorio %SYSTEMROOT%\System32. Puede hacerlo a través de Microsoft Management Console. En concreto, los pasos de configuración para IIS4 son los siguientes:
-
Ejecute la aplicación de Consola de administración de IIS4.
-
Editar las propiedades de sitio Web (botón secundario en el sitio Web en el árbol y seleccione Propiedades).
-
Seleccione la ficha Directorio principal .
-
En el cuadro de Configuración de la aplicación , seleccione configuración.
-
En la ficha Asignaciones para la aplicación , seleccione Agregar.
-
El archivo ejecutable será lo siguiente en un equipo de WinNT 4.0 (asegúrese de utilizar una ruta de acceso correcta a Cscript.exe en la instalación de WinNT):
C:\WINNT\system32\CSCRIPT.EXE.exe %s %s
Introduzca la extensión .vbs .
-
Asegúrese de que están seleccionadas las casillas de verificación Motor de secuencias de comandos y Compruebe que existen los archivos .
-
Guarde el archivo, haga clic en Aceptar, Aplicar, Aceptary Aceptar nuevamente.
-
-
Con el Editor del registro, cree las siguientes claves y entradas:
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows Script HostHKEY_USERS\.DEFAULT\Software\Microsoft\Windows Script Host\Settings
Compruebe que todos tiene acceso de lectura a estas dos claves. Ahora cree las entradas siguientes de:
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows Script Host\SettingsBatchMode: REG_DWORD: 0DisplayLogo: REG_DWORD: 0Timeout: REG_DWORD: 0
-
Ahora copie el archivo de secuencia de comandos .vbs en un directorio virtual en el servidor que tiene permisos de ejecución o secuencia de comandos. De forma predeterminada, el directorio/scripts tendrá los permisos necesarios.
Debe ser capaz de probar si la configuración funciona o no mediante la creación de la secuencia de comandos siguiente:
Option ExplicitWScript.Echo "Content-Type: text/html"WScript.EchoWScript.Echo "If you see this, it worked."
Guardar la secuencia de comandos anterior en el directorio/scripts como Test.vbs. Invocar el script mediante cualquier explorador con la dirección URL siguiente:
http://server/scripts/test.vbs.
Nota: limitaciones similares se aplican a toda situación donde se inicia una secuencia de comandos Cscript.exe desde el contexto de seguridad de un sistema local o un suplantación de un usuario de sistema local. Los cambios en el registro anteriores deben corregir estas situaciones.
Referencias
Documentación en línea de Microsoft Internet Information Server.