Avant de commencer
- Comprendre les services, le registre et les droits : voir Windows 11 sous le capot
En clair
Windows livre avec son atelier une caisse à outils de bricoleur. Mais au fond du garage se trouve un établi professionnel : un terminal puissant, un gestionnaire de paquets, un Linux complet, un bac à sable jetable et un hyperviseur. Ce guide ouvre l'établi.
1. PowerShell 7 et Windows Terminal
Windows inclut Windows PowerShell 5.1, figé depuis des années. PowerShell 7 est la version moderne, open-source et multiplateforme (Windows, Linux, macOS). Les deux cohabitent : powershell.exe lance la 5.1, pwsh.exe la 7.
winget install Microsoft.PowerShell
Windows Terminal, installé par défaut sur Windows 11, regroupe PowerShell, l'invite de commandes, les distributions WSL et les connexions SSH dans des onglets. Dans ses paramètres, choisissez PowerShell 7 comme profil par défaut et Windows Terminal comme terminal par défaut de Windows.
Les commandes à connaître :
Get-Command *service* # trouver une commande
Get-Help Get-Service -Examples # aide et exemples
Get-Service wuauserv | Get-Member # propriétés d'un objet
Get-Process | Where-Object CPU -gt 100 # filtrer
Get-Process | Sort-Object WS -Descending |
Select-Object -First 5 # trier, garder 5
Get-Service | Export-Csv services.csv -NoTypeInformation
Get-History # historique (Ctrl + R pour chercher)
La différence clé avec un shell Linux : PowerShell manipule des objets, pas du texte. On filtre sur des propriétés (CPU, Status, Name) au lieu de découper des colonnes.
Le profil ($PROFILE) est un script lancé à chaque ouverture : alias, fonctions, invite personnalisée.
if (-not (Test-Path $PROFILE)) { New-Item $PROFILE -Force }
notepad $PROFILE
2. winget : installer et reconstruire un poste
winget est le gestionnaire de paquets de Windows : il installe, met à jour et désinstalle les logiciels depuis un dépôt public, sans passer par les sites et leurs installateurs piégés.
winget search vlc # chercher
winget install --id VideoLAN.VLC -e # installer (identifiant exact)
winget upgrade # mises à jour disponibles
winget upgrade --all # tout mettre à jour
winget uninstall --id VideoLAN.VLC -e # désinstaller
Reconstruire un poste en une commande : exportez la liste des logiciels d'un PC, puis importez-la sur un PC neuf.
winget export -o "$env:USERPROFILE\Desktop\logiciels.json"
winget import -i logiciels.json --accept-package-agreements
Gardez ce fichier avec vos sauvegardes : après une réinstallation, tous vos logiciels reviennent en quelques minutes. La commande winget configure va plus loin en appliquant un fichier de configuration complet (logiciels, réglages, fonctionnalités Windows).
La fiche Logiciels libres indispensables propose une sélection à installer de cette façon.
3. WSL : Linux dans Windows
WSL (Windows Subsystem for Linux) fait tourner de vraies distributions Linux dans une machine virtuelle légère, intégrée à Windows : mêmes fichiers, même réseau, démarrage en une seconde. Le projet est open-source depuis 2025.
wsl --install # installe WSL et Ubuntu
wsl --list --online # distributions disponibles
wsl --install -d Debian # installer une autre distribution
wsl --list --verbose # distributions installées et leur état
wsl --shutdown # arrêter toutes les distributions
Les fichiers : depuis Linux, les disques Windows sont dans /mnt/c ; depuis Windows, les fichiers Linux sont accessibles par \\wsl$\Debian dans l'Explorateur. Pour les performances, travaillez sur les fichiers du côté où tourne l'outil : un projet compilé sous Linux doit rester dans le système de fichiers Linux.
Les réglages globaux se placent dans %UserProfile%\.wslconfig :
[wsl2]
memory=8GB
processors=4
networkingMode=mirrored
Le mode réseau mirrored donne à WSL les mêmes adresses que Windows : un service lancé dans Linux est joignable depuis le réseau local sans redirection de ports. Appliquez les changements avec wsl --shutdown.
Pour débuter sous Linux, voir Les commandes Linux essentielles. Docker Desktop et Podman Desktop s'appuient d'ailleurs sur WSL (voir Installer Docker).
4. Windows Sandbox : tester sans risque
Windows Sandbox lance un Windows vierge et jetable dans une fenêtre. Tout ce qui s'y passe disparaît à la fermeture : idéal pour tester un logiciel douteux ou ouvrir une pièce jointe suspecte. Disponible sur les éditions Professionnel, Entreprise et Éducation.
Enable-WindowsOptionalFeature -Online `
-FeatureName Containers-DisposableClientVM -All
Un fichier de configuration (.wsb) personnalise le bac à sable. Exemple : sans réseau, avec un dossier de l'hôte monté en lecture seule.
<Configuration>
<Networking>Disable</Networking>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\Users\spo\Downloads\A-tester</HostFolder>
<SandboxFolder>C:\A-tester</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
</Configuration>
Enregistrez-le sous analyse.wsb et double-cliquez dessus. Couper le réseau empêche un logiciel malveillant de contacter son serveur ou de se propager.
5. Hyper-V
Hyper-V est l'hyperviseur intégré aux éditions Professionnel, Entreprise et Éducation. Il convient pour un laboratoire de test : un contrôleur de domaine, un serveur Linux, une version de Windows à valider.
Enable-WindowsOptionalFeature -Online `
-FeatureName Microsoft-Hyper-V -All
Après redémarrage, le Gestionnaire Hyper-V permet de créer des machines virtuelles, ou en PowerShell :
New-VMSwitch -Name "Externe" -NetAdapterName "Ethernet" `
-AllowManagementOS $true
New-VM -Name "Debian-test" -Generation 2 -MemoryStartupBytes 4GB `
-NewVHDPath "D:\VM\Debian-test.vhdx" -NewVHDSizeBytes 40GB `
-SwitchName "Externe"
Set-VMFirmware -VMName "Debian-test" `
-SecureBootTemplate MicrosoftUEFICertificateAuthority
Add-VMDvdDrive -VMName "Debian-test" -Path "D:\ISO\debian.iso"
Start-VM -Name "Debian-test"
Le modèle Secure Boot MicrosoftUEFICertificateAuthority est nécessaire pour démarrer une distribution Linux en génération 2. Pour choisir entre Hyper-V, Proxmox, VMware et les autres, voir Choisir son hyperviseur.
6. Les outils Sysinternals indispensables
winget install Microsoft.Sysinternals.Suite
| Outil | Usage |
|---|---|
| Process Explorer | Gestionnaire des tâches complet : arbre des processus, DLL, handles, vérification VirusTotal |
| Autoruns | Tout ce qui démarre automatiquement, à trier et désactiver |
| Process Monitor | Chaque accès fichier, registre, réseau en direct : trouver pourquoi une application échoue (« ACCESS DENIED », « NAME NOT FOUND ») |
| TCPView | Connexions réseau par processus, en direct |
| Sigcheck | Vérifier la signature et la réputation des fichiers : sigcheck -u -e C:\Windows\System32 |
| PsExec | Lancer une commande sur un autre PC ou en tant que SYSTEM : psexec -s -i cmd |
| BgInfo | Afficher nom, adresse IP et version sur le fond d'écran (pratique sur un parc) |
Process Monitor est l'outil de dernier recours le plus efficace : filtrez sur le nom du processus et le résultat « ACCESS DENIED » pour voir exactement quel fichier ou quelle clé de registre bloque une application.
7. Accès distant : RDP, OpenSSH et PowerShell à distance
Le bureau à distance (RDP) est disponible en serveur sur les éditions Professionnel et supérieures (Paramètres › Système › Bureau à distance). Pour le sécuriser :
- gardez l'authentification au niveau du réseau (NLA) activée ;
- n'exposez jamais le port 3389 sur internet : passez par un VPN (WireGuard par exemple) ;
- limitez l'accès par le pare-feu à un réseau d'administration (voir Sécurité de Windows 11) ;
- n'autorisez que les comptes nécessaires (groupe « Utilisateurs du Bureau à distance »).
OpenSSH est intégré à Windows. Le client est installé par défaut ; le serveur s'ajoute en une commande, et permet d'administrer le PC en ligne de commande comme un serveur Linux :
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Set-Service sshd -StartupType Automatic
Start-Service sshd
Les clés publiques des administrateurs se placent dans C:\ProgramData\ssh\administrators_authorized_keys. Appliquez les mêmes principes que pour Sécuriser l'accès SSH d'un serveur Linux : clés plutôt que mots de passe, accès restreint par le pare-feu.
PowerShell à distance (WinRM) administre un ou plusieurs PC du domaine :
Enable-PSRemoting -Force # sur le PC à administrer
Enter-PSSession -ComputerName PC-COMPTA # session interactive
Invoke-Command -ComputerName PC1, PC2 -ScriptBlock {
Get-Service wuauserv
} # commande sur plusieurs PC
La comparaison complète des méthodes d'accès est dans Accès à distance : RDP, VNC, SSH.
8. Automatiser avec les tâches planifiées
Un script PowerShell devient une tâche automatique en quelques lignes. Exemple : mettre à jour tous les logiciels chaque dimanche à 12 h, avec les droits les plus élevés :
$action = New-ScheduledTaskAction -Execute 'winget.exe' `
-Argument 'upgrade --all --silent --accept-package-agreements'
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At 12:00
Register-ScheduledTask -TaskName 'Mises a jour winget' `
-Action $action -Trigger $trigger -RunLevel Highest
Vérifiez la dernière exécution avec Get-ScheduledTaskInfo -TaskName 'Mises a jour winget'.
9. Récapitulatif
| Outil | Éditions | Installation |
|---|---|---|
| PowerShell 7 | Toutes | winget install Microsoft.PowerShell |
| Windows Terminal | Toutes | Inclus dans Windows 11 |
| winget | Toutes | Inclus (App Installer) |
| WSL | Toutes | wsl --install |
| Windows Sandbox | Professionnel et supérieures | Fonctionnalité facultative |
| Hyper-V | Professionnel et supérieures | Fonctionnalité facultative |
| Sysinternals | Toutes | winget install Microsoft.Sysinternals.Suite |
| Serveur RDP | Professionnel et supérieures | Paramètres › Système › Bureau à distance |
| Serveur OpenSSH | Toutes | Fonctionnalité facultative |