Quali linguaggi di scripting sono utili per l'automazione di Windows?
Quali linguaggi di scripting sono utili per l'automazione di Windows?
Risposte:
A partire da Windows 7 e Server 2008 è ragionevole considerare PowerShell quando viene fornito con Windows, ed è anche fondamentale amministrare software server come Lync ed Exchange in quanto è disponibile un'intera serie di comandi. C'è un elenco crescente di funzionalità disponibili, vedere Script Center per i dettagli.
Windows Script Host (WSH) è tecnicamente un host di scripting per i motori di script ActiveX. VBScript e JScript (l'implementazione Microsoft di JavaScript) sono i due motori installati per impostazione predefinita. Molti altri sono disponibili come open source, tra cui Perl, PHP e Ruby.
Usando una sintassi simile a VB6 e VB.NET, VBScripts non ha un facile accesso alle classi .NET (Powershell è scritto su .NET quindi ha accesso a tutte le funzioni .NET). VBScript si avvale principalmente del servizio WMI e degli oggetti che espone.
Esempio: questo crea un punto di ripristino.
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
Puoi anche scrivere lo stesso script usando 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");
}
C'è ovviamente il buon vecchio Batch File. Non hanno bisogno di presentazioni.
Scrivo ancora file batch DOS, anche in Windows 7. Per la maggior parte delle attività, funziona ancora abbastanza bene, ed è molto semplice lavorare con (anche, molti dei comandi DOS come "FOR" sono stati migliorati nel tempo e forniscono più opzioni e funzionalità che non erano disponibili più di un decennio fa).
Per me, un file batch DOS è ancora il principale linguaggio di scripting per Windows (sicuramente è tradizionale), ma ognuno ha esigenze e preferenze diverse. Ci sono molte cose che i file batch DOS non possono fare (anche i linguaggi di scripting possono porre dei limiti), e per le rare occasioni in cui l'ho incontrato guardo quali sono le mie altre opzioni (spesso è Perl, o talvolta potrebbe essere per scrivere un piccolo programma o un'intera applicazione).
Comprendere ciò che è necessario realizzare è un passaggio molto importante per decidere quali strumenti utilizzare. La familiarità con gli strumenti è un altro aspetto importante che può limitare le tue opzioni. Se stai cercando di decidere quale linguaggio di scripting [o programmazione] imparare, allora spero che questo ti sia utile.
cmd
è davvero una mostruosità, facilmente il peggior linguaggio di scripting della shell che io abbia mai avuto la sfortuna di usare.
Dipende da chi chiedi. Alcuni non lasceranno mai batch, alcuni amano vbscript alcuni amano powershell, altri come AutoIt. Poi ci sono quelli indipendenti dalla piattaforma come Python e Perl che alcuni giureranno per tutto.
Suppongo che il "linguaggio" ufficiale di scripting per Windows sarebbe (ed è stato da Win95) Windows Script Host .
Tecnicamente, WSH non è un linguaggio a sé stante, ma piuttosto un ambiente (non una GUI) che espone interfacce COM per permetterti di usare (quasi) qualsiasi linguaggio di scripting tu voglia, per fare cose del sistema operativo, anche cose che non hanno un modo nativo incorporato nel lingua (ad esempio, Ruby non ha un modo integrato per accedere a Windows o TCL / TK non ha un modo integrato per mostrare la finestra di dialogo Esegui).
Potresti aver visto alcuni file WSF che possono includere più lingue in un unico file, ma di solito gli script WSH sono scritti in una lingua e distribuiti con un'estensione corrispondente alla versione di scripting di quella lingua (ad esempio VBS per gli script VisualBasic, PYS per PythonScript, ecc. .)
Direi AutoIt, fornisce uno sviluppo molto veloce e facile su Windows ed è molto stretto. Ciò significa che le attività che normalmente richiedono un po 'di codice in altre lingue possono essere eseguite letteralmente in una riga in autoit. Funzionalità come la compilazione diretta per exe sono anche molto utili.
Gli altri linguaggi indicati in questa domanda (VbScript, PowerShell, Batch) sono molto popolari e supportati. Se conosci già un linguaggio di scripting e ti senti a tuo agio, con questo vai avanti.
Se stai per investire nella raccolta di una nuova lingua, ti suggerirei due lingue per te, dipende dal lavoro che stai cercando di fare:
JavaScript (tramite WSH) : utilizzare JavaScript se si desidera utilizzare vari oggetti di automazione istanziandoli e chiamando il loro modello a oggetti. È possibile creare un oggetto di automazione praticamente per tutto, dal server Exchange ai documenti WMI e Office. Esiste un supporto di debug con Visual Studio (con l'argomento / x). Inoltre, un investimento in JavaScript si rivelerà utile in HTML.
Perl : utilizzare Perl se è possibile avviare altri programmi, manipolarne l'output, eseguire espressioni regolari. Anche se sembra che questa lingua sia attualmente in declino, è ancora molto popolare, molto ben supportata con una lingua di grande comunità. Dovresti anche prendere in considerazione questa lingua per comunicare con altri servizi (non necessariamente Windows), come un JIRA sull'azienda o EC2 su Amazon. Il debug è supportato in eclipse con EPIC, che è anche un buon ambiente IDE (colorazione della sintassi, ecc.). Ci sono moduli in CPAN per tutto. La conoscenza del Perl si rivelerà utile quando si dovrà eseguire l'automazione su macchine non Windows.
All'inizio c'era VBScript seguito da Batch, nell'ambiente aziendale con Windows 7 e Server 2008 R2 puri, il nuovo linguaggio di scripting Powershell sta suscitando molta attenzione.
Secondo la raccomandazione per Perl, se hai intenzione di scrivere alcuni script Perl. Le persone con cui lavoro hanno usato e raccomandato con successo lo script CLR (un po 'vecchio), e per lo scripting interazione web, iMacros
Potrebbe essere quasi tutto, a seconda di ciò che si tenta di automatizzare. Varia da file batch e PowerShell a autohotkey e Selenium (se è necessario automatizzare alcune attività correlate alla GUI).
Di solito non è un problema apprenderne uno, se è necessario aggiungere alcune modifiche o supportare script già scritti. Se hai bisogno di sviluppare qualcosa di nuovo, scegli la lingua / il modo in base ai requisiti e ciò che già conosci.