TP PowerShell
SI 7 – SIO 2
Tristan Martens
Labo 1
Obtenir de l’aide sur une commande
Afficher l’aide sur la commande Get-Allias
Afficher l’aide avec les exemples sur la commande Get-Alias
Afficher tous les alias dont le nom commence par la lettre g
Afficher la commande qui correspond à l’alias dont le nom est sl
Afficher tous les alias dont la définition est Get-ChildItem
Afficher les informations du volume nommé C
Afficher les informations du volume nommé C
Afficher les méthodes et les propriétés des objets retournés par la commande Get-Location
Afficher les méthodes et les propriétés des objets retournés par la commande Get-PSDrive
Gérer les fichiers et les dossiers
Afficher le chemin du dossier courant
Se déplacer à la racine de la partition C: (chemin c:\)
A cet emplacement, créer un dossier nommé testPowerShell
Se déplacer dans le dossier c:\testPowerShell
Créer un dossier nommé testdossier
Créer un fichier nommé [Link], contenant la phrase "Tp PowerShell 1"
Afficher la liste des dossiers et fichiers
Copier le fichier [Link] sous le nom [Link], Renommer le fichier [Link] avec le nom [Link],
Copier le fichier [Link] dans le dossier testdossier\[Link]
Afficher la liste des fichiers du dossier et des sous-dossiers de testPowerShell
Copier le dossier testdossier (avec ses fichiers) dans un nouveau dossier test2dossier, Déplacer le
fichier [Link] dans le dossier testdossier, Supprimer le dossier test2dossier (avec ses fichiers)
Tester l’existence du dossier c:\windows
Afficher le contenu du dossier c:\windows
Afficher la liste des fichiers .exe du dossier c:\windows
Accès aux propriétés et aux méthodes d’un objet
Affecter à la variable $loc, le résultat de la commande Get-Location.
Afficher les propriétés et les méthodes de la variable $loc
Afficher le chemin du dossier courant contenu dans cette variable.
Afficher les informations sur le disque contenu par cette variable.
Afficher les informations sur le ‘Provider’ contenu par cette variable.
Affecter à la variable $lect, le résultat de la commande Get-PSDrive –Name C
Afficher les propriétés et les méthodes de la variable $lect
A partir de la variable $lect, afficher la description du lecteur C,
Afficher la taille en octet du volume utilisé,
Afficher la taille en octet du volume libre.
Affecter à la variable $fichier, le résultat de la commande Get-ChildItem c:\testPowerShell\[Link]
Afficher les propriétés et les méthodes de la variable $fichier
A partir de la variable $fichier, afficher le nom du fichier,
Afficher la taille en octet du fichier,
Afficher le nom complet du fichier (avec le chemin),
Afficher l’extension seule du fichier,
Afficher la date du dernier accès.
A l’aide d’une méthode de la variable $fichier, copier ce fichier dans un nouveau fichier nommé
C:\TestPowerShell\[Link]
A partir de la variable $fichier, supprimer le fichier [Link]
Vérifier avec la commande Get-ChildItem
Lancer la commande Get-Process et vérifier que le Bloc-notes soit bien dans les processus actifs
Affecter à la variable $proc, le résultat de la commande Get-Process notepad
Afficher les propriétés et les méthodes de la variable $proc
A partir de la variable $proc, afficher la description du processus,
Afficher le chemin d’accès de l’exécutable.
Accès aux informations du système
Afficher toutes les informations concernant le contrôleur vidéo de votre système
Affecter à la variable $video, le résultat de la commande précédente
Afficher les propriétés et les méthodes de la variable $video
Afficher les propriétés et les méthodes de la variable $video
La version du driver,
Le mode video (résolution)
Le nom du processeur video
Afficher les informations concernant le système d’exploitation
Affecter à la variable $os, le résultat de la commande précédente
A partir de la variable $os,
Afficher le nom du système,
Le type d’architecture (32-64 bits),
La date d’installation.
Afficher les informations concernant les disques logiques de votre système
Affecter à la variable $vol, le résultat de la commande précédente
A partir de la variable $vol, et pour le premier disque logique seulement,
Afficher le nom du volume,
Afficher la taille,
Afficher l’espace libre,
Afficher le système de fichiers.
Labo 2
Exercice 1. Accès aux comptes locaux du système :
Modifier le script lastlogin.ps1 pour qu’il affiche ces informations en plus de la date de dernière
connexion. Tester (si rien ne s’affiche, c’est que la propriété n’est pas renseignée).
# Affiche la date de dernière connexion
# d'un compte local du système
$nom=Read-Host -Prompt "Saisir un nom de compte local"
$compte=[ADSI]"WinNT://./$nom"
if ($[Link]){
Write-Host $[Link]
Write-Host $[Link]
Write-Host $[Link]
}
else{
Write-Host "$nom non trouvé"
}
Exercice 2. Ajout d’un compte local du système
Modifier le script ajoutCompte.ps1 pour que le nom complet soit également saisi et renseigné au
moment de l’ajout du compte.
# Ajoute un compte dans la base locale du système
# à partir de la saisie du nom et de la description
$local=[ADSI]"WinNT://."
$nom=Read-Host -Prompt "Saisir un nom"
$nomcomplet=Read-Host -Prompt "Saisir le nom complet"
$description=Read-Host -Prompt "Saisir une description"
$compte=[ADSI]"WinNT://./$nom"
if (!$[Link]){
$utilisateur=$[Link]("user",$nom)
$[Link]("FullName",$nomcomplet)
$[Link]("Description",$description)
$[Link]()
Write-Host "$nom ajouté"
}
else{
Write-Host "$nom existe déjà"
}
Exercice 3. Parcours d’un fichier texte contenant les informations des
comptes utilisateurs
Modifier le script lireFichier.ps1 pour que le nom complet et la description soient également affichés
en dessous du nom du compte. Tester.
# Script de parcours d'un fichier texte
# Contenu du fichier : nomCompte/nomComplet/Description
# Affiche le nom du compte
$fichier="C:\testPowerShell\[Link]"
if (Test-Path $fichier){
$colLIgnes=Get-Content $fichier
foreach($ligne in $colLignes){
$tabCompte=$[Link]("/")
Write-Host $tabCompte[0]
Write-Host $tabCompte[1]
Write-Host $tabCompte[2]
}
}
else{
Write-Host "$fichier pas trouvé"
}
A l’aide des deux derniers scripts, ajoutCompte.ps1 et lireFicher.ps1, écrire un script qui permet
d’ajouter dans la base locale du système, tous les comptes contenus dans le fichier [Link]
$local=[ADSI]"WinNT://."
$fichier="C:\testPowerShell\[Link]"
if (Test-Path $fichier){
$colLIgnes=Get-Content $fichier
foreach($ligne in $colLignes){
$tabCompte=$[Link]("/")
$nom=$tabCompte[0]
$nomComplet=$tabCompte[1]
$descrption=$tabCompte[2]
$compte=[ADSI]"WinNT://./$nom"
if (!$[Link]){
$utilisateur=$[Link]("user",$nom)
$[Link]("FullName",$nomcomplet)
$[Link]("Description",$description)
$[Link]()
Write-Host "$nom ajouté"
}
else{
Write-Host "$nom existe déjà"
}
}
}
else{
Write-Host "$fichier pas trouvé"
}
Exercice 4. Suppressions de comptes utilisateurs
Réaliser les modifications pour que la suppression concerne également les comptes test01 et test02
créés au paragraphe 2.
Il suffit de rajouter les comptes test01 et test02 dans le fichier [Link].
Exécuter le script et vérifier si tous les comptes créés ont été supprimés.