Quels langages de script sont utiles pour l'automatisation Windows?
Quels langages de script sont utiles pour l'automatisation Windows?
Réponses:
À partir de Windows 7 et de Server 2008, il est raisonnable de considérer PowerShell lorsqu’il est livré avec Windows. Il est également fondamental d’administrer un logiciel serveur tel que Lync et Exchange, car toute une série de commandes sont disponibles pour eux. La liste des fonctionnalités disponibles ne cesse de s'allonger . Pour plus d'informations , reportez-vous au Centre de scripts .
Windows Script Host (WSH) est techniquement un hôte de script pour les moteurs de script ActiveX. VBScript et JScript (implémentation de JavaScript par Microsoft) sont les deux moteurs installés par défaut. Beaucoup d'autres sont disponibles en open source, notamment Perl, PHP et Ruby.
En utilisant une syntaxe similaire à VB6 et VB.NET, les VBScripts ne disposent pas d'un accès facile 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: Ceci crée 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
Vous pouvez également écrire le même script 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");
}
Il y a bien sûr le bon vieux fichier batch. Ils n'ont pas besoin d'intro.
J'écris toujours des fichiers de commandes DOS, même sous Windows 7. Pour la plupart des tâches, cela fonctionne toujours très bien et il est très simple de travailler avec (également, de nombreuses commandes DOS telles que "FOR" ont été améliorées au fil du temps et fournissent plus options et fonctionnalités qui n'étaient pas disponibles il y a plus de dix ans).
Pour moi, un fichier de commandes DOS est toujours le langage de script principal de Windows (certes, il est classique), mais tout le monde a des besoins et des préférences différents. Il y a beaucoup de choses que les fichiers de commandes DOS ne peuvent pas faire (les langages de script peuvent aussi poser des limites), et pour les rares occasions où je l’ai rencontrée, j’examine ensuite quelles sont mes autres options (souvent, il s’agit de Perl). être pour écrire un petit programme ou une application entière).
Comprendre ce que vous devez accomplir est une étape très importante pour décider des outils à utiliser. La familiarité avec les outils est un autre aspect important qui peut limiter vos options. Si vous essayez de choisir le langage de script [ou de programmation] à apprendre, nous espérons que cela vous sera utile.
cmd
vraiment une monstruosité, facilement le langage de script de shell TRÈS que je n’ai jamais eu le mal à utiliser.
Cela dépend de qui vous demandez. Certains ne quitteront jamais le lot, certains aimeront, certains aimeront l'amour, d'autres, comme AutoIt. Ensuite, il y a les plates-formes indépendantes comme Python et Perl que certains ne jurent que par tout.
Je suppose que le «langage» de script officiel de Windows serait (et ce depuis Win95) Windows Script Host .
Techniquement, WSH n’est pas un langage en soi, mais plutôt un environnement (et non une interface graphique) qui expose les interfaces COM pour vous permettre d’utiliser (presque) le langage de script de votre choix, de faire des choses avec le système d’exploitation, même avec des éléments qui ne sont pas intégrés de manière native. langue (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 certains fichiers WSF pouvant inclure plusieurs langues dans un seul fichier, mais les scripts WSH sont généralement écrits dans une langue et distribués avec une extension correspondant à la version de script de cette langue (par exemple, les scripts VBS pour VisualBasic, PYS pour PythonScript, etc.). .)
Je dirais que AutoIt, il fournit un développement très rapide et facile sur les fenêtres et est très serré. Cela signifie que les tâches qui prennent généralement assez de code dans d'autres langues peuvent être effectuées littéralement sur une ligne dans autoit. Des fonctionnalités telles que la compilation directe au format exe sont également très utiles.
Les autres langages pointés dans cette question (VbScript, PowerShell, Batch) sont très populaires et pris en charge. Si vous connaissez déjà un langage de script et que vous vous sentez à l'aise, ne vous y trompez pas.
Si vous êtes sur le point d'investir dans le choix d'une nouvelle langue, je vous suggérerais deux langues, cela dépend du travail que vous tentez de faire:
JavaScript (via WSH) - utilisez JavaScript si vous souhaitez utiliser plusieurs objets Automation en les instanciant et en les appelant dans leur modèle d'objet. Vous pouvez créer un objet d'automatisation pour à peu près tout, du serveur Exchange au document WMI en passant par les documents Office. Il existe un support de débogage avec Visual Studio (avec l'argument / x). En outre, un investissement en JavaScript s'avérera utile en HTML.
Perl - utilisez Perl si vous le pouvez pour lancer d'autres programmes, manipuler leur sortie, effectuer une expression régulière. Bien qu’il semble que cette langue soit actuellement en déclin, c’est toujours une langue très populaire, très bien soutenue par une langue de grande communauté. Vous devez également envisager d'utiliser ce langage pour communiquer avec d'autres services (pas nécessairement Windows), tels qu'un JIRA sur l'entreprise ou EC2 sur Amazon. Le débogage est pris en charge dans eclipse avec EPIC, qui constitue également un bon environnement IDE (coloration de la syntaxe, etc.). Il existe des modules dans CPAN pour tout. La connaissance de Perl s'avérera utile lorsque vous devez automatiser sur des machines autres que Windows.
Au tout début, il y avait VBScript suivi de Batch. Dans l'environnement d'entreprise avec Windows 7 pur et Server 2008 R2, le nouveau langage de script Powershell suscite beaucoup d'attention.
J'appuie la recommandation pour Perl, si vous êtes prêt à écrire des scripts Perl. Les personnes avec lesquelles je travaille ont utilisé et recommandé avec succès CLR Script (un peu vieux), et pour les scripts d’interaction Web, iMacros
Cela peut être presque n'importe quoi, selon ce que vous essayez d'automatiser. Cela variera des fichiers de commandes et de PowerShell à autohotkey et Selenium (si vous avez besoin d'automatiser certaines tâches liées à l'interface graphique).
En règle générale, il n’est pas gênant d’en apprendre un si vous devez ajouter des modifications ou prendre en charge des scripts déjà écrits. Si vous avez besoin de développer quelque chose de nouveau, choisissez une langue / méthode en fonction de vos besoins et de ce que vous savez déjà.