0% ont trouvé ce document utile (0 vote)
588 vues22 pages

tp1 Powershell

Ce document décrit une initiation à PowerShell avec des commandes de base pour la gestion des dossiers, des fichiers et l'accès aux informations système. Il présente différentes parties sur les astuces de la console PowerShell, l'obtention d'aide sur les commandes, la gestion de fichiers et dossiers et l'accès aux propriétés et méthodes des objets.

Transféré par

org 2021
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
588 vues22 pages

tp1 Powershell

Ce document décrit une initiation à PowerShell avec des commandes de base pour la gestion des dossiers, des fichiers et l'accès aux informations système. Il présente différentes parties sur les astuces de la console PowerShell, l'obtention d'aide sur les commandes, la gestion de fichiers et dossiers et l'accès aux propriétés et méthodes des objets.

Transféré par

org 2021
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

TP1 POWERSHELL : Initiation PowerShell

Description du thème

Propriétés Description
Intitulé long Initiation à PowerShell avec des commandes de base du langage en mode
console
Formation BTS Services informatiques aux organisations
concernée
Matière Support système des accès utilisateur
Présentation Initiation à PowerShell avec des commandes de base du langage pour la gestion
des dossiers et des fichiers, l’accès aux données du système et une découverte
des propriétés et des méthodes des objets.
Notions Support système des accès utilisateurs

Activités
D5.1 - Gestion des configurations
• A5.1.2 Recueil d'informations sur une configuration et ses éléments

Savoir-faire
• Exploiter les fonctions de base d’un langage de commandes

Transversalité SI4 (Base de la programmation) – Concept de base de la programmation objet*


Pré-requis Notation standard d’accès aux objets (objet.méthode ; objet.propriété)
Outils PowerShell
Mots-clés Langage de commandes, powershell, windows
Auteur(es) Daniel Régnier
Version v 1.0

Présentation

Ce document est une proposition d’initiation à un langage de commandes dans le cadre du SI1. Le
langage utilisé est PowerShell sur un système Windows 7. Cette première partie n’aborde pas les
scripts. Les commandes sont saisies dans la console PowerShell, équivalente à l’invite de
commandes cmd.exe.

A ce stade de l’initiation, les applets de commande sont simplement nommés commandes


PowerShell. Le pipeline, utilisé seulement avec la commande Get-Member, n’est pas expliqué.

Les concepts sur les classes et les objets ne sont pas abordés. Seule l’utilisation des propriétés et des
méthodes sont présentées pour la réalisation des exercices.

Ce coté labo se décompose en cinq parties :


- 1) Petites astuces de la console - 2) Obtenir de l’aide sur une commande
- 3) Gérer les fichiers et les dossiers
- 4) Accès aux propriétés et aux méthodes d’un objet
- 5) Accès aux informations du système

Les différentes parties s’appuient sur une annexe présentant les commandes à utiliser. La partie 4
nécessite la création d’un dossier et d’un fichier créés dans la partie 3.

Page 1/22
Ce coté labo est suivi d’une découverte de scripts pour la gestion de comptes utilisateurs locaux avec
Windows 7.

Page 2/22
1) Petites astuces de la console

Pour ce TP, vous utiliserez deux machines du domaine de votre agence, c’est-à-dire la mv nommée
XXX7ENT641 et XXX7ENT642, un technicien par mv.

Lancer la console PowerShell sous Windows 7 :


Démarrer\Tous les programmes\Accessoires\Windows PowerShell\Windows PowerShell

Les touches les plus intéressantes :

Touche Description
[Flèche en haut]
Permet de faire défiler l’historique des commandes déjà frappées.
[Flèche en bas]
[F7] Affiche une boîte contenant l’historique des commandes.
[F8] Fait défiler l’historique sur la ligne de commande.
[Ctrl] C Met fin à l’exécution de l’instruction courante.

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.

Exemples (ne saisir que la partie encadrée de la figure ci-dessous):


Saisir assez de caractères pour restreindre la liste des commandes
: listées

-c :
L’action de la touche [tab] propose la première commande commençant par get

La saisie d’un espace et l’action de la touche [tab] liste les éléments du dossier actif :

