Host de script do Windows - Windows Script Host

Windows Script Host (WSH)
Windows Script Host Icon.png
Outros nomes Host de script do Windows
Desenvolvedor (s) Microsoft
Versão estável
5,812
Sistema operacional Microsoft Windows
Modelo Tecnologia de automação
Licença Software comercial proprietário
Local na rede Internet Visão geral do Windows Script Host

O Microsoft Windows Script Host ( WSH ) (anteriormente denominado Windows Scripting Host ) é uma tecnologia de automação para sistemas operacionais Microsoft Windows que fornece recursos de script comparáveis ​​aos arquivos em lote , mas com uma gama mais ampla de recursos com suporte. Esta ferramenta foi fornecida pela primeira vez no Windows 95 após Build 950a nos discos de instalação como uma instalação opcional configurável e instalável por meio do Painel de Controle e, em seguida, um componente padrão do Windows 98 (Build 1111) e posterior e Windows NT 4.0 Build 1381 e por meio do Service Pack 4. O WSH também é um meio de automação para o Internet Explorer por meio dos mecanismos WSH instalados a partir do IE versão 3.0; neste momento, o VBScript tornou-se um meio de automação para o Microsoft Outlook 97. O WSH também é uma instalação opcional fornecida com um mecanismo VBScript e JScript para Windows CE 3.0 e seguintes e alguns mecanismos de terceiros, incluindo Rexx e outras formas de Basic também estão disponíveis.

É independente do idioma, pois pode fazer uso de diferentes mecanismos de linguagem de scripts ativos . Por padrão, ele interpreta e executa JScript de texto simples (arquivos .JS e .JSE) e VBScript (arquivos .VBS e .VBE).

Os usuários podem instalar diferentes mecanismos de script para habilitá-los a criar scripts em outras linguagens, por exemplo, PerlScript . A extensão de nome de arquivo independente de idioma WSF também pode ser usada. A vantagem do Windows Script File (.WSF) é que ele permite vários scripts ("trabalhos"), bem como uma combinação de linguagens de script em um único arquivo.

Os motores WSH incluem várias implementações para Rexx , BASIC , Perl , Ruby , Tcl , PHP , JavaScript , Delphi , Python , XSLT e outras linguagens.

O Windows Script Host é distribuído e instalado por padrão no Windows 98 e em versões posteriores do Windows. Ele também é instalado se o Internet Explorer 5 (ou uma versão posterior) estiver instalado. A partir do Windows 2000 , o Windows Script Host tornou-se disponível para uso com scripts de login do usuário.

Uso

O Windows Script Host pode ser usado para vários fins, incluindo scripts de logon, administração e automação geral. A Microsoft o descreve como uma ferramenta de administração . O WSH fornece um ambiente para a execução de scripts - ele invoca o mecanismo de script apropriado e fornece um conjunto de serviços e objetos para o script trabalhar. Esses scripts podem ser executados no modo GUI ( WScript .exe) ou no modo de linha de comando ( CScript .exe), ou a partir de um objeto COM ( wshom .ocx), oferecendo flexibilidade ao usuário para scripts interativos ou não interativos. A Instrumentação de gerenciamento do Windows também pode ser programada por esse meio.

O WSH, os motores e as funcionalidades relacionadas também são listados como objetos que podem ser acessados, com scripts e consultados por meio dos exploradores de objetos VBA e Visual Studio e aqueles para ferramentas semelhantes, como os vários depuradores de script, por exemplo, Microsoft Script Debugger e editores .

WSH implementa um modelo de objeto que expõe um conjunto de interfaces Component Object Model (COM). Portanto, além de ASP, IIS, Internet Explorer, CScript e WScript, o WSH pode ser usado para automatizar e se comunicar com qualquer aplicativo Windows com COM e outros objetos expostos, como usar PerlScript para consultar o Microsoft Access por vários meios, incluindo vários mecanismos ODBC e SQL , ooRexxScript para criar o que são macros Rexx em vigor no Microsoft Excel , Quattro Pro, Microsoft Word , Lotus Notes e qualquer outro semelhante, o script XLNT para obter variáveis ​​de ambiente e imprimi-las em um novo documento TextPad , a funcionalidade VBA de Microsoft Office, Open Office (bem como Python e outras linguagens de macro instaláveis) e Corel WordPerfect Office são separados dos mecanismos WSH, embora o Outlook 97 use VBScript em vez de VBA como sua linguagem de macro.

