Articulo de referencia

Host de scripts de Windows

El Microsoft Windows Script Host ( WSH ) (anteriormente llamado Windows Scripting Host ) es una tecnología de automatización para sistemas operativos Microsoft Windows que propo...

El Microsoft Windows Script Host ( WSH ) (anteriormente llamado Windows Scripting Host ) es una tecnología de automatización para sistemas operativos Microsoft Windows que proporciona capacidades de scripting comparables a los archivos por lotes , pero con una gama más amplia de características compatibles. Esta herramienta se proporcionó por primera vez en Windows 95 después de la compilación 950a en los discos de instalación como una instalación opcional configurable e instalable a través del Panel de control , y luego como un componente estándar de Windows 98 (compilación 1111) y posteriores y Windows NT 4.0 compilación 1381 y a través del Service Pack 4. WSH también es un medio de automatización para Internet Explorer a través de los motores WSH instalados desde la versión 3.0 de IE en adelante; en ese momento, VBScript se convirtió en un medio de automatización para Microsoft Outlook 97. [ 1 ] WSH también es una instalación opcional que proporciona un motor VBScript y JScript para Windows CE 3.0 y posteriores; algunos motores de terceros, incluidos Rexx y otras formas de BASIC , también están disponibles. [ 2 ] [ 3 ] [ 4 ]

Es independiente del lenguaje, ya que puede utilizar diferentes motores de lenguaje de Active Scripting . Por defecto, interpreta y ejecuta JScript en texto plano (archivos .JS y .JSE ) y VBScript ( archivos .VBS y .VBE ).

Los usuarios pueden instalar diferentes motores de scripting para programar en otros lenguajes, como PerlScript . También se puede usar la extensión de archivo WSF, independiente del lenguaje. La ventaja del archivo de script de Windows (.WSF) es que permite incluir varios scripts ("tareas") y combinar diferentes lenguajes de scripting en un mismo archivo.

Los motores WSH incluyen varias implementaciones para Rexx , Object REXX (ooRexx) (hasta la versión 4.0.0), BASIC , Perl , Ruby , Tcl , PHP , JavaScript , Object Pascal Delphi , Python , XLNT y otros lenguajes.

Windows Script Host se distribuye e instala de forma predeterminada en Windows 98 y versiones posteriores. También se instala si Internet Explorer 5 (o una versión posterior) está instalado. A partir de Windows 2000 , Windows Script Host estuvo disponible para su uso con scripts de inicio de sesión de usuario.

Uso

Windows Script Host puede utilizarse para diversos fines, como scripts de inicio de sesión, administración y automatización general. Microsoft lo describe como una herramienta de administración . [ 5 ] WSH proporciona un entorno para la ejecución de scripts: invoca el motor de scripts apropiado y proporciona un conjunto de servicios y objetos con los que el script puede trabajar. [ 5 ] Estos scripts pueden ejecutarse en modo de interfaz gráfica de usuario (GUI) ( WScript.exe ) o en modo de línea de comandos ( CScript.exe ), o desde un objeto COM ( scrobj.dll ), lo que ofrece flexibilidad al usuario para scripts interactivos o no interactivos. [ 6 ] Windows Management Instrumentation también es programable mediante este método.

WSH, los motores y la funcionalidad relacionada también se enumeran como objetos a los que se puede acceder, programar y consultar mediante los exploradores de objetos de VBA y Visual Studio, así como mediante herramientas similares como los diversos depuradores de scripts, por ejemplo, Microsoft Script Debugger , y los editores.

WSH implementa un modelo de objetos que expone un conjunto de interfaces del Modelo de Objetos Componentes (COM). [ 7 ] Así, además de ASP, IIS, Internet Explorer, CScript y WScript, WSH se puede utilizar para automatizar y comunicarse con cualquier aplicación de Windows con COM y otros objetos expuestos, como usar PerlScript para consultar Microsoft Access por varios medios, incluidos varios motores ODBC y SQL , ooRexxScript para crear lo que son en efecto macros Rexx en Microsoft Excel , Quattro Pro, Microsoft Word , Lotus Notes y cualquier otro similar, el script XLNT para obtener variables de entorno e imprimirlas en un nuevo documento de TextPad , y así sucesivamente.

La funcionalidad VBA de Microsoft Office, Open Office (así como Python y otros lenguajes de macros instalables) y Corel WordPerfect Office es independiente de los motores WSH, aunque Outlook 97 utiliza VBScript en lugar de VBA como su lenguaje de macros. [ 8 ]