Remarque : le point devant le \ représente le chemin du dossier actif (ici c:\testPowershell).

La saisie du début
d’un paramètre –r :

Page 3/22
L’action de la touche [tab] complète le nom du paramètre :

Remarque : la saisie seule du caractère (-) permet de lister tous les paramètres possibles.

Il est possible bien sûr de spécifier le chemin en partant d’une lettre de volume disque :

L’action de la touche [tab] complète le nom du dossier :

Remarque : Le chemin peut ainsi être entièrement complété à l’aide de l’action successive de [tab].

2) Obtenir de l’aide sur une commande

En vous aidant de l’annexe 1 : Commandes pour obtenir de l’aide

Réaliser les actions suivantes :

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

Afficher la commande qui correspond à l’alias dont le nom est sl

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


(Retrouver les alias de la commande DOS et de la commande Linux pour ceux qui connaissent ces
systèmes)

A partir de l’exemple 2 de l’aide de la commande Get-PSDrive, 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

Remarque : L’utilisation des propriétés et des méthodes sera abordé dans la partie 4).

3) Gérer les fichiers et les dossiers

En vous aidant de l’annexe 2 : Commandes pour gérer les fichiers et les dossiers

Réaliser les actions suivantes :

Afficher le chemin du dossier courant

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

Afficher la liste des dossiers et fichiers (en étant sous c:\)

Page 4/22
A cet emplacement, créer un dossier nommé testPowerShell

Se déplacer dans le dossier c:\testPowerShell

Créer un dossier nommé testdossier (dans testPowerShell)

Créer un fichier nommé test1.txt, contenant la phrase "Tp PowerShell 1"

Afficher la liste des dossiers et fichiers

Copier le fichier test1.txt sous le nom test2.txt

Renommer le fichier test1.txt avec le nom essai1.txt

Copier le fichier essai1.txt dans le dossier testdossier\essai1.txt

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 test2.txt 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

4) Accès aux propriétés et aux méthodes d’un objet

En vous aidant de l’annexe 3 : initiation aux variables, aux propriétés et aux méthodes des objets

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 taille en octet du volume utilisé, afficher la taille en octet du
volume libre.

Remarque : pour avoir ces tailles en Go, diviser par 1GB (en utilisant l’opérateur /)

Affecter à la variable $fichier, le résultat de la commande Get-ChildItem c:\testPowerShell\essai1.txt

Afficher les propriétés et les méthodes de la variable $fichier

Page 5/22
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\essai2.txt

A partir de la variable $fichier, supprimer le fichier essai1.txt

Vérifier la validation de l’action précédente avec la commande Get-ChildItem

Lancer bloc-note (notepad.exe) et réduire la fenêtre du Bloc-notes

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

Pré-requis : Ouvrir Notepad et laisser le ouvert pour la suite

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.

A partir de la variable $proc, supprimer (tuer) le processus du Bloc-notes

5) Accès aux informations du système

En vous aidant de l’annexe 4 : Accéder aux ressources du système d’exploitation Windows

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

A partir de la variable $video, afficher le nom du contrôleur, la version du driver, le mode video
(résolution) et 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

Attention, si votre système comporte plusieurs disques logiques, la variable $vol est un tableau
d’objets (voir annexe 4)
Combien de lettre sont utilisées dans votre MV ?
Lesquelles ?

A partir de la variable $vol, et pour le deuxième disque logique seulement, afficher le nom du volume,
afficher la taille, afficher l’espace libre, afficher le système de fichiers.

Remarque : pour avoir ces tailles en Go, diviser par 1GB (en utilisant l’opérateur /)

Page 6/22
Annexe 1 : Commandes pour obtenir de l’aide

Afficher de l’aide sur une commande : Get-Help Commande (ex : Get-Help Get-ChildItem)

Afficher les exemples : Get-Help Commande –Examples

Afficher les alias : Get-Alias

Afficher la liste des méthodes et des propriétés des objets : Commande | Get-member

Annexe 2 : Commandes pour gérer les fichiers et les dossiers

Se déplacer dans les dossiers : Set-Location chemin (ex : Set-Location c:\temps)

Afficher le chemin du dossier courant : Get-Location

Afficher le contenu d’un dossier : Get-ChildItem

