Depuis longtemps les actions d'automatisation sous Windows étaient réalisées par des commandes MS-DOS. Efficaces mais archaïques, ces commandes ont été remplacées par un language plus complet et permettant d'interagir avec l'ensemble des composants disponibles sur les plateformes Microsoft : Powershell.
Powershell permet d'aller au-delà des limites des interfaces graphiques en étant également un langage OpenSource et également disponible sur les plateformes Linux, même si ce n'est pas la cible prioritaire. Powershell existe officiellement depuis 2006 (powershell 1.0) et continue d'évoluer régulièrement.
Une variable va permettre de recueillir une valeur, un objet ou une collection d'objets, en mémoire. Leur nom est toujours précédé d'un symbole dollar ($) et sont automatiquement typées lors de l'affectation de valeurs (sauf si elles ont été déclarées au préalable). Généralement, la déclaration d'une variable s'effectue simplement par instanciation (affectation par une égalité).
$process = Get-Process
.
Pour afficher le contenu d'une variable, il suffirait, pour l'exemple précédent, de noter $process
Attention : les variables Powershell ne sont valables que pour le script qui les exécute. Aucune information n'est conservée en mémoire globale.
Powershell dispose de types basiques, couramment utilisés par tous les langages (comme int ou string), mais peut également utiliser tous les types de .Net (nous n'en parlerons pas plus avant dans ce document). Les types les plus courants sont les suivants :
Type | Description |
Int | Représente les entiers entre -2 147 483 648 et 2 147 483 647 inclus. En clair, le type de données int est stocké comme un entier de quatre octets (32 bits). |
Double | L'intervalle s'étend de 10308, avec une précision de 15 chiffres, jusqu'à 10-323 |
String | Chaine de caractères sous forme Unicode |
Boolean | Représente une valeur booléenne qui peut être vraie ($true) ou fausse ($false) |
Array | Représente un tableau contenant de multiples valeurs, avec des données de type différent. |
Object | Représente un objet générique du système |
Les commandes Powershell (nommées cmdlets) sont toujours formées par un doublon Verbe-Action