TP1 - PowerShell en ligne de commande
Ce travail pratique compte pour 20% de la note finale.
La remise doit se faire au plus tard avant le début du cours de mardi le 22 septembre.
Pour faire votre TP, vous devez d'abord télécharger le fichier de départ en format ZIP:
- tp1.ps1
- data.csv
À chacune des questions, répondez en inscrivant la ligne de commande dans le fichier PS1.
Utilisez seulement des commandes PowerShell (pas de commandes externes). Vous pouvez utiliser les alias et les paramètres positionnels si vous le souhaitez.
Pour remettre le TP, faites un fichier nommé TP1_1234567.zip
où 1234567 est votre numéro matricule, puis joignez-le au devoir dans Teams.
Ce TP est fait pour être testé sur un poste de travail d'un laboratoire informatique au collège. Si vous réalisez ce TP à la maison, il se peut que vos commandes ne se comportent pas correctement. Assurez-vous de tester ce TP au CÉGEP avant la remise.
Question 1 (10 points)
La commande Get-NetAdapter
permet d’obtenir la liste des adapteurs réseau (Ethernet, Wi-Fi, etc.) installés dans l’ordinateur. Il existe aussi d’autres commandes Get-NetAdapter*
pour obtenir de l’information plus spécifique sur les adapteurs réseau.
a) Générez un rapport, sous forme de tableau, de tous les adapteurs réseau installés sur l'ordinateur, avec trois colonnees: le nom de l’adapteur, son état (connecté ou non) et son adresse MAC. (2 points)
Voici un exemple de ce que la commande devrait retourner (bien sûr cela pourrait varier légèrement d'un poste à l'autre).
Name Status MacAddress
---- ------ ----------
Ethernet 2 Disconnected 00-1B-21-F0-39-3C
Ethernet Disconnected 00-1B-21-F0-39-D7
Connexion au réseau local 2 Disconnected
Ethernet 3 Up 4C-D7-17-9E-49-B5
vEthernet (Default Switch) Up 00-15-5D-E9-2B-2B
VMware Network Adapter VMnet1 Up 00-50-56-C0-00-01
VMware Network Adapter VMnet8 Up 00-50-56-C0-00-08
Connexion au réseau local Disconnected 00-FF-39-DE-61-0F
b) Obtenez le nombre d’adapteurs réseau installés sur votre machine (et seulement le nombre). (2 points)
8
c) Obtenez la liste des adapteurs qui sont connectés seulement. (2 points)
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
Ethernet 3 Intel(R) Ethernet Connection (17) I219… 11 Up 4C-D7-17-9E-49-B5 1 Gbps
vEthernet (Default Switc… Hyper-V Virtual Ethernet Adapter 15 Up 00-15-5D-E9-2B-2B 10 Gbps
VMware Network Adapte...1 VMware Virtual Ethernet Adapter for VM… 6 Up 00-50-56-C0-00-01 100 Mbps
VMware Network Adapte...8 VMware Virtual Ethernet Adapter for VM… 5 Up 00-50-56-C0-00-08 100 Mbps
d) Obtenez la liste des adapteurs physiques (qui ne sont pas virtuels). (2 points)
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
Ethernet 2 Intel(R) Ethernet Server Adapter I...#2 14 Disconnected 00-1B-21-F0-39-3C 0 bps
Ethernet Intel(R) Ethernet Server Adapter I210-… 13 Disconnected 00-1B-21-F0-39-D7 0 bps
Ethernet 3 Intel(R) Ethernet Connection (17) I219… 11 Up 4C-D7-17-9E-49-B5 1 Gbps
e) Obtenez la liste des adapteurs dont l’adresse MAC commence par 00-50. (2 points)
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
VMware Network Adapte...1 VMware Virtual Ethernet Adapter for VM… 6 Up 00-50-56-C0-00-01 100 Mbps
VMware Network Adapte...8 VMware Virtual Ethernet Adapter for VM… 5 Up 00-50-56-C0-00-08 100 Mbps
Question 2 (10 points)
Dans le zip, il y a un fichier data.csv
. Ouvrez le fichier dans le bloc-notes (notepad) pour voir ce qu'il contient. Puis, répondez aux questions suivantes.
a) Chargez le contenu du fichier CSV et affectez-le à la variable $data. (2 points)
❌ Si vous affichez le contenu de la variable et que vous obtenez un résultat comme celui-ci, c'est que vous n'avez pas la bonne réponse.
PS C:\> $data
ID;Nom;Espece;PoidsEnKg;Nourriture;DateDeNaissance
--------------------------------------------------
6974;Luna;Oiseau;33.29;Foin;2013-12-28
4961;Sadie;Chien;26.97;Insectes;2019-04-08
5093;Luna;Chat;8.54;Graines;2019-01-11
8312;Luna;Cochon d'Inde;22.57;Insectes;2011-07-05
3360;Lucy;Chien;38.74;Croquettes;2021-12-10
...
✅ Vous devriez plutôt voir un résultat comme ceci:
PS C:\> $data
ID : 6974
Nom : Luna
Espece : Oiseau
PoidsEnKg : 33.29
Nourriture : Foin
DateDeNaissance : 2013-12-28
...
b) Obtenez la liste des animaux qui sont nés en 2020, triés par ordre décroissant de date, affiché en format tableau. (2 points)
ID Nom Espece PoidsEnKg Nourriture DateDeNaissance
-- --- ------ --------- ---------- ---------------
9961 Charlie Hamster 33.57 Graines 2020-11-16
8125 Sadie Hamster 47.66 Insectes 2020-10-28
1479 Daisy Oiseau 37.45 Croquettes 2020-09-14
7507 Daisy Cochon d'Inde 36.51 Foin 2020-05-29
5528 Lola Cochon d'Inde 26.64 Foin 2020-05-01
3227 Luna Tortue 24.49 Pâtée 2020-02-17
6714 Rocky Chien 40.84 Insectes 2020-01-07
6230 Rocky Tortue 17.38 Croquettes 2020-01-06
c) Obtenez la liste des poissons mangeurs de foin et affichez-la en format tableau. (2 points)
ID Nom Espece PoidsEnKg Nourriture DateDeNaissance
-- --- ------ --------- ---------- ---------------
7433 Bella Poisson 31.07 Foin 2012-02-05
8781 Luna Poisson 30.3 Foin 2021-10-17
1139 Rocky Poisson 47.29 Foin 2021-01-13
4863 Lola Poisson 10.97 Foin 2019-11-20
4795 Daisy Poisson 2.16 Foin 2022-03-10
d) Obtenez la liste des lapins qui pèsent plus de 30 kg et affichez-la en format tableau. (2 points)
ID Nom Espece PoidsEnKg Nourriture DateDeNaissance
-- --- ------ --------- ---------- ---------------
8715 Rocky Lapin 38.4 Graines 2015-01-01
5729 Max Lapin 41.56 Foin 2010-09-20
Attention aux types de données! Les strings et les nombre ne se calculent pas de la même manière!
e) Obtenez le nom (seulement le nom) du plus vieux hamster. (2 points)
Lucy
On ne doit obtenir que le nom de l'animal. Si votre ligne de commande donne le résultat ci-dessous, vous n'avez pas la bonne réponse.
Nom
---
Lucy
⚠️ Question bonus! (2 points)
Cette question doit être répondue dans les ordinateurs des laboratoires. Elle pourrait ne pas fonctionner sur un autre ordinateur.
Dans votre ordinateur, il y a plusieurs interfaces réseau qui ont une adresse IP. Pourtant, une seule est connectée à Internet. (2 points)
Élaborez une ligne de commande PowerShell qui obtient l'adresse IPv4 de l'interface qui sert à naviguer sur Internet.
La sortie devrait ressembler à ceci (un exemple sur un poste au D0622):
PS C:\> (votre ligne de commande)
10.10.49.98
- Intéressez-vous aux commandes
Get-NetIPAddress
etGet-NetRoute
. - Utilisez les parenthèses pour insérer dans un argument le résultat d'un sous-pipeline.
- Rappelez-vous vos notions de réseau sur les tables de routage! Comment pouvez-vous identifier la carte réseau qui sort sur Internet?