Python na forma de ActiveState PythonScript pode ser usado para automatizar e consultar os dados em SecureCRT , como com outras linguagens com motores instalados, por exemplo , PerlScript , ooRexxScript , PHPScript , RubyScript , LuaScript , XLNT e assim por diante. Uma exceção notável é o Paint Shop Pro , que pode ser automatizado em Python por meio de um interpretador de macro dentro do próprio programa PSP em vez de usar o mecanismo PythonScript WSH ou uma implementação Python externa, como interpretadores Python fornecidos com pacotes de software de emulação e integração Unix ou outras implementações autônomas do Python et al. como intermediário e, de fato, pode ser programado dessa forma, mesmo na ausência de qualquer instalação Python de terceiros; o mesmo vale para o emulador de terminal programável Rexx, Passport. O emulador de terminal SecureCRT , cliente FTP SecureFX e programas de cliente e servidor relacionados da Van Dyke são a partir das versões atuais automatizados por meio do WSH, portanto, qualquer idioma com um mecanismo instalado pode ser usado; o software vem com exemplos de VBScript, JScript e PerlScript.

A partir dos lançamentos mais recentes e voltando várias versões agora, a programabilidade de 4NT / Take Command nas implementações mais recentes (por meio de "@REXX" e semelhante para Perl, Python, Tcl, Ruby, Lua, VBScript, JScript e assim por diante) geralmente usa o mecanismo WSH. O emulador de terminal ZOC consegue sua capacidade de ser programado em Rexx por meio de um intérprete externo, um dos quais é fornecido com o programa, e intérpretes Rexx alternativos podem ser especificados na configuração do programa. O MKS Toolkit fornece PScript, um mecanismo WSH além do interpretador Perl padrão perl.exe que vem com o pacote.

VBScript, JScript e alguns mecanismos de terceiros têm a capacidade de criar e executar scripts em um formato codificado que impede a edição com um editor de texto; as extensões de arquivo para esses scripts codificados são .vbe e .jse e outros desse tipo.

A menos que especificado de outra forma, qualquer mecanismo de script WSH pode ser usado com os vários pacotes de software de servidor Windows para fornecer scripts CGI. As versões atuais dos mecanismos WSH padrão e todos ou a maioria dos mecanismos de terceiros também possuem recursos de soquete; como um script CGI ou não, PerlScript é a escolha de muitos programadores para esse propósito e o VBScript e vários mecanismos baseados em Rexx também são classificados como suficientemente poderosos em conectividade e capacidade de processamento de texto para também serem úteis. Isso também vale para acesso e processamento de arquivos - os primeiros motores WSH para VBScript e JScript não, já que a linguagem base não, enquanto PerlScript, ooRexxScript e os outros têm isso desde o início.

WinWrap Basic , SaxBasic e outros são semelhantes ao Visual Basic for Applications. Essas ferramentas são usadas para adicionar habilidades de script e macro ao software que está sendo desenvolvido e podem ser encontradas em versões anteriores do Host Explorer, por exemplo. Muitos outros idiomas também podem ser usados ​​dessa maneira. Outras linguagens usadas para scripts de programas incluem Rexx, Tcl, Perl, Python, Ruby e outras que vêm com métodos para controlar objetos no sistema operacional e os programas de planilha e banco de dados. Uma exceção é que o emulador de terminal Zoc é controlado por um interpretador Rexx fornecido com o pacote ou outro interpretador especificado pelo usuário; este também é o caso com o emulador do Passport.

VBScript é a linguagem de macro do Microsoft Outlook 97, enquanto o WordBasic é usado para Word até 6, PowerPoint e outras ferramentas. Excel para 5.0 usa Visual Basic 5.0. No Office 2000, o verdadeiro Visual Basic for Applications 6.0 é usado para todos os componentes. Outros componentes usam o Visual Basic for Applications . O OpenOffice usa Visual Basic, Python e vários outros como linguagens de macro e outros podem ser adicionados. O LotusScript está intimamente relacionado ao VBA e é usado para Lotus Notes e Lotus SmartSuite , que inclui Lotus Word Pro (o descendente atual de Ami Pro ), Lotus Approach , Lotus FastSite , Lotus 1-2-3 , etc., e VBA puro, licenciado da Microsoft, é usado em produtos Corel, como WordPerfect , Paradox , Quattro Pro etc.