Python en forma de ActiveState PythonScript se puede usar para automatizar y consultar los datos en SecureCRT , al igual que con otros lenguajes con motores instalados, por ejemplo PerlScript , ooRexxScript, PHPScript, RubyScript, LuaScript, XLNT , etc. Una excepción notable es Paint Shop Pro , que se puede automatizar en Python a través de un intérprete de macros dentro del propio programa PSP en lugar de usar el motor PythonScript WSH o una implementación externa de Python como los intérpretes de Python suministrados con suites de software de emulación e integración de Unix u otras implementaciones de Python independientes, etc. [ 9 ] [ 10 ] como intermedio y de hecho se puede programar de esta manera incluso en ausencia de cualquier instalación de Python de terceros; lo mismo ocurre con el emulador de terminal programable Rexx Passport. [ 11 ] El emulador de terminal SecureCRT , el cliente FTP SecureFX y los programas cliente y servidor relacionados de Van Dyke están, a partir de las versiones actuales, automatizados a través de WSH, por lo que se puede usar cualquier lenguaje con un motor instalado; El software incluye ejemplos en VBScript, JScript y PerlScript.

A partir de las versiones más recientes y remontándonos a varias versiones anteriores, la programabilidad de 4NT / Take Command en las últimas implementaciones (a través de "@REXX" y similares para Perl, Python, Tcl, Ruby, Lua, VBScript, JScript, etc.) generalmente utiliza el motor WSH. [ 12 ] El emulador de terminal ZOC obtiene su capacidad de ser programado en Rexx a través de un intérprete externo, uno de los cuales se suministra con el programa, y ​​se pueden especificar intérpretes Rexx alternativos en la configuración del programa. [ 13 ] [ 14 ] El MKS Toolkit proporciona PScript, un motor WSH además del intérprete Perl estándar perl.exe que viene con el paquete.

VBScript, JScript y algunos motores de terceros tienen la capacidad de crear y ejecutar scripts en un formato codificado que impide su edición con un editor de texto; las extensiones de archivo para estos scripts codificados son .vbe , .jse y otras de ese tipo.

Salvo que se especifique lo contrario, cualquier motor de scripting de WSH puede utilizarse con los distintos paquetes de software de servidor de Windows para proporcionar scripting CGI. Las versiones actuales de los motores WSH predeterminados y la mayoría de los motores de terceros también tienen capacidades de socket; como script CGI o de otro tipo, PerlScript es la opción preferida de muchos programadores para este propósito, y los motores VBScript y varios motores basados ​​en Rexx también se consideran suficientemente potentes en conectividad y capacidades de procesamiento de texto como para resultar útiles. Esto también se aplica al acceso y procesamiento de archivos: los primeros motores WSH para VBScript y JScript no lo hacen, ya que el lenguaje base no lo hacía, [ 15 ] mientras que PerlScript, ooRexxScript y los demás lo tienen desde el principio.

WinWrap Basic, SaxBasic y otros son similares a Visual Basic para Aplicaciones. Estas herramientas se utilizan para agregar capacidades de scripting y macros al software en desarrollo y se pueden encontrar en versiones anteriores de Host Explorer, por ejemplo. Muchos otros lenguajes también se pueden usar de esta manera. Otros lenguajes utilizados para el scripting de programas incluyen Rexx, Tcl, Perl, Python, Ruby y otros que vienen con métodos para controlar objetos en el sistema operativo y los programas de hojas de cálculo y bases de datos. [ 16 ] Una excepción es que el emulador de terminal Zoc está controlado por un intérprete Rexx proporcionado con el paquete u otro intérprete especificado por el usuario; este también es el caso con el emulador Passport.

VBScript es el lenguaje de macros en Microsoft Outlook 97, mientras que WordBasic se usa para Word hasta la versión 6, PowerPoint y otras herramientas. Excel hasta la versión 5.0 usa Visual Basic 5.0. En Office 2000 en adelante, se usa Visual Basic para Aplicaciones 6.0 para todos los componentes. Otros componentes usan Visual Basic para Aplicaciones . OpenOffice usa Visual Basic, Python y varios otros como lenguajes de macros y se pueden agregar otros. LotusScript está muy relacionado con VBA y se usa para Lotus Notes y Lotus SmartSuite , que incluye Lotus Word Pro (el descendiente actual de Ami Pro ), Lotus Approach , Lotus FastSite , Lotus 1-2-3 , etc., y VBA puro, con licencia de Microsoft, se usa en productos Corel como WordPerfect , Paradox , Quattro Pro , etc.