Créer un dossier : New-Item nomDossier -ItemType directory

Créer un fichier avec du texte New-Item nomFichier.txt -ItemType file –Value "texte"

Supprimer un fichier ou un dossier : Remove-Item nomFichier.txt

Déplacer un fichier : Move-Item nomFichier.txt -Destination chemin\nomFichier.txt

Déplacer un dossier : Move-Item nomDossier -Destination chemin\nomDossier

Renommer un fichier ou dossier : Rename-Item nomFichier.txt -NewName nomFichier2.txt

Copier un fichier : Copy-Item nomFichier.txt -Destination nomFichier2.txt

Copier un dossier avec ses fichiers : Copy-Item nomDossier -Destination nomDossier1 –Recurse

Tester l’existence d’un fichier ou dossier : Test-Path chemin/nomFichier.txt

Annexe 3 initiation aux variables, aux propriétés et aux méthodes des


objets

Le nom d’une variable commence toujours par $, il peut inclure tout caractère alphanumérique ou le
trait de soulignement.

Windows PowerShell permet de créer des variables qui sont pour l'essentiel des objets nommés. La
sortie de toute commande Windows PowerShell valide peut être stockée dans une variable.

Exemple : $loc = Get-Location

Page 7/22
Il est possible d’utiliser Get-Member pour afficher des informations sur le contenu de variables.

Exemple : $loc | Get-Member ( idem Get-Location | Get-Member )

Le nom de la variable suivi du point permet d’accéder aux propriétés de l’objet référencé par la
variable, exemple pour la propriété Path de la variable $loc.
Exemple : $loc.Path

Remarque : l’usage de la touche tabulation [tab] permet de compléter le nom de la propriété.

De même, l’exécution d’une méthode (action) d’un objet :


Exemple : $fichier.Delete()

Remarque : Pour les méthodes, ne pas oublier les parenthèses avec ou sans paramètre.

Annexe 4 : Accéder aux ressources du système d’exploitation Windows

Les classes WMI (Windows Management Instrumentation) décrivent les ressources qui peuvent être
gérées. Il existe des centaines de classes WMI, certaines d'entre elles contenant des dizaines de
propriétés.

La commande principale est Get-WmiObject, elle permet de lire ces ressources.

Exemple pour consulter les informations suivantes :

Graphiques : Get-WmiOject win32_videocontroller

Système : Get-WmiObject win32_operatingsystem

Disques : Get-WmiObject win32_logicaldisk

Il est toujours possible d’affecter le résultat de la commande Get-WmiObject à une variable, et de


consulter les propriétés et les méthodes de l’objet à l’aide de la commande Get-Member.

Si le résultat de la commande est un ensemble d’objets, la variable affectée est un tableau d’objet,
l’accès au premier élément se fait alors de la manière suivante $var[0], au second élément : $var[1],
etc..

TP2 POWERSHELL: Initiation aux scripts PowerShell

Page 8/22
Description du thème

Propriétés Description
Intitulé long Initiation à la rédaction de scripts dans le langage de commandes PowerShell
Formation BTS Services informatiques aux organisations
concernée
Présentation Les scripts abordés concernent les comptes utilisateurs locaux sur un système
Windows 7. La démarche s’appuie sur la présentation de petits scripts que
l’étudiant doit être capable d’interpréter puis de faire évoluer.
Notions Support système des accès utilisateurs

Activités
D3.3 - Administration et supervision d'une infrastructure
• A3.3.1 Administration sur site ou à distance des éléments d'un réseau,
de serveurs, de services et d'équipements terminaux

D5.1 - Gestion des configurations


• A5.1.2 Recueil d'informations sur une configuration et ses éléments
• A5.1.5 Évaluation d’un élément de configuration ou d’une configuration

Savoir-faire
• Exploiter les fonctions de base d’un langage de commandes

Administration des systèmes

Savoir-faire
• Administrer un système
• Contrôler et améliorer les performances d’un système
• Automatiser une tâche d'administration

