Vous êtes sur la page 1sur 8

Windows PowerShell vs. CMD : quelle est la différence ?

Autrefois, le démarrage d’un IBM 8086, alors à la pointe de la technologie, se faisait à partir d’une disquette.
Vous vous retrouviez alors en face d’un écran vert en mode texte avec un curseur clignotant en face de la
célèbre invite C:\>

Finalement, ce C:\ a été remplacé par une belle interface graphique


et le démarrage se fait maintenant depuis un disque dur.
Mais cette invite de commande (CMD) a survécu pendant plusieurs décennies.

L’invite de commande Windows


Également connue sous le nom de CMD – est l’interface système originale du système d’exploitation
DOS de Microsoft.

Récemment CMD a été mis à jour, ou remplacé par PowerShell,


l’application de ligne de commande que Microsoft a intégrée à partir de Windows 7.

CMD a été l’interface système par défaut jusqu’à Windows 10 build 14791, version qui a vu Microsoft
faire de PowerShell l’option par défaut.

"PowerShell peut vous aider à automatiser des choses allant de la création de


rapports AD à la création de boîtes aux lettres Exchange... et même à contrôler
votre système d'arrosage."

Comparaison entre PowerShell et CMD


Ils sont totalement différents,
PowerShell utilise des cmdlets, qui sont des objets de programmation indépendants

Avant PowerShell, les administrateurs système devaient naviguer dans l’interface graphique pour trouver ces
options et cliquer dans des menus pour les modifier. Ce travail était répétitif et il n’y avait aucun moyen de
l’automatiser à une échelle plus large.

Les tubes ou pipelines :

PowerShell utilise des tubes (ou pipes) pour enchaîner les cmdlets et partager les entrées/sorties .

Un pipeline est une série de commandes connectées par les opérateurs de pipeline () (|ASCII 124).
Dans un pipeline, les commandes sont traitées dans l’ordre de gauche à droite.

Command-1 | Command-2 | Command-3


Dans cet exemple, les objets émis Command-1 sont envoyés à Command-2.
Command-2 traite les objets et les envoie à Command-3.
Command-3 traite les objets et les envoie vers le bas du pipeline.
Étant donné qu’il n’y a plus de commandes dans le pipeline, les résultats sont affichés sur la console.

Les tubes permettent aux utilisateurs de créer des scripts complexes qui transmettent des paramètres et des
données d’une cmdlet à l’autre.

Les utilisateurs peuvent créer des scripts réutilisables pour automatiser ou réaliser des modifications en masse
avec des données variable

Les alias :

L’une des (nombreuses) fonctions géniales de PowerShell est


la possibilité de créer des alias pour différentes cmdlets.

Les alias permettent à un utilisateur de configurer ses propres noms pour différents cmdlets ou scripts, ce qui lui
facilite le passage entre différentes interfaces système.

Avec PowerShell, ‘ls’ et ‘dir’ sont tous deux des alias de la cmdlet ‘Get-ChildItem.’

La connaissance de PowerShell peut être un atout pour chercher un emploi,


ou même être requise pour obtenir un poste, cela vaut donc la peine de s’y investir.
Comment trouver des commandes PowerShell
Les utilisateurs aiment PowerShell parce que c'est un outil puissant.

Mais c'est sa complexité qui lui donne une telle puissance.

Il n'est simplement pas possible ni pratique pour qui que ce soit de retenir l'ensemble des commandes,
cmdlets, options, filtres et autres modes de communication avec PowerShell.

Heureusement, l'éditeur intègre de nombreux outils pour vous aider.

 Saisie semi-automatique
 Get-Command
 Syntaxe
 Longue chaîne ou propriétés d'objet

Saisie semi-automatique
Il est inutile de mémoriser les différentes commandes ou leur orthographe exacte. Tapez get-c dans
l'éditeur et appuyez sur la touche TABULATION.
Get-Command
Comment faire si vous ne connaissez pas le nom de la commande recherchée ?

Dans ce cas, vous pouvez utiliser une commande pour en trouver d'autres: Get-Command

Lorsque vous recherchez des commandes, n'oubliez pas la syntaxe : VERBE-NOM.

En général, les verbes sont Get, Set, Add, Clear, Write et Read,

et les noms des éléments comme les fichiers, serveurs ou autres éléments de votre réseau et de vos
applications.

Get-Command est un outil d'exploration des commandes disponibles sur votre système.

L'histoire de PowerShell
Les commandes PowerShell se nomment « Cmdlet » et se prononcent Commandlette

Les commandes PowerShell ont une syntaxe cohérente et sont faciles à retenir

Format de la syntaxe : Verbe-Nom -Paramètre valeur


Manipuler des dossiers et fichiers
#Lister le contenu d'un répertoire Get-ChildItem -Path h:\ressources

#Lister le contenu d'un répertoire de manière Get-ChildItem -Path h:\ressources -Recurse


recursive

#Lister uniquement les fichiers texte Get-ChildItem -Path h:\ressources -Recurse -Include *.txt

