Quais linguagens de script são úteis para a automação do Windows?
Quais linguagens de script são úteis para a automação do Windows?
Respostas:
No Windows 7 e no Server 2008, é razoável considerar o PowerShell como ele é fornecido com o Windows, e também é fundamental administrar software de servidor como o Lync e Exchange, pois há um conjunto inteiro de comandos disponíveis para eles. Há uma lista crescente de recursos disponíveis, consulte o Script Center para obter detalhes.
O Windows Script Host (WSH) é tecnicamente um host de script para os mecanismos de script ActiveX. VBScript e JScript (implementação de JavaScript da Microsoft) são os dois mecanismos instalados por padrão. Muitos outros estão disponíveis como código aberto, incluindo Perl, PHP e Ruby.
Usando sintaxe semelhante ao VB6 e VB.NET, os VBScripts não têm acesso fácil às classes .NET (o Powershell é escrito em .NET e, portanto, tem acesso a todas as funções .NET). O VBScript aproveita principalmente o serviço WMI e os objetos que ele expõe.
Exemplo: Isso cria um ponto de restauração.
Set wmi, whatName, errResults
wmi = GetObject("winmgmts:\\.\root\default:Systemrestore")
whatName = InputBox("Enter a name for the Restore Point",WScript.ScriptName)
errResults = wmi.CreateRestorePoint (whatName, 12, 100)
If errResults <> 0 then
Wscript.Echo "Error " & errResults & " : Unable to create Restore Point"
End If
Você também pode escrever o mesmo script usando o ECMAScript:
var wmi = WScript.GetObject("winmgmts:\\.\root\default:Systemrestore");
var whatName = WSHInputBox("Enter a name for the Restore Point",Script.ScriptName);
var errResults = wmi.CreateRestorePoint(whatName, 12, 100);
if(errResults != 0) {
WScript.Echo("Error "+ err + " : Unable to create Restore Point");
}
Obviamente, existe o bom e velho arquivo em lotes. Eles não precisam de introdução.
Ainda escrevo arquivos em lote do DOS, mesmo no Windows 7. Para a maioria das tarefas, isso ainda funciona muito bem e é muito simples de trabalhar (também, muitos dos comandos do DOS, como "FOR", foram aprimorados ao longo do tempo e fornecem mais opções e funcionalidades que não estavam disponíveis há mais de uma década).
Para mim, um arquivo em lotes do DOS ainda é a principal linguagem de script do Windows (certamente é tradicional), mas todos têm necessidades e preferências diferentes. Há muitas coisas que os arquivos em lotes do DOS não podem fazer (as linguagens de script também podem apresentar limitações) e, nas raras ocasiões em que encontrei isso, examino quais são minhas outras opções (geralmente é Perl, ou às vezes poderia escrever um pequeno programa ou um aplicativo inteiro).
Compreender o que você precisa realizar é uma etapa muito importante para decidir quais ferramentas usar. A familiaridade com as ferramentas é outro aspecto importante que pode limitar suas opções. Se você está tentando decidir qual linguagem de script [ou programação] aprender, espero que isso seja útil para você.
cmd
é realmente uma monstruosidade, facilmente a pior linguagem de script de shell que eu já tive a infelicidade de usar.
Isto vai depender pra quem você perguntar. Alguns nunca saem de lote, outros adoram vbscript, outros amam PowerShell, outros como AutoIt. Depois, existem os independentes da plataforma, como Python e Perl, que alguns juram por tudo.
Suponho que a "linguagem" de script oficial para Windows seria (e desde o Win95) o Windows Script Host .
Tecnicamente, o WSH não é uma linguagem em si, mas sim um ambiente (não GUI) que expõe interfaces COM para permitir que você use (quase) qualquer linguagem de script que desejar, para executar tarefas do SO, até coisas que não possuem uma maneira nativa incorporada ao idioma (por exemplo, Ruby não tem uma maneira embutida de fazer login no Windows ou TCL / TK não tem uma maneira embutida de mostrar a caixa de diálogo Executar).
Você pode ter visto alguns arquivos WSF que podem incluir vários idiomas em um arquivo, mas geralmente os scripts WSH são escritos em um idioma e distribuídos com uma extensão correspondente à versão de script dessa linguagem (por exemplo, VBS para scripts VisualBasic, PYS para PythonScript, etc. .)
Eu diria que o AutoIt, ele oferece desenvolvimento muito rápido e fácil no Windows e é muito rígido associado a ele. Isso significa que tarefas que normalmente exigem muito código em outros idiomas podem ser executadas literalmente em uma linha no autoit. Recursos como compilação direta para exe também são muito úteis.
Os outros idiomas apontados nesta pergunta (VbScript, PowerShell, Batch) são muito populares e suportados. Se você já conhece uma linguagem de script e se sente à vontade - de qualquer forma, vá com isso.
Se você está prestes a investir na escolha de um novo idioma, sugiro dois idiomas para você, depende do trabalho que você está tentando fazer:
JavaScript (via WSH) - use JavaScript se desejar usar vários Objetos de automação, instanciando-os e chamando seu Modelo de Objetos. Você pode criar um Objeto de automação para praticamente tudo, do servidor Exchange ao WMI e aos documentos do Office. Há um suporte para depuração com o Visual Studio (com o argumento / x). Além disso, um investimento em JavaScript será útil em HTML.
Perl - use Perl se puder iniciar outros programas, manipular sua saída, executar expressões regulares. Embora pareça que esse idioma esteja atualmente em declínio, ainda é muito popular, muito bem suportado por um grande idioma da comunidade. Você também deve considerar esse idioma para se comunicar com outros serviços (não necessariamente Windows), como um JIRA na empresa ou EC2 na Amazon. A depuração é suportada no eclipse com EPIC, que também é um bom ambiente IDE (coloração de sintaxe, etc.). Existem módulos no CPAN para tudo. O conhecimento em Perl será útil quando for necessário automatizar em máquinas que não sejam Windows.
Nos primeiros dias, havia o VBScript seguido pelo Batch. No ambiente corporativo com Windows 7 e Server 2008 R2 puros, a nova linguagem de script Powershell está chamando muita atenção.
Eu recomendo a recomendação para Perl, se você quiser escrever alguns scripts em Perl. As pessoas com quem trabalho utilizaram e recomendaram com êxito o CLR Script (um pouco antigo) e, para a interação de scripts da web, o iMacros
Pode ser quase tudo, dependendo do que você tenta automatizar. Ele varia de arquivos em lote e do PowerShell a autohotkey e Selenium (se você precisar automatizar algumas tarefas relacionadas à GUI).
Geralmente, não é um problema aprender uma, se você precisar adicionar algumas modificações ou suportar scripts já escritos. Se você precisar desenvolver algo novo - escolha o idioma / caminho com base nos requisitos e no que você já sabe.