49 votes

Quels sont les langages de script utiles sous Windows ?

Quels sont les langages de script utiles pour l'automatisation de Windows ?

36voto

csmba Points 2440

Windows dispose de 3 solutions intégrées à prendre en compte :

  1. PowerShell
  2. Hôte de script Windows
    a. VBScript
    b. JScript
  3. Fichiers par lots

PowerShell (v2.0)

À partir de Windows 7 et du serveur 2008, il est raisonnable d'envisager PowerShell car il est fourni avec Windows et est également fondamental pour l'administration des logiciels de serveur tels que Lync et Exchange. La liste des fonctionnalités disponibles ne cesse de s'allonger ; voir script Centre pour plus de détails.

Hôte de script Windows

L'hôte Windows script (WSH) est techniquement un hôte de script pour les moteurs de script ActiveX. VBScript et JScript (l'implémentation de JavaScript par Microsoft) sont les deux moteurs installés par défaut. De nombreux autres moteurs sont disponibles auprès de la communauté des logiciels libres, notamment Perl, PHP et Ruby.

VBScript

Utilisant une syntaxe similaire à VB6 et VB.NET, les scripts VBS n'ont pas facilement accès aux classes .NET (Powershell est écrit sur .NET et a donc accès à toutes les fonctions .NET). VBScript tire principalement parti du service WMI et des objets qu'il expose.

Exemple : création d'un point de restauration.

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

JScript

Le même script peut être écrit en utilisant 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");
}

Fichiers de commandes par lots

Il y a bien sûr le bon vieux fichier Batch. Ils n'ont pas besoin d'être présentés.

16voto

Randolf Richardson Points 14516

J'écris encore des fichiers batch DOS, même sous Windows 7. Pour la plupart des tâches, cela fonctionne encore très bien et c'est très simple à utiliser (en outre, de nombreuses commandes DOS telles que "FOR" ont été améliorées au fil du temps et offrent davantage d'options et de fonctionnalités qui n'étaient pas disponibles il y a plus de dix ans).

Pour moi, un fichier batch DOS reste le principal langage de script pour Windows (il est certainement traditionnel), mais chacun a des besoins et des préférences qui diffèrent. Il y a beaucoup de choses que les fichiers batch DOS ne peuvent pas faire (les langages de script peuvent aussi poser des limites), et pour les rares occasions où j'ai rencontré cela, je regarde alors quelles sont mes autres options (souvent Perl, ou parfois pour écrire un petit programme ou une application entière).

Comprendre ce que vous devez accomplir est une étape très importante dans le choix des outils à utiliser. La familiarité avec les outils est un autre aspect important qui peut limiter vos options. Si vous essayez de décider quel langage de script [ou de programmation] apprendre, j'espère que ce qui suit vous sera utile.

10voto

MaQleod Points 12844

Cela dépend de la personne à qui l'on s'adresse. Certains ne quitteront jamais le batch, d'autres aiment vbscript, d'autres powershell, d'autres encore AutoIt. Et puis il y a ceux qui sont indépendants de la plate-forme, comme Python et Perl, que certains ne jurent que par eux.

4voto

egzplicit Points 111

Je dirais AutoIt, qui permet un développement très rapide et facile sous Windows et qui est étroitement lié à ce dernier. Cela signifie que des tâches qui nécessitent habituellement beaucoup de code dans d'autres langages peuvent être effectuées en une seule ligne dans AutoIt. Des fonctionnalités telles que la compilation directe en exe sont également très utiles.

4voto

Ben Collins Points 11318

Je suppose que le "langage" de script officiel pour Windows serait (et a été depuis Win95) Windows script Hôte .

Techniquement, WSH n'est pas un langage en soi, mais plutôt un environnement (pas d'interface graphique) qui expose la COM des interfaces permettant d'utiliser (presque) n'importe quel langage de script pour faire des choses liées au système d'exploitation, même des choses qui ne sont pas intégrées dans le langage (par exemple, Ruby n'a pas de moyen intégré de se connecter à Windows ou TCL/TK n'a pas de moyen intégré d'afficher la boîte de dialogue Exécuter).

Vous avez peut-être vu des fichiers WSF qui peuvent inclure plusieurs langues dans un seul fichier, mais en général les scripts WSH sont écrits dans une seule langue et distribués avec une extension correspondant à la version de script de cette langue (par exemple VBS pour VisualBasic scripts, PYS pour PythonScript, etc.)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X