Savoir associé
• Langage de commande et scripting
Transversalité Mathématiques pour l’informatique – cours d’algorithmique
Pré-requis Notions d’algorithmique de base : alternative, répétitive.
Notation standard d’accès aux objets (objet.méthode ; objet.propriété)
Outils Microsoft PowerShell
Mots-clés Langage de commandes, scripting, powershell, windows
Auteur(es) Daniel Régnier
Version v 1.1 (Modification gestion mot de passe avec stratégie complexe L.
PERRIN)
Date de V 1.0 Décembre 2012 (v1.1 Septembre 2013)
publication

Présentation

Page 9/22
Ce document est une proposition d’initiation à la rédaction de scripts dans un langage de commandes,
dans le cadre du BTS SIO.

Les scripts abordés concernent les comptes utilisateurs locaux sur un système Windows 7. Les
étudiants doivent posséder les droits nécessaires sur la base locale des comptes. Dans notre cas,
l’étudiant utilisera la même MV Windows 7 que lors du TP Powershell précédent. Chaque étudiant fera
ce TP en autonomie, pas de binôme ou plus. L’aide entre technicien est toujours possible mais
chaque employé doit prendre son autonomie s’il veut grandir dans la société GSB (et donc gagner
plus d’argent ;-).

La démarche s’appuie sur la présentation de petits scripts que l’étudiant doit d’abord interpréter pour
en comprendre le fonctionnement, puis faire évoluer pour répondre à un nouveau besoin. Le dernier
script à produire permet l’ajout de comptes utilisateurs à partir d’un fichier texte, il est réalisé à partir
des deux derniers scripts étudiés.

Les scripts sont présentés avec l’environnement d'écriture de scripts intégré Windows PowerShell ISE
(Integrated Scripting Environment) installé par défaut avec Windows 7. Il est possible d’utiliser un
autre éditeur pour PowerShell, comme PowerGUI que nous étudierons dans un autre TP Powershell.

Il est possible de réaliser de nombreuses variantes de ces scripts, notamment en prévoyant la saisie
d’informations supplémentaires sur les comptes (mot de passe, répertoire personnel,..), l’activation ou
la désactivation des comptes, la mise en place de groupes, l’affectation aux groupes, etc.

TRAVAIL A FAIRE (1)

Utilisation de Windows PowerShell ISE


- Lancer Windows PowerShell ISE sous Windows 7:
Démarrer\Tous les programmes \Accessoires \Windows PowerShell \Windows PowerShell ISE

Présentation des différentes fenêtres :

L’éditeur présente trois volets, un premier volet pour l'éditeur de scripts, un deuxième volet de sortie
pour afficher le résultat d’exécution et un dernier volet qui correspond à la console de saisie
interactive des commandes PowerShell (PS). Suite à l’exécution d’un script, les variables de celui-ci
sont

Page 10/22
accessibles dans la console de saisies des commandes.

Efface le volet de sortie

Edition du script Exécute le script (F5)

Volet de sortie,
résultat de
l’exécution

Console de saisie
des commandes PS

Dans PowerShell, il existe quatre paramètresde stratégie d'exécution des scripts qui sont :

Restricted : paramètre par défaut, n'autorise pas l'exécution des scripts,


AllSigned : n'exécute que les scripts de confiance, donc signés,
RemoteSigned : exécute les scripts locaux sans obligation de confiance et les scripts de
confiance issus d'Internet,
Unrestricted : autorise l'exécution de tous les scripts.

TRAVAIL A FAIRE (2)

- Démarrer Windows PowerShell en tant qu’administrateur (Bouton


droit sur « Windows Powershell » puis cliquer sur « Exécuter en tant
qu’administrateur ».

- Taper la commande Get-ExecutionPolicy pour connaitre la stratégie


en cours
Noter le résultat affiché :
______________________________________________________

- Taper la commande Set-ExecutionPolicy RemoteSigned pour


modifier la stratégie Noter le résultat affiché :
______________________________________________________________________________
Vous répondre « O » à la demande de validation de la commande

- Retaper la commande Get-ExecutionPolicy pour vérifier que la


stratégie en cours désormais n’est plus la même qu’au départ Noter le
résultat affiché :
______________________________________________________

Exercice 1. Accès aux comptes locaux du système


Le premier script étudié permet d’afficher la date de dernière connexion d’un compte local du système.

Page 11/22
- Cliquer avec le bouton droit sur le fichier de script, puis cliquer sur
Propriétés.
- Cliquer sur Débloquer

6) TRAVAIL A FAIRE (Si nécessaire)