Se puede acceder a cualquier lenguaje de scripting instalado en Windows mediante PerlScript, PythonScript, VBScript y otros motores disponibles para acceder a bases de datos (Lotus Notes, Microsoft Access, Oracle Database , Paradox) y hojas de cálculo (Microsoft Excel, Lotus 1-2-3, Quattro Pro), así como a otras herramientas como procesadores de texto, emuladores de terminal, intérpretes de comandos, etc. Esto se logra mediante WSH, por lo que se puede usar cualquier lenguaje si hay un motor instalado.

En versiones recientes del indicador de comandos y las herramientas mejoradas de Take Command , el comando "script" escrito en el indicador de la shell producirá una lista de los motores instalados actualmente, uno por línea y, por lo tanto, delimitados por CR-LF. [ 17 ] [ 18 ] [ 19 ]

Ejemplos

El primer ejemplo es muy sencillo: un Hello, worldprograma. Muestra código VBScript que utiliza el objeto COM raíz de WSH, "WScript", para mostrar un mensaje con un botón "Aceptar". Al ejecutar este script, se llamaría al motor CScript o WScript y se proporcionaría el entorno de ejecución.

Contenido de un archivohello0.vbs

WScript.Echo ( " Hola mundo " ) WScript.Salir ( )

La programación WSH también puede utilizar el lenguaje JScript .

Contenido de un archivohello1.js

WScript.Echo ( " Hola mundo" ) ; WScript.Salir ( ) ;

O bien, se puede mezclar código en un mismo archivo WSF , como por ejemplo VBScript y JScript , o cualquier otro:

Contenido de un archivohello2.wsf

<job> <script language= "VBScript" > MsgBox "hola mundo (desde vb)" </script> <script language= "JScript" > WScript.Echo("hola mundo (desde js)"); </script> </job>

Preocupaciones de seguridad

Las aplicaciones y los procesos de Windows pueden automatizarse mediante un script en Windows Script Host. Es posible que se creen virus y malware para explotar esta capacidad. Por lo tanto, algunos sugieren deshabilitarla por motivos de seguridad. [ 20 ] Como alternativa, los programas antivirus pueden ofrecer funciones para controlar los scripts .vbs y otros scripts que se ejecutan en el entorno WSH.

Desde la versión 5.6 de WSH, los scripts pueden firmarse digitalmente mediante programación utilizando el objeto Scripting.Signer en el propio script, siempre que exista un certificado válido en el sistema. Como alternativa, se puede utilizar la herramienta signcode del SDK de la plataforma, que se ha ampliado para admitir los tipos de archivo de WSH, desde la línea de comandos. [ 21 ]

Mediante las directivas de restricción de software introducidas con Windows XP, se puede configurar un sistema para que ejecute únicamente los scripts almacenados en ubicaciones de confianza, que tengan un hash MD5 conocido o que hayan sido firmados digitalmente por un editor de confianza, impidiendo así la ejecución de scripts no confiables. [ 22 ]

Motores de scripting disponibles

Nota : Por definición, todos estos motores de scripting pueden utilizarse en la programación CGI en Windows con cualquier número de programas y configuraciones, lo que significa que los archivos de código fuente de un script utilizado en un servidor para fines CGI podrían tener otras extensiones de archivo como .cgi, etc. La capacidad mencionada del Windows Script Host para ejecutar un script con varios lenguajes en archivos con extensión .wsh . El HTML y XML extendidos también amplían las posibilidades al trabajar con scripts para uso en red, al igual que las Active Server Pages , etc. Además, los scripts de shell de Windows y los scripts escritos en shells con capacidades mejoradas como TCC , 4NT , etc., y los shells de Unix bajo software de interoperabilidad como MKS Toolkit también pueden tener scripts incrustados.

Se han sugerido motores para otros lenguajes, como LotusScript , SaxBasic, BasicScript, KiXtart , awk , bash , csh y otros shells de Unix, 4NT , cmd.exe (el shell de Windows NT), Windows PowerShell , DCL , C , C++ , Fortran y otros. [ 24 ] El lenguaje XLNT [ 25 ] se basa en DCL y proporciona un subconjunto muy grande del lenguaje junto con comandos y sentencias adicionales y el software se puede usar de tres maneras: el motor WSH (*.xcs), el intérprete de consola (*.xlnt) y como un motor CGI del lado del servidor y del cliente (*.xgi). [ 26 ]

