Utilisations de Powershell
Utilisations de Powershell[modifier | modifier le wikicode]
Installation de Powershell Core[modifier | modifier le wikicode]
Winget est un outil en ligne de commande qui permet de découvrir, d’installer, de mettre à niveau, de supprimer et de configurer des applications sur des ordinateurs clients Windows.
Winget est l’interface cliente du service Gestionnaire de package Windows.
Commande pour recherche la version la plus récente de Powershell :
winget search Microsoft.PowerShell

Installer Powershell en utilisant le paramètre id :
winget install --id Microsoft.Powershell --source winget

L’outil Powershell Corre est alors disponible
Les outils de Powershell[modifier | modifier le wikicode]
Deux outils sont à disposition (ligne de commandes ou éditeur graphique) accessibles par le menu Windows
Windows Powershell (ligne de commandes):

Windows Powershell ISE (ligne de commandes et éditeur) :

Les touches les plus intéressantes :[modifier | modifier le wikicode]

Exemple avec la touche F7 :

Une fois la commande retrouvée dans l’historique, vous pouvez soit presser la touche [Entrée] pour la sélectionner et l’exécuter, soit presser la flèche droite (ou gauche) pour modifier la commande avant de l’exécuter.
La touche tabulation [tab] permet de compléter le nom des commandes, le nom des paramètres et les chemins d’accès aux fichiers et dossiers.
L’action successive de la touche tabulation [tab] liste les éléments commençant par les caractères spécifiés.

Obtenir de l’aide sur une commande[modifier | modifier le wikicode]
Afficher l’aide sur la commande Get-Alias
Afficher l’aide avec les exemples sur la commande Get-Alias
En vous aidant de cette aide : Afficher tous les alias dont le nom commence par la lettre g
Get-Alias -Name *g

Afficher la commande qui correspond à l’alias dont le nom est sl Get-Alias -Name sl*

Afficher tous les alias dont la définition est Get-ChildItem
Get-Alias -Definition Get-ChildItem

A partir de la commande Get-PSDrive, afficher les informations du volume nommé C :
Get-PSDrive C

Afficher les méthodes et les propriétés des objets retournés par la commande Get-Location :
Get-Location | Get-Member

Afficher les méthodes et les propriétés des objets retournés par la commande Get-PSDrive :
Get-PSDrive | Get-Member

Gérer les fichiers et les dossiers[modifier | modifier le wikicode]
Afficher le chemin du dossier courant
Get-Location

Se déplacer à la racine de la partition C: (chemin c:\)
Set-Location c:\

Afficher la liste des dossiers et fichiers
Get-ChildItem

A cet emplacement, créer un dossier nommé testPowerShell
New-Item c:\testPowerShell -ItemType directory

Se déplacer dans le dossier c:\testPowerShell
Set-Location C:\testPowerShell

Créer un dossier nommé testdossier
New-Item testdossier -ItemType directory

Créer un fichier nommé test1.txt, contenant la phrase "Tp PowerShell 1"
New-Item test1.txt -ItemType file -Value "Tp PowerShell 1"

Afficher la liste des dossiers et fichiers
Get-childItem

Copier le fichier test1.txt sous le nom test2.txt
Copy-Item .\test1.txt -Destination test2.txt
Renommer le fichier test1.txt avec le nom essai1.txt
Rename-Item .\test1.txt -NewName essai1.txt
Copier le fichier essai1.txt dans le dossier testdossier\essai1.txt
Copy-Item .\essai1.txt -Destination .\testdossier\essai1.txt
Afficher la liste des fichiers du dossier et des sous-dossiers de testPowerShell
Get-ChildItem -Recurse

Copier le dossier testdossier (avec ses fichiers) dans un nouveau dossier test2dossier
Copy-Item .\testdossier -Destination test2dossier -Recurse
Déplacer le fichier test2.txt dans le dossier testdossier
Move-Item .\test2.txt -Destination .\testdossier\test2.txt
Supprimer le dossier test2dossier (avec ses fichiers)
Remove-Item .\test2dossier -Recurse
Tester l’existence du dossier c:\windows
Test-Path C:\Windows

Afficher le contenu du dossier c:\windows
Get-ChildItem C:\Windows

Afficher la liste des fichiers .exe du dossier c:\windows
Get-ChildItem C:\Windows\*.exe

ou
Get-ChildItem C:\Windows\* -Include *.exe

Accès aux propriétés et aux méthodes d’un objet[modifier | modifier le wikicode]
Affecter à la variable $loc, le résultat de la commande Get-Location.
$loc=Get-Location
Afficher les propriétés et les méthodes de la variable $loc
$loc | Get-Member