- [Effectuer les manipulations indiquées ci-dessus pour le script concerné si vous avez eu un
blocage à l’étape précédente.

- Essayer de nouveau d’exécuter le script, saisir un compte inexistant, vérifier le résultat dans
le volet de sortie.]

- Exécuter le script, saisir un compte local existant, Admin par exemple, vérifier la date de
dernière connexion dans le volet de sortie.

Explications de la ligne 4 : L’accès à la base locale de comptes utilisateurs d’un système Windows est
réalisé avec l’instruction : [ADSI]"WinNT://."

Remarque : Ici, les majuscules et les minuscules doivent être respectées.


Le point représente le nom du système sur lequel est lancée l’instruction, il peut être remplacé par le
nom de l’ordinateur cible. Il faut bien sûr avoir des droits d’administration sur l’ordinateur distant.

Pour filtrer les éléments de la base de comptes, il est possible de spécifier le nom de l’élément
recherché, ici il est contenu dans la variable $nom dans la ligne … [ADSI]"WinNT://./$nom"

TRAVAIL A FAIRE (4)

A faire (seulement si le compte a été trouvé) :

Page 12/22
- Dans la console de saisie des commandes (Volet 3), afficher les propriétés de la variable $compte,
en utilisant la commande suivante : $compte | Get-Member

- Dans le volet de sortie (volet 2), relever le nom des propriétés qui permettent d’afficher le nom
complet et la description d’un compte.

- Renseigner le nom complet du compte admin (par le nom et prénom du premier technicien
responsable de l’agence par exemple). Pour cela Démarrer/ordinateur(BD)/Gérer/Utilisateurs et
groupes/Utilisateurs/Admin(BD)/Propriétés/
Renseigner la zone nommée « Nom complet » ainsi que celle nommée « Description » (exemple de
valeur à saisir pour cette dernière zone : « Compte de l’admin local » puis OK

- Modifier le script lastlogin.ps1 (enregistrer le sous le nom lastloginT4.ps1) pour qu’il affiche ces
informations en plus de la date de dernière connexion. Tester !

Exercice 2. Ajout d’un compte local du système


Le second script étudié permet d’ajouter un compte local à partir de la saisie du nom et de la
description du compte.

Le script :

Connexion à la
base locale

Saisie du nom et
de la description

Test si le compte
n’existe pas déjà

Renseigne la
description
Valide la création
et la modification
des informations

TRAVAIL A FAIRE ( 5)

- Ouvrir le script ajoutCompte.ps1 dans Windows PowerShell ISE (Fichier\Ouvrir).

- Exécuter le script, saisir un nom et une description pour le compte local à ajouter, exemple : test01,
description : Test d’ajout d’un compte.

- Vérifier la création du compte via l’interface graphique Windows (via Gérer). Utiliser F5 si nécessaire
pour rafraichir la liste des comptes

7) Remarque : Par défaut, le nom complet est identique au nom.

Explications :
Ligne 11 : La variable $local possède une méthode create() qui permet de créer un objet de type
"user" (premier paramètre), dont le nom du compte est spécifié par le deuxième paramètre, ici la
variable $nom. Le résultat est une variable nommée $utilisateur.

Page 13/22
Ligne 12 : La variable $utilisateur possède une méthode InvokeSet() qui permet de renseigner une
information du compte, spécifiée par le premier paramètre, dont la valeur est contenue dans le
deuxième, ici $description.

8) TRAVAIL A FAIRE (6)

- Modifier le script ajoutCompte.ps1 (enregistrer le sous le nom ajoutcompteT6.ps1) pour que


le nom complet soit également saisi et renseigné au moment de l’ajout du compte.

- Faire un test avec un nouveau compte (test02), une description : Test d’ajout d’un 2ème
compte et un nom complet (Laurent PERRIN par exemple)

Exercice 3. Parcours d’un fichier texte contenant les informations des comptes utilisateurs Ce
script permet d’afficher tous les noms des comptes utilisateurs contenus dans un fichier texte.
Les informations sont sous la forme: nomCompte/nomComplet/Description
.