Cuando se utiliza un servidor que implementa CGI, como Windows Internet Information Server, puertos de Apache y otros, se pueden usar todos o la mayoría de los motores; los más comunes son VBScript, JScript, PythonScript, PerlScript, ActivePHPScript y ooRexxScript. El programa MKS Toolkit PScript también ejecuta Perl. Los intérpretes de comandos como cmd.exe, 4NT, ksh y los lenguajes de scripting con procesamiento de cadenas y, preferiblemente, funcionalidad de sockets, también se pueden usar para scripts CGI; los lenguajes compilados como C++, Visual Basic y Java también se pueden usar de esta manera. Todos los intérpretes de Perl, ooRexx, PHP y las versiones más recientes de VBScript y JScript pueden usar sockets para TCP/IP y, generalmente, UDP y otros protocolos para esto.

Historial de versiones

La versión redistribuible de WSH versión 5.6 se puede instalar en Windows 95/98/Me y Windows NT 4.0/2000. WSH 5.7 se puede descargar para Windows 2000, Windows XP y Windows Server 2003. A partir de 2006, las versiones redistribuibles para sistemas operativos más antiguos (Windows 9x y Windows NT 4.0) ya no están disponibles en el Centro de descargas de Microsoft.

Desde Windows XP Service Pack 3, la versión 5.7 es la única disponible de Microsoft, y las revisiones más recientes se han incluido en versiones posteriores de Windows.

Versiones

Véase también

Referencias

  1. MSDN, "Windows Scripting Host" y "VBScript"
  2. Edición de abril de 2000 de MSDN, "Windows Scripting Host"
  3. La Biblia de VBScript (1999)
  4. Kit de recursos de Windows 2000 Server (documentación)
  5. 1 2 "¿Qué es WSH?" . msdn.microsoft.com . 24 de octubre de 2011. Archivado del original el 7 de enero de 2018. Recuperado el 30 de abril de 2018 .
  6. "Conceptos básicos de Windows Script Host" . msdn.microsoft.com . 24 de octubre de 2011. Archivado del original el 8 de agosto de 2017. Consultado el 30 de abril de 2018 .
  7. "Modelo de objetos de host de scripts de Windows" . msdn.microsoft.com . 24 de octubre de 2011. Archivado del original el 8 de agosto de 2017. Consultado el 30 de abril de 2018 .
  8. MSDN "VBA"
  9. Manual del usuario, Paint Shop Pro 8
  10. Ayuda de Paint Shop Pro 8, "Automatización"
  11. Archivo de ayuda principal, Passport para Windows
  12. Documentación de Take Command 18.00 (copia impresa y archivo de ayuda)
  13. Ayuda de Zoc v 6.0
  14. Manual impreso de Zoc 5.0
  15. Documentación de MSDN
  16. Manuales de Windows Office 97 y 2000 (Wiley)
  17. Documentación de Take Command versión 18.00
  18. Sitio web y tablón de anuncios de JP Software Take Command-4NT-4Dos-4OS/2
  19. Tomar el mando 18.00 ayuda
  20. "Norman - Software antivirus y de seguridad para el hogar y la empresa" . AVG.com . Archivado del original el 21 de febrero de 2006. Consultado el 30 de abril de 2018 .
  21. LLC), Tara Meyer (Aquent (30 de junio de 2006). "Providing a Secure eXPerience" . msdn.microsoft.com . Archivado del original el 10 de noviembre de 2017. Recuperado el 30 de abril de 2018 .
  22. Windows Script Host 5.6 presume de integración con Windows XP, seguridad y un nuevo modelo de objetos. Archivado el 18/02/2008 en Wayback Machine.
  23. CasioCalc.com, mensajes del 15/09/2016
  24. "Notas/Foro de Domino 4 y 5 : RE: Sugerencia: Convertir LotusScript en un motor de scripts para Windows Scripting Host" . Archivado del original el 21/03/2015 . Consultado el 12/03/2015 . 
  25. Archivo de ayuda HTML de ASCI
  26. Sitio web de ASCI
  • Anfitrión
Obtenido de " https://en.wikipedia.org/w/index.php?title=Windows_Script_Host&oldid=1362236305 "