Qualquer linguagem de script instalada no Windows pode ser acessada por meios externos de PerlScript, PythonScript, VBScript e os outros motores disponíveis podem ser usados ​​para acessar bancos de dados (Lotus Notes, Microsoft Access, Oracle Database , Paradox) e planilhas (Microsoft Excel, Lotus 1- 2-3, Quattro Pro) e outras ferramentas como processadores de texto, emuladores de terminal, shells de comando e assim por diante. Isso pode ser feito por meio do WSH, portanto, qualquer linguagem pode ser usada se houver um mecanismo instalado.

Em versões recentes do prompt de comando e ferramentas aprimoradas Take Command , o comando "script" digitado no prompt do shell produzirá uma lista dos mecanismos atualmente instalados, um em uma linha e, portanto, delimitado por CR-LF.

Exemplos

O primeiro exemplo é muito simples; ele mostra algum VBScript que usa o objeto WSH COM raiz "WScript" para exibir uma mensagem com um botão 'OK'. Ao iniciar este script, o mecanismo CScript ou WScript seria chamado e o ambiente de execução fornecido.

Conteúdo de um arquivo hello0.vbs

WScript.Echo "Hello world"
WScript.Quit

A programação WSH também pode usar a linguagem JScript .

Conteúdo de um arquivo hello1.js

WSH.Echo("Hello world");
WSH.Quit();

Ou o código pode ser misturado em um arquivo WSF , como VBScript e JScript , ou qualquer outro:

Conteúdo de um arquivo hello2.wsf

<job>
<script language="VBScript">
  MsgBox "hello world (from vb)"
</script>
<script language="JScript">
  WSH.echo("hello world (from js)");
</script>
</job>

Preocupações com segurança

Os aplicativos e processos do Windows podem ser automatizados usando um script no Windows Script Host. Vírus e malware podem ser criados para explorar essa capacidade. Assim, alguns sugerem desativá-lo por motivos de segurança. Como alternativa, os programas antivírus podem oferecer recursos para controlar .vbs e outros scripts executados no ambiente WSH.

Desde a versão 5.6 do WSH, os scripts podem ser assinados digitalmente de forma programática usando o objeto Scripting.Signer em um script, desde que um certificado válido esteja presente no sistema. Como alternativa, a ferramenta signcode do Platform SDK, que foi estendida para oferecer suporte a tipos de arquivos WSH, pode ser usada na linha de comando.

Ao usar as Políticas de Restrição de Software introduzidas com o Windows XP, um sistema pode ser configurado para executar apenas os scripts que estão armazenados em locais confiáveis, têm um hash MD5 conhecido ou foram assinados digitalmente por um editor confiável, evitando assim a execução de scripts não confiáveis .

Mecanismos de script disponíveis

Nota : Por definição, todos esses motores de script podem ser utilizados na programação CGI no Windows com qualquer número de programas e configurados, o que significa que os arquivos de código-fonte de um script usado em um servidor para fins CGI podem conter outras extensões de arquivo, como .cgi e assim por diante. A capacidade acima mencionada do Windows Script Host de executar um script com vários idiomas em arquivos com extensão .wsh. Html e XML estendidos também aumentam as possibilidades adicionais ao trabalhar com scripts para uso em rede, como fazem Active Server Pages e assim por diante. Além disso, scripts de shell do Windows e scripts escritos em shells com recursos aprimorados como TCC , 4NT , etc. e shells Unix sob software de interoperabilidade como o MKS Toolkit também podem ter scripts embutidos neles.