Chemin du fichier
listeCompte.txt

Tableau ($colLignes)
qui contient toutes les
lignes du fichier

C e tableau peut être


parcouru comme une Affiche le premier
collection de lignes. élément d’un compte:
nomCompte

9) TRAVAIL A FAIRE (7)

- Ouvrir le script lireFichier.ps1 dans Windows PowerShell ISE (Fichier\Ouvrir).

- Copier le fichier listeCompte.txt dans le dossier C:\testPowerShell (déjà créé via le TP1
Powershell)

- Exécuter le script et vérifier la liste des noms affichés dans le volet de sortie (volet 2).

Explications :
Ligne 10 : Cette instruction peut s’interpréter de cette manière : Pour chaque ligne ($ligne) contenue
dans l’ensemble des lignes ($colLignes). La variable $ligne va successivement prendre la valeur de
chaque ligne du tableau $colLignes.

Ligne 11 : $ligne est une chaîne de caractères. La variable $ligne possède une méthode Split() qui
permet de retourner un tableau construit à partir de la chaîne de caractères contenue dans $ligne. Les
éléments du tableau correspondent aux chaînes de caractères délimitées par le séparateur "/".

TRAVAIL A FAIRE (8)

- Modifier le script lireFichier.ps1 (enregistrer le sous le nom lireFichierT8.ps1) pour que le nom
complet et la description soient également affichés en dessous du nom du compte. Tester.

TRAVAIL A FAIRE ( 9)
Page 14/22
- A l’aide desdeux derniers scripts (ajout d’un compte et lire dans un fichier
) écrire un scriptqui permet
d’ajouter dans la base locale du système, tous les comptes contenus dans le fichier listeCompte.txt
avec comme mot de passe P@ssw0rdpour tous.
Ce script portera le nomajoutuserdepuisfichierT9.ps1
- Tester l’ajout de ces comptes pour obtenir
:

- Faire un deuxième test avec le même fichier, que se passe


-t-il pour les noms déjà existants?

Exercice 4. Suppressions de comptes utilisateurs


Ce script permet de supprimer tous les comptes utilisateurs dont les noms sont contenus dans un
fichier texte.
Les informations sont toujours sous la forme : nomCompte/nomComplet/Description

Le script :

Suppression du
compte s’il existe

10) TRAVAIL A FAIRE (10)

- Ouvrir le script suppressionCompteFichier.ps1 dans Windows PowerShell ISE (Fichier\Ouvrir).

- Exécuter le script et vérifier la liste des noms affichés dans le volet de sortie (volet 2).

- Vérifier la suppression des comptes dans Utilisateurs et groupes locaux, dossier Utilisateurs.

Explications :
Ligne 17 : Comme pour la création, la variable $local possède une méthode delete() qui permet de
supprimer un objet de type "user" (premier paramètre), dont le nom du compte est spécifié par le
deuxième paramètre, ici la variable $nom.

Page 15/22
11) TRAVAIL A FAIRE (11)

- Réaliser les modifications pour que la suppression concerne également les comptes test01 et test02
créés à l’exercice 1.

- Exécuter le script et vérifier si tous les comptes créés ont été supprimés.

12) TP3 POWERSHELL : Administration Active Directory

Description du thème

Propriétés Description

Intitulé long Administration Active Directory à l’aide de Powershell


Formation concernée BTS Services informatiques aux organisations
Présentation Automatiser des tâches répétitives liées aux objets répertoires, permissions,
groupes d’utilisateurs et utilisateurs
Notions Support système des accès utilisateurs

Activités
D3.3 - Administration et supervision d'une infrastructure
• A3.3.1 Administration sur site ou à distance des éléments d'un réseau,
de serveurs, de services et d'équipements terminaux

D5.1 - Gestion des configurations


• A5.1.2 Recueil d'informations sur une configuration et ses éléments
• A5.1.5 Évaluation d’un élément de configuration ou d’une configuration

Savoir-faire
• Exploiter les fonctions de base d’un langage de commandes

Administration des systèmes

Savoir-faire
• Administrer un système
• Contrôler et améliorer les performances d’un système
• Automatiser une tâche d'administration

