Gérer des machines à distance sans devoir désactiver le pare-feu, c’est possible. Il faut juste ouvrir les bons ports pour WMI, DCOM et RPC — ni plus, ni moins. On pourra utiliser WMI pour interroger des machines à distance — collecter des infos système, lancer des commandes, gérer les tâches planifiées depuis la console ou un script PowerShell.
Quand on lance une commande Get-WmiObject et qu’on obtient : l’accès RPC a été refusé, la solution facile c’est désactiver le pare-feu Windows sur les machines cibles. Mais c’est une très mauvaise idée sur un réseau où cohabitent des machines de niveaux de confiance différents.
La solution correcte : ouvrir précisément les ports nécessaires à WMI et à la gestion à distance des tâches planifiées, avec authentification obligatoire sur chaque règle.
Comment fonctionne WMI en réseau
WMI utilise DCOM (Distributed COM) pour les communications réseau, qui lui-même s’appuie sur RPC (Remote Procedure Call). La pile complète :
Client WMI
→ DCOM (port TCP 135 — RPC Endpoint Mapper)
→ RPC (ports dynamiques — négociés via le port 135)
→ WMI Service (winmgmt)
C’est pour ça qu’on ne peut pas juste “ouvrir le port WMI” : le protocole utilise des ports dynamiques négociés à la connexion, pas un port fixe. Il faut ouvrir le port 135 pour la négociation, et autoriser le trafic RPC dynamique pour les échanges de données.
La gestion à distance des tâches planifiées utilise la même infrastructure RPC, avec le service Schedule en plus.
Création de la GPO
Dans la GPMC :
Clic droit sur l'OU cible → Create a GPO in this domain and link it here
Nom : Firewall_GPupdate
Lier sur SERVEURS et STATIONS — partout où vous voulez pouvoir administrer à distance.
Règles pare-feu à créer
Computer Configuration → Policies → Windows Settings → Security Settings
→ Windows Firewall with Advanced Security → Inbound Rules
Toutes les règles sont configurées avec “Exiger l’authentification” — pas de WMI anonyme sur le réseau.
Règle 1 — WMI Asynchrone (TCP)
Autorise le trafic WMI asynchrone via unsecapp.exe.
| Paramètre | Valeur |
|---|---|
| Programme | %systemroot%\system32\wbem\unsecapp.exe |
| Protocol | TCP |
| Port local | Tout |
| Action | Autoriser |
| Sécurité | Exiger l’authentification |
| Groupe | Infrastructure de gestion Windows (WMI) |
Règle 2 — WMI-In (TCP)
Autorise les connexions WMI entrantes via le service winmgmt.
| Paramètre | Valeur |
|---|---|
| Programme | %SystemRoot%\system32\svchost.exe |
| Service | winmgmt |
| Protocol | TCP |
| Port local | Tout |
| Action | Autoriser |
| Sécurité | Exiger l’authentification |
| Groupe | Infrastructure de gestion Windows (WMI) |
Règle 3 — DCOM-In (TCP 135)
Autorise le trafic DCOM sur le port 135 — c’est le point d’entrée de toute communication WMI réseau.
| Paramètre | Valeur |
|---|---|
| Programme | %SystemRoot%\system32\svchost.exe |
| Service | rpcss |
| Protocol | TCP |
| Port local | 135 |
| Action | Autoriser |
| Sécurité | Exiger l’authentification |
| Groupe | Infrastructure de gestion Windows (WMI) |
Règle 4 — Tâches planifiées RPC-EPMAP
Autorise le trafic RPC/TCP pour le service Planificateur de tâches via l’endpoint mapper.
| Paramètre | Valeur |
|---|---|
| Programme | %SystemRoot%\system32\svchost.exe |
| Service | RPCSS |
| Protocol | TCP |
| Port local | RPC Endpoint Mapper |
| Action | Autoriser |
| Sécurité | Exiger l’authentification |
| Groupe | Gestion à distance des tâches planifiées |
Règle 5 — Tâches planifiées RPC dynamique
Autorise le trafic RPC dynamique pour la gestion à distance des tâches planifiées.
| Paramètre | Valeur |
|---|---|
| Programme | %SystemRoot%\system32\svchost.exe |
| Service | schedule |
| Protocol | TCP |
| Port local | RPC dynamique |
| Action | Autoriser |
| Sécurité | Exiger l’authentification |
| Groupe | Gestion à distance des tâches planifiées |
Vérification post-déploiement
Depuis une machine d’administration après gpupdate /force sur la cible :
# Test WMI basique
Get-WmiObject -ComputerName "NomMachine" -Class Win32_OperatingSystem |
Select-Object Caption, Version, LastBootUpTime
# Test via CIM (méthode moderne)
Get-CimInstance -ComputerName "NomMachine" -ClassName Win32_ComputerSystem
# Test gestion tâches planifiées à distance
$session = New-CimSession -ComputerName "NomMachine"
Get-ScheduledTask -CimSession $session | Select-Object -First 5
Si les commandes retournent des résultats sans erreur d’accès RPC, les règles sont correctement appliquées.
Ce que cette GPO ne fait pas
Cette GPO ouvre uniquement ce qui est nécessaire à WMI et à la gestion des tâches planifiées. Elle n’ouvre pas PSRemoting (WinRM / port 5985), SMB, ni aucun autre service d’administration à distance. Chaque service a ses propres règles pare-feu, dans ses propres GPOs.