Nome do motor Linguagem de script implementada Linguagem base Extensões de arquivo Disponibilidade Produzido por Status Data de lançamento inicial Scripts codificados Notas
VBScript Microsoft VBScript Microsoft Visual Basic .vbs Instalado por padrão Microsoft instalação padrão 1999 Sim .vbe Script de host padrão do Windows
JScript Microsoft JScript ECMAScript .js Instalado por padrão Microsoft instalação padrão 1999 Sim, .jse Host de script java padrão
WinWrap Basic WinWrap Basic Básico .wwb Na instalação principal do WWB Engenharia Polar Funcionalidade padrão do WWB; Utiliza .NET e COM 2004 sim
PerlScript Perl Perl 5 .pls com ActiveState Perl ActiveState Código aberto 1999 Supostamente sim
PScript Perl Perl 5, funcionalidade CGI .p, .ps com MKS Toolkit MKS Comercial 2001
XBScript Mecanismo de script xBase xBase ( Clipper ) .xbs, .prg Clipper com sofrware XBScript Comercial
LotusScript WSH LotusScript Microsoft Visual Basic (qv) .nsf Download de terceiros Service Desk Plus freeware 2001
RexxScript Rexx Rexx .rxs, .rx, .rex Com algumas implementações Rexx Vários freeware 1998
ooRexxScript Abrir objeto REXX REXX .rxs com Open Object Rexx ou gratuitamente de alguns terceiros Equipe Open Object Rexx Código aberto
PythonScript Pitão Pitão .pys SourceForge e com ActivePython O projeto Pywin32 Código aberto
TclScript Tcl / Tk Tcl / Tk .tcls SourceForge ActiveState ou terceiro Código aberto
ActivePHPScript PHP PHP .phps com PHP Equipe PHP Código aberto
PHPScript PHP PHP .phps com PHP Equipe PHP Código aberto Versão anterior do ActivePHPScript
RubyScript Rubi Rubi .rbs com distribuição Ruby Equipe Ruby Código aberto sim
XLNTScript XLNT DCL .xcs com XLNT Advanced Systems Concepts, Inc. Comercial 1997 Um aplicativo de script multiuso baseado em OpenVMS DCL para Windows
LuaScript Lua Lua .lua com lua Organização lua Código aberto
Mecanismo de objeto REXX Objeto REXX Rexx .rex, .rxs com IBM Object REXX IBM Comercial 2002
XML Engine Análise XML HTML estendido, XML .xml com muitas implementações XML Elf Data instalação padrão de fato 2000 Macintosh também
Motor Kixtart WSH Kixtart KixTart, MS-DOS, Windows 95. Shells do Windows NT .kix com KixStart Microsoft Holanda Kits de recursos do Windows e outros recursos 1996 Baixe da Microsoft ou de outro lugar, também conhecido como KixStart32
NullScript NullScript Linguagem nula .ns com NullScript Organização NullScript Kits de recursos do Windows e outros recursos 1999
ForthScript Adiante Adiante .fth, outros Adiante DMOZ Código aberto
Haskell Script Haskell Haskell * .hsk (provisório), outros download grátis Código aberto
XSLT WSH Engine XSLT XSLT .xslt download grátis Código aberto
CobolScript WSH Engine Cobol Cobol .cbl. .cob, .cb Fujitsu Cobol 3 - gratuito para uso educacional Comercial da Fujitsu grátis com compilador grátis para educadores etc. Proprietário
Delphi scripting engine Delphi Delphi, uma variante Pascal .dlp, .del,. Em algumas distribuições Delphi ou kits de recursos Comercial 2003
DMDScript DMDScript D, um grande incremento de C .dmd Distribuições DMD, download freeware Disponível na web 2014 DMD
Script C # C # Microsoft C # .NET .cs. .c #, outros Código fonte disponível Código aberto, desenvolvimento ativo em andamento obscuro 2013
Mecanismo de script C pequeno C C (K&R, Ansi) .c, outros Vários locais, verifique na Web freeware 2009
JavaScript WSH Engine JavaScript / Java Java e variantes .java, .j, jva, outros Com muitas implementações de JavaScript Sun / Outras Organizações Java freeware
Take Command WSH Engine 4NT / Take Command TCC, a versão atual do 4NT p .btm, .cmd, morcego, outros Verifique o software JP JP Software Proprietário 2015 Desenvolvimento precoce
92Script WSH Engine TI-89 /92 + / Voyager 200 TI-Basic Calculadora TI-Basic .92bs Site do projeto / FTP Vários programadores independentes Experimental, código aberto 2014 "possível" Beta Q4 2015 para o motor principal; funcionalidade de representação gráfica (92Script / Tk) então ou posterior
48Script WSH Engine Linguagem de programação integrada da família HP-48 Calculator Linguagem de programação HP 48, parente distante de Forth, Basic, Lisp .48s Site do projeto / FTP Vários programadores independentes Experimental 2015 Planejado Status em 30/09/2015. A linguagem tem Lisp, Basic, Forth e outras influências.
Fortran Script Fortran Fortran 77 .for, .ftn. f77, f90, f95 Vários Vários Prova de conceito experimental, exercício acadêmico, shareware, comercial, código aberto. 2000
PascalScript Object Pascal Pascal 7 .pas, .ops, outro Object Pascal RemObjects freeware 2001 Também pode ser usado com Delphi diretamente
Lisp WSH Engine Lisp Lisp .lisp, .lsp Várias ferramentas Lisp AutoLisp e outros Freeware ou Shareware
BESEN ECMA-JavaScript Java e variantes .bes, .bsn, outros SourceForge Organização BESEN Código aberto 2011
Mecanismos ECMAScript WSH Java e variantes Vários Vários Vários Vários Experimental, freeware, código aberto, shareware, proprietário, comercial 2005 Existem inúmeras implementações ECMAScript, mas nem todas têm motores WSH
Motor CFXScript WSH Linguagem de programação on-board da série Casio CFX-9850 e fx Calculator Linguagem de programação de calculadora Casio, portada para vários sistemas operacionais como CFW .cfxb Sites do projeto / FTP programadores independentes Experimental 2015 Planejado Status em 30/09/2015. A linguagem tem elementos de Basic, Forth, Fortran e outros.
SharpCalcScript WSH Engine Linguagem de programação integrada de calculadoras gráficas afiadas Sharp S-Basic adaptado para Windows como NeusSFortran .scsb Sites do projeto / FTP programadores independentes Experimental 2015 Planejado Status em 30/09/2015. Também inclui a linguagem S-Basic dos computadores de bolso da Sharp.