Afficher le chemin du dossier courant contenu dans cette variable.
$loc.Path

Afficher les informations sur le disque contenu par cette variable.
$loc.Drive

Afficher les informations sur le ‘Provider’ contenu par cette variable.
$loc.Provider

Affecter à la variable $lect, le résultat de la commande Get-PSDrive –Name C
$lect=Get-PSDrive -Name C
Voir le contenu d'une variables
Echo $video
Afficher les propriétés et les méthodes de la variable $lect
$lect | Get-Member

A partir de la variable $lect, afficher la description du lecteur C,
$lect.Description

Afficher la taille en octet du volume utilisé
$lect.Used

$lect.Used/1GB

Afficher la taille en octet du volume libre.
$lect.Free

$lect.Free/1GB

Affecter à la variable $fichier, le résultat de la commande Get-ChildItem c:\testPowerShell\essai1.txt
$fichier=Get-ChildItem C:\testPowerShell\essai1.txt
Afficher les propriétés et les méthodes de la variable $fichier
$fichier | Get-Member

A partir de la variable $fichier, afficher le nom du fichier,
$fichier.Name

Afficher la taille en octet du fichier,
$fichier.Length

Afficher le nom complet du fichier (avec le chemin),
$fichier.FullName

Afficher l’extension seule du fichier,
$fichier.Extension

Afficher la date du dernier accès.
$fichier.LastAccessTime

$fichier.CopyTo("C:\testPowerShell\essai2.txt")

A partir de la variable $fichier, supprimer le fichier essai1.txt
$fichier.Delete()
Vérifier avec la commande Get-ChildItem
Get-ChildItem

Lancer la commande Get-Process et vérifier que le Bloc-notes soit bien dans les processus actifs
Get-Process

Affecter à la variable $proc, le résultat de la commande Get-Process notepad
$proc=Get-Process notepad
Afficher les propriétés et les méthodes de la variable $proc
$proc | Get-Member

A partir de la variable $proc, afficher la description du processus,
$proc.Description
Afficher le chemin d’accès de l’exécutable.
$proc.Path

A partir de la variable $proc, supprimer (tuer) le processus du Bloc-notes
$proc.Kill()
Accès aux informations du système[modifier | modifier le wikicode]
Afficher toutes les informations concernant le contrôleur vidéo de votre système
Get-WmiObject win32_videocontroller

Affecter à la variable $video, le résultat de la commande précédente
$video=Get-WmiObject win32_videocontroller
Afficher les propriétés et les méthodes de la variable $video
$video | Get-Member

A partir de la variable $video, afficher le nom du contrôleur,
$video.Name

La version du driver,
$video.DriverVersion

Le mode video (résolution)
$video.VideoModeDescription

Le nom du processeur video
$video.VideoProcessor

Afficher les informations concernant le système d’exploitation
Get-WmiObject win32_operatingsystem

Affecter à la variable $os, le résultat de la commande précédente
$os=Get-WmiObject win32_operatingsystem
A partir de la variable $os,
$os | Get-Member

Afficher le nom du système,
$os.Name

Le type d’architecture (32-64 bits),
$os.OSArchitecture

La date d’installation.
$os.InstallDate

Afficher les informations concernant les disques logiques de votre système
Get-WmiObject win32_logicaldisk

Affecter à la variable $vol, le résultat de la commande précédente
$vol=Get-WmiObject win32_logicaldisk
Attention, si votre système comporte plusieurs disques logiques, la variable $vol est un tableau d’objets (voir annexe 4)
A partir de la variable $vol, et pour le premier disque logique seulement,
$vol | Get-Member

Afficher le nom du volume,
$vol[0].name

Afficher la taille,
$vol[0].size/1GB

Afficher l’espace libre,
$vol[0].freeSpace/1GB

Afficher le système de fichiers.
$vol[0].filesystem

Configurer le réseau[modifier | modifier le wikicode]
- Afficher les interfaces du poste
Get-NetIPInterface

- Afficher la configuration IP après l'application des changements
Get-NetIPAddress -InterfaceAlias Ethernet0

- Configurer l'adresse IP statique
New-NetIPAddress -InterfaceAlias Ethernet0 -IPAddress 192.168.11.16 -PrefixLength 27 -DefaultGateway 192.168.11.66

- Configurer les serveurs DNS
Set-DnsClientServerAddress -InterfaceAlias Ethernet0 -ServerAddresses 8.8.8.8, 8.8.4.4
- Afficher la configuration DNS actuelle
Get-DnsClientServerAddress -InterfaceAlias Ethernet0