#Exclure les fichiers texte et afficher tout le reste Get-ChildItem -Path h:\ressources -Recurse -Exclude *.txt

#Récupérer que les fichiers Get-ChildItem -Path h:\ressources -File

#Récupérer que les dossiers Get-ChildItem -Path h:\ressources -Directory

#Récupérer les fichiers et dossiers cachés Get-ChildItem -Path h:\ -Hidden

#Récupérer les fichiers et dossiers système Get-ChildItem -Path h:\ -Hidden -System

#Récupérer les fichiers et dossiers en lecteur seul Get-ChildItem -Path h:\ -ReadOnly

#Récupérer la propriété Name et CreationTime Get-ChildItem -Path h:\ressources | Select-Object Name, CreationTime

#Lister un seul élément Get-Item H:\ressources\fichier1.txt


#Récupérer le chemin complet du fichier Get-Item H:\ressources\fichier1.txt | Select-Object FullName
(Get-Item H:\ressources\fichier1.txt).FullName

#Vérifier si un fichier existe (Get-Item H:\ressources\fichier1.txt).Exists

#Date de dernier accès au dossier (Get-Item h:\ressources).LastAccessTime

#Récupérer toutes les propriétés et méthodes Get-Item h:\ressources | get-member

#Tester l'existence d'un fichier ou d'un dossier Test-Path -Path c:\windows


avec la cmdlet test-path

#Savoir dans quel répertoire on se trouve Get-Location


actuellement
#Se placer dans un répertoire précis Set-Location -Path H:\ressources

#Créer un nouveau fichier New-Item -ItemType File -Path h:\ -Name teste.txt -Value "PowerShell"

#Créer un nouveau dossier New-Item -ItemType Directory -Path h:\ -Name DossierTest

#Mettre un fichier en lecture seul Set-ItemProperty -Path h:\test.txt -Name IsReadOnly -Value $true

#Supprimer un fichier Remove-Item -Path H:\teste.txt

#Supprimer un dossier Remove-Item -Path H:\DossierTest

#Supprimer un dossier qui n'est pas vide Remove-Item -Path H:\res -Force

#Copier un fichier Copy-Item -Path H:\ressources\fichier1.txt -Destination h:\fichier1.txt

#Copier un dossier et son contenu Copy-Item -Path H:\ressources\ -Recurse -Destination h:\res

#Déplacer un dossier ou un fichier Move-Item -Path H:\ressources\dossier1 -Destination h:\dossier1

#Renommer un fichier Rename-Item -Path H:\ressources\fichier1.txt -NewName test.txt

#Démarrer un process Start-Process cmd

#Démarrer un process avec des arguments Start-Process cmd -ArgumentList "/k ipconfig"

#Arrêter un process Start-Process notepad


Get-Process notepad | Stop-Process
Gestion des Utilisateurs
#Lister tous les utilisateurs Get-LocalUser

#Obtenir des informations sur un compte Get-LocalUser -Name admin | Select-Object *


utilisateur

#Créer un nouvel utilisateur sans mot de passe New-LocalUser -Name User1 -Description "Utilisateur test" -FullName "Jean
Dupont" -NoPassword

#Renommer un utilisateur Rename-LocalUser -Name user1 -NewName user4

#Modifier les paramètres d'un compte utilisateur Set-LocalUser -Name user1 -AccountExpires "12/02/2019"

#Désactiver un compte utilisateur Disable-LocalUser -Name user1

#Activer un compte utilisateur Enable-LocalUser -Name user1

#Supprimer un utilisateur Remove-LocalUser -Name user1


Gestion des groupes
#Lister tous les groupes Get-LocalGroup

#Récuperer un seul groupe Get-LocalGroup -Name administrateurs | Select-Object *

#Créer un nouveau groupe New-LocalGroup -Name GROUP_TEST -Description "Test nouveau groupe"

#Renommer un groupe Rename-LocalGroup -Name group_test -NewName group_user1

#Modifier un groupe Set-LocalGroup -Name group_user -Description "Test nouvelle description"

#Supprimer un groupe Remove-LocalGroup -Name group_user1

Gestion des membres de groupes


#Lister les membres d'un groupe Get-LocalGroupMember -Name administrateurs

#Ajouter un membre à un groupe Add-LocalGroupMember -Group administrateurs -Member user1

#Supprimer un membre d'un groupe Remove-LocalGroupMember -Group administrateurs -Member user1

paramètres réseau
#Tester la connexion vers un ou plusieurs serveurs Test-Connection google.fr, youtube.com

#Afficher toutes les cartes réseaux Get-NetAdapter

#Afficher les cartes réseaux cachées Get-NetAdapter -IncludeHidden

#Récupérer toutes les propriétés Get-NetAdapter -InterfaceIndex 5 | Select-Object -Property *

#Récupérer l'adresse mac (Get-NetAdapter -InterfaceIndex 5).MacAddress

#Lister les cartes réseaux avec leur configuration IP Get-NetIPAddress

Vous aimerez peut-être aussi