PowerShell — Centre de Ressources
Présentation
PowerShell est un shell en ligne de commande et un langage de script orienté objet développé par Microsoft. Basé sur le framework .NET, il manipule des objets plutôt que du texte brut, ce qui le rend particulièrement puissant pour l’automatisation de tâches Windows, l’administration Active Directory et la gestion des infrastructures.
Fondamentaux du langage
Bases
Basics
Syntaxe essentielle pour écrire ses premiers scripts PowerShell.
- Variables et types (
$var,[int],[string]…)- Conditions :
if / else,switch- Boucles :
for,while,foreach- Fonctions avec
param()- Classes et objets (.NET)
- Gestion d’erreurs :
try / catch
Opérateurs de comparaison
Opérateurs de comparaison PowerShell
PowerShell utilise des mots-clés à la place des symboles classiques.
Opérateur Rôle -eq/-neÉgalité / différence -gt/-ltSupérieur / inférieur -like/-matchWildcard / regex -and/-or/-notLogique booléenne -contains/-inAppartenance à une collection -is/-isnotTest de type .NET
Scripting avancé
Fonctionnalités avancées
Advanced
Aller plus loin avec les modules, le pipeline objet et les interactions système.
- Modules :
Import-Module,Install-Module,Get-Command- Cmdlets clés :
Where-Object,Sort-Object,Select-Object- Pipeline objet : filtrage, comptage, export CSV
- Fichiers & dossiers :
Get-ChildItem,Get-Content,Copy-Item- Manipulation JSON :
ConvertFrom-Json,ConvertTo-Json- REST API :
Invoke-RestMethod(GET / POST)- Processus & services :
Get-Process,Restart-Service
Active Directory & Sécurité
Active Directory
Active Directory
Administrer les objets AD (utilisateurs, groupes, ordinateurs).
Get-ADUser/New-ADUser/Set-ADUser- Réinitialisation de mot de passe
Add-ADGroupMember/Get-ADGroupMemberGet-ADComputerImport-Module ActiveDirectory
GPO
GPO
Gérer les stratégies de groupe via PowerShell.
Get-GPO/New-GPO- Lier une GPO à une OU :
New-GPLink- Sauvegarder / Restaurer :
Backup-GPO- Rapport HTML :
Get-GPOReportgpupdate /forceImport-Module GroupPolicy
ACL — AGDLP
ACL (AGDLP)
Structurer les droits sur les ressources selon le modèle AGDLP.
Accounts → Global → Domain Local → Permissions
- Créer groupes Global et DomainLocal
- Imbriquer les groupes
- Appliquer les ACL avec
Set-Acl
Administration en mode Core (sans GUI)
Active Directory (Core)
Active directory (Core)
Installer et promouvoir un contrôleur de domaine sans interface graphique.
Install-WindowsFeature AD-Domain-ServicesInstall-ADDSForest(forêt + DNS intégré)- Définition du mot de passe DSRM
Get-ADDomain/Get-ADDomainController
Serveur DHCP (Core)
Serveur DHCP (Core)
Déployer un serveur DHCP complet en ligne de commande.
Add-DhcpServerv4Scope— plage d’adresses- Options : passerelle (3), DNS (6), suffixe DNS (15)
Set-DhcpServerv4Scope— activer l’étendueGet-DhcpServerv4Scope— vérification
Utilitaires
Forcer la langue française sur Windows
Forcer la langue Française sur Windows
Appliquer les paramètres régionaux français en une seule exécution.
Set-WinUILanguageOverride -Language fr-FR Set-WinUserLanguageList -LanguageList fr-FR -Force Set-WinSystemLocale fr-FR Set-Culture fr-FR Set-WinHomeLocation -GeoId 84
Rappels essentiels
| Cmdlet | Description |
|---|---|
Get-Help <cmdlet> | Afficher l’aide d’une commande |
Get-Command *mot* | Rechercher une commande |
Get-Module -ListAvailable | Lister les modules disponibles |
$_ | Variable automatique de pipeline |
Write-Output / Write-Host | Afficher du texte |
Export-Csv | Exporter vers un fichier CSV |
Invoke-Command | Exécuter une commande à distance |
Set-ExecutionPolicy RemoteSigned | Autoriser l’exécution des scripts |
Progression recommandée
- Maîtriser la syntaxe de base → Basics
- Comprendre les opérateurs → Opérateurs de comparaison PowerShell
- Explorer le pipeline et les modules → Advanced
- Administrer Active Directory → Active Directory et GPO
- Gérer les droits avec le modèle AGDLP → ACL (AGDLP)
- Déployer des services en mode Core → Active directory (Core) et Serveur DHCP (Core)