Vous avez déjà croisé cette structure en leçon 1.4 sans qu’on s’y attarde vraiment : Get-Process, Start-Service, New-ADUser. Sophie vous arrête devant le tableau des postes de l’atelier : « Ce n’est pas juste une habitude d’écriture. C’est ce qui te permettra un jour de deviner une commande que tu n’as jamais vue. »
Une chaîne de montage sans surprise
Sur une vraie chaîne de montage, chaque poste est étiqueté de façon standardisée : on sait immédiatement si c’est un poste de montage, de contrôle ou de réparation. PowerShell applique exactement ce principe à ses cmdlets, avec un format figé :
Verbe-Nom- Le Verbe décrit l’action (
Get,Set,New,Remove,Start,Stop…) - Le Nom décrit la pièce sur laquelle on agit, toujours au singulier (
Process,Service,ADUser,Item…)
Ce n’est pas une convention informelle que certains développeurs suivent et d’autres non : Microsoft impose une liste fermée de verbes approuvés. Vous pouvez la consulter directement :
Get-VerbCette commande renvoie plusieurs centaines de verbes, classés par catégorie (Common, Data, Lifecycle, Security…). Un module qui inventerait son propre verbe en dehors de cette liste déclenchera même un avertissement au chargement.
Pourquoi cette rigueur change tout au quotidien
Reprenons un exemple concret. Vous savez que Get-Service liste les services. Sans avoir jamais tapé la commande suivante, vous pouvez déjà deviner :
Start-Service: démarre un serviceStop-Service: arrête un serviceRestart-Service: redémarre un serviceSet-Service: modifie la configuration d’un service
C’est exactement ce qui vous a permis de réussir l’étape 5 du TP de la section précédente sans documentation. Cette prévisibilité est un gain de temps énorme une fois qu’on connaît une dizaine de verbes courants :
| Verbe | Action |
|---|---|
Get | Récupérer une information |
Set | Modifier une configuration existante |
New | Créer un nouvel élément |
Remove | Supprimer un élément |
Start / Stop | Démarrer / arrêter un processus ou service |
Test | Vérifier une condition (renvoie souvent $true/$false) |
Import / Export | Charger / sauvegarder des données |
Et les alias, dans tout ça ?
Vous croiserez parfois des raccourcis comme ls, dir, cat, gci, ou % à la place de Get-ChildItem ou ForEach-Object. Ce sont des alias, pratiques dans le terminal pour aller vite, mais à éviter dans un script destiné à être relu ou maintenu par quelqu’un d’autre.
Get-Alias lsCette commande vous révèle que ls n’est qu’un raccourci vers Get-ChildItem.
Retenez ce réflexe : face à une cmdlet inconnue dans un script Nordika, décomposez-la en Verbe-Nom. Neuf fois sur dix, ça suffit à comprendre ce qu’elle fait avant même d’ouvrir l’aide.
Dans la prochaine leçon, on ouvre le capot d’un objet avec Get-Member, pour voir concrètement ce qui circule sur notre tapis roulant.