Otros nombres | Host de secuencias de comandos de Windows |
---|---|
Desarrollador(es) | Microsoft |
Versión estable | 5.812 |
Sistema operativo | Microsoft Windows |
Tipo | Tecnología de automatización |
Licencia | Software comercial propietario |
Sitio web | Descripción general de Windows Script Host |
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 por medio del Panel de control , y luego un componente estándar de Windows 98 (compilación 1111) y posteriores y Windows NT 4.0 Build 1381 y por medio 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 IE versión 3.0 en adelante; en este momento VBScript se convirtió en un medio de automatización para Microsoft Outlook 97. [1] WSH también es una instalación opcional proporcionada con un motor VBScript y JScript para Windows CE 3.0 y posteriores y también están disponibles algunos motores de terceros, incluidos Rexx y otras formas de Basic. [2] [3] [4]
Es independiente del lenguaje, ya que puede utilizar distintos motores de lenguaje Active Scripting . De forma predeterminada, interpreta y ejecuta JScript de texto sin formato (archivos .JS y .JSE) y VBScript (archivos .VBS y .VBE).
Los usuarios pueden instalar diferentes motores de scripting para poder escribir scripts en otros lenguajes, por ejemplo PerlScript . También se puede utilizar la extensión de nombre de archivo WSF, independiente del lenguaje. La ventaja del archivo de script de Windows (.WSF) es que permite múltiples scripts ("trabajos"), así como una combinación de lenguajes de scripting dentro de un solo archivo.
Los motores WSH incluyen varias implementaciones para Rexx , ooRexx , BASIC , Perl , Ruby , Tcl , PHP , JavaScript , Delphi , Python , XSLT y otros lenguajes.
Windows Script Host se distribuye e instala de forma predeterminada en Windows 98 y versiones posteriores de Windows. También se instala si está instalado Internet Explorer 5 (o una versión posterior). A partir de Windows 2000 , Windows Script Host estuvo disponible para su uso con scripts de inicio de sesión de usuarios.
Windows Script Host puede utilizarse para diversos fines, incluidos 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 ejecutar scripts: invoca el motor de scripts adecuado y proporciona un conjunto de servicios y objetos con los que trabajar el script. [5] Estos scripts pueden ejecutarse en modo GUI ( WScript .exe) o en modo de línea de comandos ( CScript .exe), o desde un objeto COM ( wshom .ocx), lo que ofrece flexibilidad al usuario para scripts interactivos o no interactivos. [6] Windows Management Instrumentation también se puede ejecutar mediante scripts por este medio.
El 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 y aquellos de 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í que además de ASP, IIS, Internet Explorer, CScript y WScript, el WSH se puede utilizar para automatizar y comunicarse con cualquier aplicación de Windows con COM y otros objetos expuestos, como por ejemplo usando PerlScript para consultar Microsoft Access por varios medios incluyendo 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 cualquiera de los similares, el script XLNT para obtener variables de entorno e imprimirlas en un nuevo documento 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 lenguaje de macros. [8]
Python en forma de ActiveState PythonScript se puede utilizar 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 por medio de un intérprete de macros dentro del propio programa PSP en lugar de utilizar el motor WSH de PythonScript o una implementación externa de Python, como los intérpretes de Python suministrados con los paquetes de software de emulación e integración de Unix u otras implementaciones independientes de Python, etc. [9] [10] como intermediario 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 por Rexx Passport. [11] El emulador de terminal SecureCRT , el cliente FTP SecureFX y los programas de cliente y servidor relacionados de Van Dyke están, a partir de las versiones actuales, automatizados por medio del WSH, por lo que se puede utilizar cualquier lenguaje con un motor instalado; El software viene con ejemplos de VBScript, JScript y PerlScript.
A partir de los lanzamientos más recientes y remontándonos a varias versiones ahora, la programabilidad de 4NT / Take Command en las últimas implementaciones (por medio de "@REXX" y similares para Perl, Python, Tcl, Ruby, Lua, VBScript, JScript y similares, etc.) generalmente utiliza el motor WSH. [12] El emulador de terminal ZOC obtiene su capacidad de ser programado en Rexx por medio 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 la edición con un editor de texto; las extensiones de archivo para estos scripts codificados son .vbe y .jse y otras de ese tipo.
A menos que se especifique lo contrario, cualquier motor de scripts WSH puede utilizarse con los distintos paquetes de software de servidor de Windows para proporcionar scripts CGI. Las versiones actuales de los motores WSH predeterminados y todos o 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 de muchos programadores para este propósito y VBScript y varios motores basados en Rexx también se consideran lo suficientemente potentes en conectividad y capacidades de procesamiento de texto como para ser útiles. Esto también se aplica al acceso y procesamiento de archivos: los primeros motores WSH para VBScript y JScript no lo hacen porque 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 añadir capacidades de creación de scripts y macros al software que se está desarrollando y se pueden encontrar en versiones anteriores de Host Explorer , por ejemplo. Muchos otros lenguajes también se pueden utilizar de esta manera. Otros lenguajes utilizados para la creación de scripts 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 es controlado por un intérprete Rexx suministrado con el paquete u otro intérprete especificado por el usuario; este también es el caso del emulador Passport.
VBScript es el lenguaje de macros de Microsoft Outlook 97, mientras que WordBasic se utiliza para Word hasta la versión 6, PowerPoint y otras herramientas. Excel hasta la versión 5.0 utiliza Visual Basic 5.0. A partir de Office 2000, se utiliza Visual Basic para Aplicaciones 6.0 para todos los componentes. Otros componentes utilizan Visual Basic para Aplicaciones . OpenOffice utiliza Visual Basic, Python y varios otros como lenguajes de macros, y se pueden añadir otros. LotusScript está muy relacionado con VBA y se utiliza 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 utiliza en productos de Corel como WordPerfect , Paradox , Quattro Pro , etc.
Se puede acceder a cualquier lenguaje de script instalado en Windows por medios externos. PerlScript, PythonScript, VBScript y otros motores disponibles se pueden utilizar 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) y otras herramientas como procesadores de texto, emuladores de terminal, shells de comandos, etc. Esto se puede lograr por medio de WSH, por lo que se puede utilizar cualquier lenguaje si hay un motor instalado.
En versiones recientes del símbolo del sistema y las herramientas mejoradas de Take Command , el comando "script" escrito en el símbolo del sistema generará una lista de los motores instalados actualmente, uno por línea y, por lo tanto, delimitada por CR-LF. [17] [18] [19]
El primer ejemplo es muy simple: muestra un código VBScript que utiliza el objeto COM raíz de WSH "WScript" para mostrar un mensaje con un botón "Aceptar". Al iniciar 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
WSH . Echo ( "Hola mundo" ); WSH . Quit ();
O bien, el código se puede mezclar en un archivo WSF , como VBScript y JScript , o cualquier otro:
Contenido de un archivohello2.wsf
<job> <script language= "VBScript" > MsgBox "hola mundo (desde vb)" </script> <script language= "JScript" > WSH.echo("hola mundo (desde js)"); </script> </job>
Las aplicaciones y procesos de Windows pueden automatizarse mediante un script en Windows Script Host. Se podrían crear virus y malware para aprovechar esta capacidad. Por ello, algunos sugieren desactivarlo por razones de seguridad. [20] Alternativamente, los programas antivirus pueden ofrecer funciones para controlar los archivos .vbs y otros scripts que se ejecutan en el entorno WSH.
Desde la versión 5.6 de WSH, los scripts se pueden firmar 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 en la línea de comandos la herramienta signcode del SDK de la plataforma, que se ha ampliado para admitir los tipos de archivos de WSH. [21]
Al utilizar las políticas de restricción de software introducidas con Windows XP, se puede configurar un sistema para ejecutar solo aquellos scripts que están almacenados en ubicaciones confiables, tienen un hash MD5 conocido o han sido firmados digitalmente por un editor confiable, evitando así la ejecución de scripts que no son confiables. [22]
Nota : Por definición, todos estos motores de scripts se pueden utilizar en la programación CGI bajo Windows con cualquier número de programas y configuraciones, lo que significa que los archivos de código fuente para un script usado en un servidor para propósitos CGI podrían tener otras extensiones de archivo como .cgi y así sucesivamente. La capacidad antes mencionada del Windows Script Host para ejecutar un script con múltiples idiomas en él en archivos con una extensión .wsh. El HTML y XML extendidos también se suman a las posibilidades adicionales cuando se trabaja con scripts para uso en red, al igual que las páginas Active Server y así sucesivamente. 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 en ellos.
Nombre del motor | Lenguaje de script implementado | Lenguaje base | Extensiones de archivos | Disponibilidad | Producido por | Estado | Fecha de lanzamiento inicial | Guiones codificados | Notas |
---|---|---|---|---|---|---|---|---|---|
VBScript | Microsoft VBScript | Microsoft Visual Basic | .vbs | Instalado por defecto | Microsoft | instalación predeterminada | 1999 | Sí, .vbe | Script de host de Windows predeterminado |
Script JavaScript | Microsoft JavaScript | Script ECMA | .js | Instalado por defecto | Microsoft | instalación predeterminada | 1999 | Sí, .jse | Host de script de Java predeterminado |
WinWrap básico | WinWrap básico | Básico | .wwb | En la instalación principal de WWB | Ingeniería polar | Funcionalidad estándar de WWB; utiliza tanto .NET como COM | 2004 | Sí | |
Script Perl | Perl | Perl 5 | .por favor | con ActiveState Perl | Estado activo | Código abierto | 1999 | Según se informa, sí | |
PScript | Perl | Perl 5, funcionalidad CGI | .p, .ps | con el kit de herramientas MKS | MKS | Comercial | 2001 | ||
Script XB | Motor de scripts xBase | xBase ( Clipper ) | .xbs, .prg | Clíper | con software XBScript | Comercial | |||
Servidor de escritorio LotusScript | Script de loto | Microsoft Visual Basic (ver) | .nsf | Descarga de terceros | Mesa de ayuda Plus | Software gratuito | 2001 | ||
Script Rexx | Rexx | Rexx | .rxs, .rx, .rex | Con algunas implementaciones de Rexx | Varios | Software gratuito | 1998 | ||
Guión ooRexx | Abrir objeto REXX | Rexxo | .rxs | con Open Object Rexx o gratis de algunos terceros | Equipo Open Object Rexx | Código abierto | |||
secuencia de comandos de Python | Pitón | Pitón | .pys | SourceForge y con ActivePython | El proyecto Pywin32 | Código abierto | |||
Script Tcl | Tcl /Tk | Tcl/Tk | .tcls | FuenteForge | ActiveState o un tercero | Código abierto | |||
Script PHP activo | PHP | PHP | .phps | con PHP | Equipo PHP | Código abierto | |||
Script PHP | PHP | PHP | .phps | con PHP | Equipo PHP | Código abierto | Versión anterior de ActivePHPScript | ||
Script de rubí | Rubí | Rubí | .rbs | con distribución Ruby | Equipo rubí | Código abierto | Sí | ||
Script XLNT | XLNT | DCL | .xcs | con XLNT | Conceptos de sistemas avanzados, Inc. | Comercial | 1997 | Una aplicación de scripting multipropósito basada en DCL de OpenVMS para Windows | |
LuaScript | Lua | Lua | .lua | con Lua | Organización Lua | Código abierto | |||
Motor de objetos REXX | Objeto REXX | Rexx | .rex, .rxs | con IBM Object REXX | IBM | Comercial | 2002 | ||
Motor XML | Análisis de XML | HTML extendido, XML | .xml | con muchas implementaciones XML | Datos de elfos | Instalación predeterminada de facto | 2000 | Macintosh también | |
Motor Kixtart WSH | Tarta de Kix | KixTart, MS-DOS, Windows 95, shells de Windows NT | .kix | con KixStart | Microsoft Países Bajos | Kits de recursos de Windows y otros recursos | 1996 | Descargar desde Microsoft o desde otro lugar, también conocido como KixStart32 | |
Script nulo | Script nulo | Lenguaje nulo | .ns | con NullScript | Organización NullScript | Kits de recursos de Windows y otros recursos | 1999 | ||
Guión de Forth | Adelante | Adelante | .quinto, otros | Adelante | Zona de operaciones de DMZ | Código abierto | |||
Script de Haskell | Haskell | Haskell | *.hsk (provisional), otros | Descarga gratuita | Código abierto | ||||
Motor XSLT WSH | XSLT | XSLT | .xslt | Descarga gratuita | Código abierto | ||||
Motor WSH de CobolScript | Cobol | Cobol | .cbl. .cob, .cb | Fujitsu Cobol 3: gratuito para uso educativo | Software comercial gratuito de Fujitsu con compilador gratuito para educadores, etc. | Propiedad | |||
Motor de scripting de Delphi | Delfos | Delphi, una variante de Pascal | .dlp, .del, . | En algunas distribuciones o kits de recursos de Delphi | Comercial | 2003 | |||
Script DMD | Script DMD | D, un incremento importante de C | .dmd | Distribuciones DMD, descargar | Software gratuito | Disponible en la Web | 2014 | DMD | |
Script en C# | DO# | Microsoft C#.NET | .cs. .c#, otros | Código fuente disponible | Código abierto, desarrollo activo en marcha | no claro | 2013 | ||
Pequeño motor de scripts en C | do | C (K&R, ANSI) | .c, otros | Varias ubicaciones, consultar Web | Software gratuito | 2009 | |||
Motor WSH de JavaScript | JavaScript / Java | Java y variantes | .java, .j, jva, otros | Con muchas implementaciones de JavaScript | Sun y otras organizaciones Java | Software gratuito | |||
Tome el mando del motor WSH | 4NT / Toma el mando | TCC, la versión actual de 4NT p | .btm, .cmd, bat, otros | Consulte el software JP | Software japonés | Propiedad | 2015 | Desarrollo temprano | |
Motor WSH 92Script | TI-89 /92+/Voyager 200 TI-Básica | Calculadora TI-Basic | .92bs | Sitio web/FTP del proyecto | Varios programadores independientes | Experimental, código abierto | 2014 | "posible" | Versión beta del cuarto trimestre de 2015 para el motor principal; funcionalidad gráfica (92Script/Tk) en ese momento o más adelante |
Motor WSH 48Script | Lenguaje de programación integrado de la familia de calculadoras HP-48 | Lenguaje de programación HP 48, pariente lejano de Forth, Basic, Lisp | .48s | Sitio web/FTP del proyecto | Varios programadores independientes | Experimental | 2015 | Planificado | Estado al 30/09/2015. El lenguaje tiene influencias de Lisp, Basic, Forth y otras. |
Guión de Fortran | Fortran | Fortran 77 | .para, .pie f77, f90, f95 | Varios | Varios | Prueba de concepto experimental, ejercicio académico, shareware, comercial, código abierto. | 2000 | ||
Script de Pascal | Objeto Pascal | Pascual 7 | .pas, .ops, otros | Objeto Pascal | Objetos Rem | Software gratuito | 2001 | También se puede utilizar directamente con Delphi. | |
Motor WSH de Lisp | Ceceo | Ceceo | .lisp, .lsp | Varias herramientas de Lisp | AutoLisp y otros | Software gratuito o shareware | |||
BIEN | ECMA-JavaScript | Java y variantes | .bes, .bsn, otros | FuenteForge | Organización BESEN | Código abierto | 2011 | ||
Motores WSH de ECMAScript | Java y variantes | Varios | Varios | Varios | Varios | Experimental, Freeware, Código abierto, Shareware, Propietario, Commercialware | 2005 | Existen numerosas implementaciones de ECMAScript pero no todas tienen motores WSH | |
Motor CFXScript WSH | Lenguaje de programación integrado en la serie de calculadoras Casio CFX-9850 y fx | Lenguaje de programación de calculadora Casio, adaptado a varios sistemas operativos como CFW | .cfxb | Sitios Web/FTP del proyecto | programadores independientes | Experimental | 2015 | Planificado [23] | Estado al 30/09/2015. El lenguaje tiene elementos de Basic, Forth, Fortran y otros. |
Motor WSH SharpCalcScript | Lenguaje de programación integrado en calculadoras gráficas Sharp | Sharp S-Basic adaptado a Windows como NeusSFortran | .scsb | Sitios Web/FTP del proyecto | programadores independientes | Experimental | 2015 | Planificado | Estado al 30/09/2015. También incluye el lenguaje S-Basic de las computadoras de bolsillo de Sharp. |
Se han sugerido la creación de 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 declaraciones adicionales y el software se puede utilizar 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 un servidor implementa CGI, como Windows Internet Information Server, puertos de Apache y otros, se pueden utilizar todos o la mayoría de los motores; los más utilizados son VBScript, JScript, PythonScript, PerlScript, ActivePHPScript y ooRexxScript. El programa MKS Toolkit PScript también ejecuta Perl. Los shells de comandos como cmd.exe, 4NT, ksh y los lenguajes de script con procesamiento de cadenas y preferiblemente funcionalidad de socket también se pueden utilizar para scripts CGI; los lenguajes compilados como C++, Visual Basic y Java también se pueden utilizar de esta manera. Todos los intérpretes de Perl, ooRexx, PHP y las versiones más recientes de VBScript y JScript pueden utilizar sockets para TCP/IP y, por lo general, UDP y otros protocolos para esto.
Versión de Windows | Se envía con la versión WSH | Última versión redistribuible |
---|---|---|
Windows 95 | Ninguno (redistribuible por separado) | 5.6 |
Windows NT 4.0 | Ninguno (redistribuible por separado) | 5.6 |
Windows CE 3.0 | 1.0 (instalación opcional en el disco de instalación) | 2.0 |
Windows 98 | 1.0 | 5.6 |
Windows 98 Segunda Edición | 1.0 | 5.6 |
Ventanas 2000 | 2.0 (también denominado WSH 5.1) | 5.7 |
Windows 2000 SP3, SP4 y SP5 | 5.6 | 5.7 |
Windows Me | 2.0 (también denominado WSH 5.1) | 5.6 |
Windows XP | 5.6 | 5.7 |
Windows XP SP3 | 5.7 | No aplicable |
Servidor Windows 2003 | 5.6 | 5.7 |
Windows Vista | 5.7 | No aplicable |
Servidor Windows 2008 | 5.7 | No aplicable |
Ventanas 7 | 5.8 | No aplicable |
Servidor Windows 2008 R2 | 5.8 | No aplicable |
Ventanas 8 | 5.8 | No aplicable |
Servidor Windows 2012 | 5.8 | No aplicable |
Ventanas 10 | 5.812 | No aplicable |
Servidor Windows 2016 | 5.812 | No aplicable |
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. Recientemente [ ¿cuándo? ] , 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 versión disponible de Microsoft, y desde entonces se han incluido revisiones más recientes en las versiones más recientes de Windows.