PowerShell pour gérer vos environnements
Introduction
Nous avons vu précédemment que PowerShell comportait de nombreuses commandes permettant de gérer un poste de travail, qu’il soit local ou distant. PowerShell permet d’automatiser pratiquement toutes les tâches souhaitées.
Nous avons également vu dans le chapitre Les modules, que ceux-ci permettent une gestion encore plus simple à l’aide d’un nombre accru de cmdlets.
PowerShell ne permet pas uniquement de gérer un environnement local tel que votre poste de travail mais également des environnements plus larges, tels que votre Active Directory, Entra ID, Intune, MECM…
Pour cela, différents modules existants offrent des cmdlets pour gérer facilement des infrastructures.
Dans ce chapitre nous allons voir comment gérer différents environnements (Active Directory, MECM, Entra ID, Intune) uniquement avec PowerShell.
Les risques
Dans les différents exemples que nous allons évoquer, nous allons utiliser des modules existants.
En règle générale, l’utilisation des modules est préconisée, car ces derniers sont généralement fournis par Microsoft et simplifient considérablement l’interaction avec vos environnements.
Un inconvénient de l’utilisation de modules est que ceux-ci peuvent évoluer, voire être dépréciés. Un module déprécié signifie que celui-ci risque de ne plus fonctionner après une période donnée.
Il convient donc de rester attentif et d’effectuer une veille régulière afin d’anticiper les éventuels changements affectant les modules utilisés.
PowerShell et Active Directory
1. Active Directory, qu’est-ce que c’est ?
Active Directory, plus communément appelé AD, est un service d’annuaire de Microsoft. Il s’agit d’un service de gestion permettant de stocker les informations relatives aux utilisateurs, ordinateurs, imprimantes, etc., gérés au sein de votre organisation.
Généralement lorsqu’un utilisateur arrive dans une entreprise, un compte AD est créé, lui permettant de se connecter au domaine et d’accéder aux ressources de l’entreprise.
Il peut donc être utile d’utiliser PowerShell pour automatiser différentes tâches récurrentes et chronophages :
-
création d’un compte utilisateur ;
-
réinitialisation d’un mot de passe ;
-
verrouillage d’un compte utilisateur ou machine ;
-
déverrouillage d’un compte utilisateur ou machine ;
-
récupération d’infos sur un poste ou utilisateur ;
-
ajout dans un ou des groupe(s).
2. Comment interagir avec PowerShell ?
Pour gérer votre Active Directory avec PowerShell, le module à installer et à utiliser se nomme, tout simplement, ActiveDirectory. Il s’agit d’un module créé par Microsoft apparu la première fois sous Windows Server 2008 R2. Il est automatiquement installé sur les serveurs après ajout du rôle contrôleur de domaine.
Il existe d’autres modules permettant d’interagir avec Active Directory, mais ceux-ci n’étant pas gérés par Microsoft, nous éviterons d’en parler ici.
3. Installer le module approprié
a. Sur Windows Server
Il faut tout d’abord installer la fonctionnalité Windows :
Add-WindowsFeature -Name "RSAT-AD-PowerShell"
-IncludeAllSubFeature
Il faudra ensuite l’importer à l’aide de la cmdlet Import-Module :
Import-Module ActiveDirectory
b. Sur Windows 10
Il faut tout d’abord installer une fonctionnalité facultative de Windows. Celle-ci peut facilement s’installer avec PowerShell en utilisant un compte administrateur local :
Add-WindowsCapability -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 -Online
4. Que contient ce module ?
Avant d’utiliser un module PowerShell, il est nécessaire de comprendre...
PowerShell et MECM (Configuration Manager)
1. MECM, qu’est-ce que c’est ?
MECM (Microsoft Endpoint Configuration Manager), autrefois appelé SCCM, est un produit de la famille System Center de Microsoft. Il s’agit d’une suite logicielle permettant de gérer un parc informatique associée avec votre Active Directory.
Avec MECM, il est possible entre autres de :
-
déployer des OS sur les postes au travers d’une Task Sequence ;
-
déployer des drivers sur vos postes ;
-
déployer des applications sur vos postes ;
-
sécuriser vos postes ;
-
inventorier vos postes.
2. Comment interagir avec PowerShell ?
Pour effectuer des actions sur votre environnement MECM au travers de PowerShell, un module existe directement depuis la console.
Ce module se nomme ConfigurationManager.
3. Installer le module approprié
a. Utiliser le module depuis la console MECM
Le module est déjà installé au travers de la console MECM.
Il est accessible depuis la console en cliquant sur la flèche en haut, puis sur Connect via Windows PowerShell.