Houve sugestões de criação de mecanismos para outras linguagens, como LotusScript , SaxBasic , BasicScript , KiXtart , awk , bash , csh e outros shells Unix, 4NT , cmd.exe (o shell do Windows NT), Windows PowerShell , DCL , C , C ++ , Fortran e outros. A linguagem XLNT é baseada em DCL e fornece um subconjunto muito grande da linguagem junto com comandos e instruções adicionais e o software pode ser usado de três maneiras: o mecanismo WSH (* .xcs), o interpretador de console (* .xlnt) e como um motor CGI do lado do servidor e do cliente (* .xgi).

Quando um servidor implementa CGI, como o Windows Internet Information Server, portas do Apache e outros, todos ou a maioria dos mecanismos podem ser usados; os mais comumente usados ​​são VBScript, JScript, PythonScript, PerlScript, ActivePHPScript e ooRexxScript. O programa MKS Toolkit PScript também executa Perl. Os shells de comando como cmd.exe, 4NT, ksh e linguagens de script com processamento de string e, de preferência, funcionalidade de soquete também podem ser usados ​​para scripts CGI; linguagens compiladas como C ++, Visual Basic e Java também podem ser usadas dessa forma. Todos os interpretadores Perl, ooRexx, PHP e versões mais recentes de VBScript e JScript podem usar soquetes para TCP / IP e geralmente UDP e outros protocolos para isso.

Histórico de versão

Versão Windows Enviado com a versão WSH Última versão redistribuível
Windows 95 Nenhum (redistribuível separadamente) 5,6
Windows NT 4.0 Nenhum (redistribuível separadamente) 5,6
Windows NT Server 4.0 Nenhum (redistribuível separadamente) 5,6
Windows CE 3.0 1.0 (instalação opcional no disco do instalador) 2.0
Windows 98 1.0 5,6
Windows 98 Segunda Edição 1.0 5,6
Windows 2000 2.0 (também denominado WSH 5.1) 5,7
Windows 2000 Server 2.0 (também denominado WSH 5.1) 5,7
Windows 2000 SP3, SP4 e SP5 5,6 5,7
Windows Me 2.0 (também denominado WSH 5.1) 5,6
Windows XP 5,6 5,7
Windows XP SP3 5,7 Não aplicável
Windows Server 2003 5,6 5,7
Windows Vista 5,7 Não aplicável
Windows Server 2008 5,7 Não aplicável
Windows 7 5,8 Não aplicável
Windows Server 2008 R2 5,8 Não aplicável
Windows 8 5,8 Não aplicável
Windows Server 2012 5,8 Não aplicável
Windows 10 5,812 Não aplicável
Windows Server 2016 5,812 Não aplicável

A versão redistribuível do WSH versão 5.6 pode ser instalada no Windows 95/98 / Me e no Windows NT 4.0 / 2000. O WSH 5.7 pode ser baixado para Windows 2000, Windows XP e Windows Server 2003. Recentemente, versões redistribuíveis para sistemas operacionais mais antigos (Windows 9x e Windows NT 4.0) não estão mais disponíveis no Centro de Download da Microsoft.

Desde o Windows XP Service Pack 3, a versão 5.7 não é necessária, pois está incluída, com as revisões mais recentes sendo incluídas nas versões mais recentes do Windows desde então.

Veja também

Referências

links externos