Savoir associé
• Langage de commande et scripting

Transversalité Mathématiques pour l’informatique – cours d’algorithmique


Pré-requis TP 1 et TP 2 Powershell
Outils Microsoft PowerShell / PowerGUI

Page 16/22
Mots-clés Langage de commandes, scripting, powershell, windows
Auteur(es) Laurent PERRIN
Version v 1.0

Présentation

L’objectif de ce support est d’aborder Powershell dans un contexte de domaine Active Directory.
L’apprenant va devoir construire à la fin de ce support un script complexe de manière à appliquer ses
connaissances du langage Powershell tout en les développant autour de l’Active Directory.

Lors des deux derniers TP, l’apprenant a travaillé la création de scripts sur le produit Windows
Powershell ISE. Pour ce troisième TP, nous allons utiliser un produit gratuit nommé PowerGUI (site
officiel : powergui.org). Ce T.P. pourrait très bien continuer à se faire sur ISE, l’objectif pédagogique est
de varier vos expériences et donc d’enrichir votre C.V. ;-)

Il est fortement conseillé à chaque apprenant d’enregistrer ses versions de scripts à chaque fois qu’il
complexifie son script de manière à revenir facilement à la dernière version stable connue de son
script ;-). Vous travaillerez en binôme sur le PC de l’administrateur (donc XXX7ENT641)

TRAVAIL A FAIRE (1)

Installation de PowerGUI
- Lancer le fichier d’installation de PowerGUI nommé « PowerGUI.3.8.0.129 » (Install par défaut)

- Lancer l’applicatif “PowerGUI Script Editor” (Démarrer\PowerGUI)

OBJECTIF 1 :
- Comprendre la notion d’arborescence LDAP et la construction du Distinguished Name
- Comprendre certains attributs d’un objet Active Directory type utilisateur.

RESSOURCES NECESSAIRES :
- Le document numérique « Arborescence_LDAP.doc »
- Le document numérique « Fiche_AdministrationActiveDirectoryViaADSI.doc » - Le fichier
listeusersobj1.txt

TRAVAIL A FAIRE (2)

- Lire le document numérique « Arborescence_LDAP.pdf » de manière à comprendre la structure


d’un DN (Distinguished Name).

- Lire le document numérique « Fiche_AdministrationActiveDirectoryViaADSI » de manière à


appréhender la création et manipulation d’objets dans l’Active Directory via Powershell.

- Etudier le script creationuserLDAPobj1.ps1 et modifier les valeurs des variables liées au domaine
de manière à ce que ce script soit utilisable dans votre agence GSB.

- Créer une unité d’organisation que vous nommerez « UO1 » via l’outil « Utilisateurs et ordinateurs
Active Directory »

Page 17/22
- Exécuter ce script

- A l’aide de l’outil « Utilisateurs et ordinateurs Active Directory », étudier l’objet utilisateur résultant
de l’exécution du script et compléter l’annexe 1 de ce support, vous pourrez vous rendre compte
de l’emplacement des différentes valeurs et donc de l’intérêt de certains attributs des objets de
type utilisateur. Si vous ne le voyez pas, penser à (vous) rafraichir ;-)

- A l’aide de l’outil « Utilisateurs et ordinateurs Active Directory », supprimer l’utilisateur


nouvellement créé.

OBJECTIF 2 :
- Créer un script exploitant un fichier txt (séparateur compatible csv avec le caractère « , »)

RESSOURCES NECESSAIRES :
- Le fichier listeusersobj2.txt

Remarque : Très souvent, l’administrateur va travailler sur des informations issues d’un fichier au
format tableur
(xls, xlsx, …), pour exécuter un script à partir de ce type de fichier, il va falloir simplifier ce type de
fichier en l’enregistrant au format .csv (où le séparateur est le « ; »). Les langages de scripting
travaillent avec des fichiers basés sur des séparateurs de manière à détecter différentes valeurs
issues d’une même ligne dans ce fichier, très pratique si le séparateur est un peu exotique. Pour cela
il est possible d’utiliser comme dans le TP 2 Powershell, des fonctions (méthodes) qui fassent ce
travail de séparation. Il est également possible d’utiliser des méthodes spécifiques pour les fichiers au
format csv (attention, le séparateur est la « , » et non le « ; »). Comment remplacer tous les « ; » en « ,
» rapidement ? Ouvrir le fichier format .csv (séparateur par défaut « ; ») avec bloc note par exemple et
choisir (remplacer « ; » par « , » pour toutes les instances trouvées). Effectuer un « Enregistrer sous »
au format txt. Le fichier est prêt pour la suite…