Une console PowerShell s’ouvre pour permettre l’utilisation des cmdlets de gestion des postes et collections.
b. Importer directement le module
Il est également possible d’utiliser ce module sans passer par la console MECM.
Il faut pour cela importer le module dans PowerShell en utilisant la commande suivante :
Import-Module ConfigurationManager
L’erreur ci-dessous peut s’afficher :

Ce message signifie que le fichier .psm1 est invalide ou absent dans le dossier des modules PowerShell.
4. Que contient ce module ?
Avant d’utiliser un module PowerShell, il est nécessaire de comprendre ce que celui-ci contient.
Il conviendra donc d’utiliser la cmdlet get-command afin de lister les commandes disponibles dans le module :
PS get-command -module ConfigurationManager
CommandType Name Version Source
-----------...PowerShell et Entra ID
1. Entra ID, qu’est-ce que c’est ?
Nous avons précédemment vu ce qu’était Active Directory.
Entra ID, précédemment nommé Azure Active Directory, est un service d’annuaire dans le Cloud, équivalent à un Active Directory hébergé en ligne.
Il permet de gérer vos utilisateurs, ordinateurs, applications, authentifications et bien d’autres encore.
2. Comment interagir avec PowerShell ?
Durant de nombreuses années, un module permettait d’interagir avec Entra ID au travers de PowerShell. Celui-ci se nommait AzureAD.
Depuis le 30 mars 2024, ce module a été déprécié :
Microsoft a mis à disposition un nouveau module nommé Microsoft.Entra. Ce module permet, comme son prédécesseur, d’interagir avec Entra ID via PowerShell.
3. Installer le module approprié
Ce module est disponible depuis la PowerShell Gallery.
Comme tout module, celui-ci s’installe via la cmdlet Install-Module :
Install-Module -Name Microsoft.Entra -AllowPrerelease
Ce module se compose de différents sous-modules.
4. Que contient ce module ?
Avant d’utiliser un module PowerShell, il est nécessaire de comprendre ce que celui-ci contient. Il convient donc d’utiliser la cmdlet get-command afin de lister les commandes disponibles dans le module :
PS C:\Windows> get-command -module "Microsoft.Entra.*"
CommandType Name Version Source
----------- ---- ------- ------
Alias Get-EntraDirectorySubscription 1.0.4 Microsoft.Entra.DirectoryManagement
Alias Get-EntraObjectByObjectId 1.0.4 Microsoft.Entra.DirectoryManagement
Function Add-EntraAdministrativeUnitMember 1.0.4 Microsoft.Entra.DirectoryManagement ...PowerShell et Intune
1. Intune, c’est quoi ?
Nous avons vu précédemment que MECM permettait de gérer vos postes dans un environnement on-premise.
Intune est la suite logique de MECM, mais dans le Cloud, bien que certaines fonctionnalités ne soient pas encore disponibles.
Intune permet ainsi de :
-
déployer des postes au travers de Autopilot ;
-
déployer des applications ;
-
exécuter des scripts ;
-
faire de la remédiation via PowerShell ;
-
effectuer des configurations de postes.
2. Comment interagir avec PowerShell ?
Le module recommandé par Microsoft pour interagir avec Intune depuis PowerShell se nomme Microsoft.Graph.
Celui-ci, comme son nom l’indique, utilise l’API Graph en arrière-plan lors de chaque utilisation de cmdlet.
3. Installer le module approprié
Ce module est disponible depuis la PowerShell Gallery. Comme tout module, celui-ci s’installe via la cmdlet Install-Module :
Install-Module -Name Microsoft.Graph
Ce module se compose de différents sous-modules.
4. Que contient ce module ?
Avant d’utiliser un module PowerShell, il est nécessaire de comprendre ce que celui-ci contient. Il convient donc d’utiliser la cmdlet get-command afin de lister les commandes disponibles dans le module :
PS C:\> get-command -module "microsoft.graph.*" -top 10
CommandType Name Version Source
----------- ---- ------- ------
Function Add-MgApplicationKey 0.0 Microsoft.Graph.Applications
Function Add-MgApplicationPassword 0.0 Microsoft.Graph.Applications
Function Add-MgChatMember...