TRAVAIL A FAIRE (2)

- Copier le fichier listeusersobj2.txt sous C:\testscript\ de votre MV Windows 7


- Exécuter le script creationuserLDAPobj2.ps1 de manière à vous familiariser à l’importation des
valeurs issues d’un fichier txt (avec séparateur « , »)

OBJECTIF 3 :
- Créer les comptes utilisateurs liés à votre agence GSB

RESSOURCES NECESSAIRES :
- Le fichier excel global de la société GSB (nom : listeusers_Agences.xlsx)
- Une grosse poignée de motivation pour rechercher sur Internet les lignes Powershell pour ajouter
des permissions NTFS (indice : utilisation possible de
Security.AccessControl.FileSystemAccessRule).

Extrait du Cahier des charges du besoin de scripting GSB :


La direction souhaite que les comptes des employés de chaque agence soient créés selon le modèle
donné en Annexe 2.

Chaque employé possèdera un répertoire personnel portant le nom de son login. Ces répertoires
auront pour chemin absolu E:\REPPERSO\<login>. E appartiendra à un nouveau disque dur créé sur
votre serveur (attention à bien mettre « Thin Provision » lors de la création dans votre MV). Si cette
lettre de lecteur est déjà utilisée par une autre mission (celle de la sauvegarde par exemple), vous
pourrez prendre une autre lettre et adapter la suite du TP en fonction. Le lecteur E pointera sur la
deuxième partition du disque de votre serveur, prévoir 10 Go. Voici un exemple de partitionnement
conseillé :

Page 18/22
Les « admins du domaine » auront le contrôle total sur l’ensemble de l’arborescence de ces
répertoires. L’employé aura les droits « Modifier » dessus. Les autres employés n’auront aucun droit
sur les répertoires personnels des autres.

La création des unités d’organisation pourra être réalisée sans Powershell car elles ne sont pas
nombreuses par contre la création des objets utilisateurs, l’affectation de toutes ses valeurs
demandées par la direction, la création de son répertoire personnel ainsi que la majorité des
positionnements de permissions (ace/acl) sur ces derniers devront passer par un script Powershell.

Remarque : Nous ne travaillerons pas, pour l’instant, sur les droits de partages de manière
approfondie. Nous créerons juste un partage caché de la ressource E:\REPPERSO\, nous mettrons
les « Admins du domaine » en Contrôle total et les « Utilisateurs du domaine » en Modifier sur ce
partage.

Le scripting est une partie essentielle dans le métier d’un administrateur réseau. Je vous demanderai
donc de travailler sérieusement cette partie du programme, oui vous allez devoir vous confronter à
des erreurs, des difficultés, non le corrigé ne viendra pas sur un plateau, je suis certain que vous ne
passerez pas plus d’heures à trouver ce scripts que moi à créer ce TP3. Penser à commenter un
maximum vos lignes de scripts. Procéder par étapes, n’essayer pas de tout faire d’un coup, fixez-vous
des réalisations intermédiaires et complexifier par la suite sans oublier de faire du versionning
(sauvegarde intermédiaire pour chaque étapes réussies).

TRAVAIL A FAIRE (3)

- Proposer un script qui réponde aux demandes de la direction de GSB

13) ANNEXE 1 : PROPRIETES D’UN OBJET TYPE UTILISATEUR

(A COMPLETER EN POSITIONNANT LES VALEURS INTEGREES PAR LE SCRIPT


creationsuserLDAPobj1)

Page 19/22
Page 20/22
Page 21/22
14) ANNEXE 2 : EXEMPLE D’INFORMATIONS UTILES POUR LA
DIRECTION GSB SUR UN OBJET UTILISATEUR

Page 22/22

Vous aimerez peut-être aussi