Vos postes Windows en domaine se verrouillent ou se déconnectent tout seuls ? Voici une méthode complète, concrète et éprouvée pour diagnostiquer et corriger le problème (GPO, stratégies locales, RDS/VDI, Intune/MDM), avec scripts PowerShell, tableaux récapitulatifs et check‑list de déploiement.
Vue d’ensemble de la question
Dans plusieurs machines jointes au domaine, les utilisateurs voient l’écran se verrouiller ou la session se fermer de façon inattendue ; ils doivent ressaisir leur mot de passe. Le phénomène survient quotidiennement et perturbe la productivité. Les causes les plus fréquentes sont : GPO mal calibrées (écran de veille, inactivité), stratégies de sécurité locales, limites d’inactivité RDS/VDI, profils MDM (Intune) qui surchargent les GPO, scripts ou tâches planifiées déclenchant un logoff, présence ou « verrouillage dynamique » via Bluetooth, ou encore paramètres d’alimentation trop agressifs.
Ce qu’il faut clarifier dès le départ
| Symptôme observé | Effet côté utilisateur | Indices techniques |
|---|---|---|
| Verrouillage de la session | Écran de connexion, session toujours ouverte en arrière‑plan | Événements 4800 (lock) / 4801 (unlock) dans Sécurité (si audit activée) |
| Fermeture de session | Applications fermées, retour à l’écran de connexion | Événement 4647 (logoff initié par l’utilisateur) ou 4634 (compte déconnecté) |
| Déconnexion RDP (RDS/VDI) | Session distante « Déconnectée », parfois perd des apps | Journal TerminalServices-LocalSessionManager : 24/25 (disconnect/reconnect) |
Diagnostic rapide (5 à 10 minutes)
- Observer : l’écran se verrouille‑t‑il (session intacte) ou y a‑t‑il fermeture (apps relancées) ?
- Lancer
gpresultpour voir les GPO effectives (utilisateur + ordinateur) et les paramètres de personnalisation. - Consulter l’Observateur d’événements : Sécurité (IDs 4647, 4634, 4800, 4801) et System (réveils/veille, redémarrages).
- Vérifier les délais d’alimentation (powercfg) et la présence d’un écran de veille forcé ou d’une limite d’inactivité machine.
- Sur RDS/VDI : contrôler les limites de session (Session Time Limits), scripts de déconnexion et le broker.
Réponse & solutions proposées
Contrôler les stratégies de groupe (GPO) « Screen Saver / Lock Screen » appliquées
Côté utilisateur
- Ouvrez l’invite de commandes (sans privilèges admin).
- Exécutez :
mkdir C:\F1 2>NUL gpresult /h C:\F1\gpo.html - Ouvrez C:\F1\gpo.html et contrôlez dans Configuration utilisateur > Stratégies > Modèles d’administration > Panneau de configuration > Personnalisation :
- Activer l’écran de veille
- Délai d’attente de l’écran de veille (Screen saver timeout)
- Mot de passe requis à la reprise (Password protect the screen saver)
- Imposer un écran de veille spécifique (Force specific screen saver)
Côté ordinateur
- Ouvrez l’invite de commandes en administrateur.
- Exécutez :
gpresult /h C:\gpo.html - Examinez la même arborescence sous Configuration ordinateur et vérifiez si une stratégie côté machine impose des délais courts ou une limite d’inactivité.
- Supprimez ou corrigez la GPO incriminée, puis forcez l’actualisation :
gpupdate /force
Clés de registre associées (référence)
| Portée | Clé/valeur | Rôle | Remarques |
|---|---|---|---|
| Utilisateur (Politique) | HKCU\Software\Policies\Microsoft\Windows\Control Panel\Desktop\ScreenSaveActive (REG_SZ 0/1) | Active/désactive l’écran de veille | Prioritaire par rapport à la clé « non‑Policies » |
| Utilisateur (Politique) | ...\ScreenSaveTimeOut (REG_SZ, secondes) | Temps d’inactivité avant écran de veille | Ex. 1800 pour 30 min |
| Utilisateur (Politique) | ...\ScreenSaverIsSecure (REG_SZ 0/1) | Demander le mot de passe à la reprise | 1 = Oui |
| Utilisateur (Politique) | ...\SCRNSAVE.EXE (REG_SZ, chemin) | Écran de veille imposé | Ex. %SystemRoot%\System32\scrnsave.scr |
| Machine (Sécurité) | HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\InactivityTimeoutSecs (DWORD) | Interactive logon: Machine inactivity limit | 0 = illimité, sinon secondes avant verrouillage |
| Machine (Sécurité) | HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ScRemoveOption (REG_SZ) | Comportement retrait carte à puce | 0 = aucune action, 1 = verrouiller, 2 = logoff, 3 = déconnecter RDP |
Audit express par PowerShell (poste local)
$report = [ordered]@{}
# GPO/Reg écrans de veille
$hkcuPolicy = 'HKCU:\Software\Policies\Microsoft\Windows\Control Panel\Desktop'
$report.ScreenSaveActive = (Get-ItemProperty -Path $hkcuPolicy -Name ScreenSaveActive -ErrorAction SilentlyContinue).ScreenSaveActive
$report.ScreenSaveTimeOut = (Get-ItemProperty -Path $hkcuPolicy -Name ScreenSaveTimeOut -ErrorAction SilentlyContinue).ScreenSaveTimeOut
$report.ScreenSaverIsSecure = (Get-ItemProperty -Path $hkcuPolicy -Name ScreenSaverIsSecure -ErrorAction SilentlyContinue).ScreenSaverIsSecure
$report.SCRNSAVE = (Get-ItemProperty -Path $hkcuPolicy -Name SCRNSAVE.EXE -ErrorAction SilentlyContinue).'SCRNSAVE.EXE'
# Limite d'inactivité machine
$hklmSys = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System'
$report.InactivityTimeoutSecs = (Get-ItemProperty -Path $hklmSys -Name InactivityTimeoutSecs -ErrorAction SilentlyContinue).InactivityTimeoutSecs
# Verrouillage dynamique (Bluetooth)
$hkcuWinlogon = 'HKCU:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon'
$report.DynamicLockEnabled = (Get-ItemProperty -Path $hkcuWinlogon -Name EnableGoodbye -ErrorAction SilentlyContinue).EnableGoodbye
# Paramètres d'alimentation courants (AC uniquement à titre indicatif)
$report.MonitorTimeoutAC = (powercfg /q | Select-String -Pattern 'VIDEOIDLE' -Context 0,5 | Out-String)
$report.SleepTimeoutAC = (powercfg /q | Select-String -Pattern 'STANDBYIDLE' -Context 0,5 | Out-String)
$report | Format-List
Audit multi‑postes (AD + PS Remoting)
Exemple pour balayer un OU d’ordinateurs et récupérer les valeurs clés :
Import-Module ActiveDirectory
$computers = Get-ADComputer -Filter * -SearchBase "OU=Postes,DC=contoso,DC=local" | Select-Object -ExpandProperty Name
$script = {
$o = [ordered]@{Computer=$env:COMPUTERNAME}
try {
$o.InactivityTimeoutSecs = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' `
-Name InactivityTimeoutSecs -ErrorAction SilentlyContinue).InactivityTimeoutSecs
$o.ScreenSaveTimeOut = (Get-ItemProperty 'HKCU:\Software\Policies\Microsoft\Windows\Control Panel\Desktop' `
-Name ScreenSaveTimeOut -ErrorAction SilentlyContinue).ScreenSaveTimeOut
$o.ScreenSaverIsSecure = (Get-ItemProperty 'HKCU:\Software\Policies\Microsoft\Windows\Control Panel\Desktop' `
-Name ScreenSaverIsSecure -ErrorAction SilentlyContinue).ScreenSaverIsSecure
$o.DynamicLock = (Get-ItemProperty 'HKCU:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon' `
-Name EnableGoodbye -ErrorAction SilentlyContinue).EnableGoodbye
} catch { }
[pscustomobject]$o
}
$result = foreach($c in $computers){ Invoke-Command -ComputerName $c -ScriptBlock $script -ErrorAction SilentlyContinue }
$result | Export-Csv C:\F1\Verrouillage-Audit.csv -NoTypeInformation -Delimiter ';'
Contrôler les autres paramètres susceptibles de fermer la session
| Emplacement | Élément à vérifier | Chemin/commande | Valeur cible | Action |
|---|---|---|---|---|
| Paramètres d’alimentation (GPO ou local) | Mise en veille/hibernation trop courte | GPO : Système > Gestion de l’alimentation Cmd : powercfg /change monitor-timeout-ac 30 | Postes fixes : écran 30 min, veille désactivée selon contexte | Allonger les délais ou désactiver la veille sur postes fixes |
| Stratégies de sécurité locale | Interactive logon: Machine inactivity limit | secpol.msc > Options de sécuritéReg : ...InactivityTimeoutSecs | 0 (illimité) ou délai ≥ 15–30 min | Ajuster selon besoin sécurité/métier |
| Serveur RDS / RD Session Host | Set time limit for active but idle Remote Desktop Services sessions | GPO : Windows Components > Remote Desktop Services > RD Session Host > Session Time Limits | Allonger/neutraliser pendant le diagnostic | Ajuster ou désactiver la limite d’inactivité |
| Tâches planifiées / scripts | Script tiers exécutant logoff, tsdiscon ou LockWorkStation | Cmd : schtasks /query /fo LIST /vPS : Get-ScheduledTask | Aucune action de déconnexion non justifiée | Désactiver la tâche ou corriger le script |
| Verrouillage dynamique (Bluetooth) | PC se verrouille quand l’utilisateur s’éloigne | Paramètres > Comptes > Options de connexion > Verrouillage dynamique | Désactivé pour test | Désactiver pour exclure une cause « présence » |
| Capteurs de présence (Windows 11) | Verrouillage à la détection d’absence | Paramètres > Confidentialité & sécurité > Détection de présence | Désactivé pour test | Désactiver/étalonner le délai d’absence |
| Carte à puce | Retrait de carte verrouille/déconnecte | SecPol : Comportement de retrait de la carte à puce Reg : ScRemoveOption | Verrouiller (ou aucune action) selon politique | Adapter selon le contexte (locaux sécurisés vs ouverts) |
| MDM / Intune | MDM force l’auto‑lock | Policy CSP : DeviceLock/MaxInactivityTimeDeviceLock | ≥ 15–30 min (ou selon conformité) | Contrôler profils de configuration et conformité |
| Broker VDI/RDS | Idle timeout trop bas | Paramètres du broker (ex. session timeout) | ≥ 30–60 min selon licence/charge | Aligner avec le besoin métier |
Analyser les journaux pour confirmer la cause
- Observateur d’événements > Journaux Windows > Sécurité :
- 4647 : fermeture de session initiée par l’utilisateur (ou script/tâche agissant en son nom).
- 4634 : compte déconnecté (logoff effectif).
- 4800/4801 : verrouillage/déverrouillage de la station de travail (si l’audit « Autres événements d’ouverture/fermeture » est activée).
- Journaux des services Terminal Server (Applications and Services Logs > Microsoft > Windows > TerminalServices-LocalSessionManager > Operational) :
- 24 : session déconnectée (idle/timeout).
- 25 : session reconnectée.
- Système : événements de veille/réveil (Power-Troubleshooter), erreurs critiques, redémarrages (1074).
Filtrage PowerShell prêt à l’emploi
$since = (Get-Date).AddDays(-3)
$sec = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=@(4634,4647,4800,4801); StartTime=$since} `
| Select-Object TimeCreated, Id, ProviderName, Message
$ts = Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-TerminalServices-LocalSessionManager/Operational';
Id=@(24,25); StartTime=$since} | Select-Object TimeCreated, Id, Message
$sec + $ts | Sort-Object TimeCreated | Format-Table -AutoSize
Mesures correctives rapides
- Tester sur un poste pilote en déliant temporairement la GPO de personnalisation ; si le symptôme disparaît, corriger la GPO.
- Communiquer la valeur cible (par ex. 30 minutes d’inactivité) puis déployer la GPO ajustée.
- Planifier un suivi : vérifier sous 48 h que l’incident ne réapparaît pas.
Scénarios types et remédiations
Postes fixes en open‑space
- Verrouillage voulu mais trop agressif : augmentez Screen saver timeout à 20–30 min et gardez Password protect activé.
- Désactivez la veille automatique en heures de bureau via GPO d’alimentation, tout en autorisant la mise en veille hors heures.
Ordinateurs portables
- Distinguez secteur/batterie : délais plus courts sur batterie (10–15 min), plus longs sur secteur (20–30 min).
- Validez que « Exiger un mot de passe à la sortie de veille » est cohérent avec la politique de sécurité.
Serveurs RDS / Hôtes de session
- Contrôlez Session Time Limits (idle/disconnected/active) ; évitez de descendre sous 30–60 min d’inactivité pour les sessions actives.
- Vérifiez les stratégies de déconnexion à la fermeture de client RDP et les scripts du broker.
- Analysez les événements 24/25 pour corréler une déconnexion à un délai précis.
VDI / Brokers
- Beaucoup d’environnements définissent un idle timeout côté broker pour libérer les ressources. Alignez‑le avec vos GPO pour éviter les effets contradictoires.
Parc géré en Intune / MDM
- Le profil DeviceLock/MaxInactivityTimeDeviceLock peut surcharger les GPO classiques. Vérifiez les profils de configuration et les règles de conformité (ex. « verrouiller après x minutes »).
- Sur appareils hybrides AD/AAD, harmonisez les stratégies AD et MDM ; privilégiez une seule source de vérité.
Postes avec carte à puce / badges
- Si Smart card removal behavior = Logoff, l’utilisateur perd ses apps à chaque retrait. Préférez Lock Workstation si compatible avec votre PSSI.
Valeurs recommandées (référence non normative)
| Profil d’usage | Écran de veille | Mot de passe à la reprise | Limite d’inactivité machine | Remarques |
|---|---|---|---|---|
| Poste fixe en bureau | 20–30 min | Activé | 0 (illimité) ou >= 30 min | Équilibre sécurité/confort |
| Portable en mobilité | 10–20 min | Activé | 10–20 min | Plus strict sur batterie |
| RDS/VDI | N/A | Par politique | Broker : 30–60 min idle | Éviter la fermeture de session non désirée |
| Zone à haute sensibilité | 5–10 min | Activé | 5–10 min | Se conformer aux exigences réglementaires |
Procédure de remédiation recommandée
- Inventorier les GPO actives avec
gpresultet, si possible, un GPO Report central. - Identifier les doublons/contraintes (ex. GPO Utilisateur + Machine + MDM + Loopback en Remplacer).
- Prototyper une GPO « Personnalisation – Standard » avec délais cibles, déployée sur un groupe pilote.
- Mesurer via journaux (IDs 4800/4801/4634/4647) et retours utilisateurs pendant 48 h.
- Déployer par vagues et documenter (valeurs, périmètre, exceptions).
Bonnes pratiques GPO pour éviter les surprises
- Group Policy Loopback : en Remplacer, les stratégies utilisateur dépendront de l’ordinateur cible (RDS/VDI). Vérifiez le mode dans le rapport
gpresult. - WMI filters : documentez‑les pour éviter des applications partielles de stratégies.
- Ordre et héritage : limitez les GPO concurrentes sur le même paramètre.
- Commentaires GPO : ajoutez le propriétaire, la date et la justification.
Commandes utiles de terrain
:: Rapport GPO utilisateur + machine
gpresult /h C:\F1\gpo.html
:: Forcer l’actualisation des stratégies
gpupdate /force
:: Lister tâches susceptibles de déconnecter/locker
schtasks /query /fo LIST /v | findstr /i "logoff tsdiscon LockWorkStation"
:: Interroger délais d’écran et veille
powercfg /q > C:\F1\powercfg.txt
powercfg /change monitor-timeout-ac 30
powercfg /change standby-timeout-ac 0
:: État des sessions (RDS)
query user
query session
Check‑list d’audit express
- Le symptôme est‑il un lock ou un logoff ?
- Quels IDs d’événements dans les 5 dernières minutes ?
- Quelle(s) GPO imposent Screen saver / Machine inactivity ?
- MDM/Intune force‑t‑il un DeviceLock ?
- Capteurs de présence / verrouillage dynamique actifs ?
- Scripts ou tâches prévus (maintenance/licences) ?
- Sur RDS/VDI : Session Time Limits côté Host et côté broker ?
FAQ rapide
Pourquoi un écran de veille « 1 minute » provoque‑t‑il des verrouillages à répétition ?
Parce que, combiné à « Mot de passe requis à la reprise », la moindre inactivité déclenche l’écran de connexion. En production, évitez < 5 minutes sauf exigence.
Une GPO peut‑elle être « ignorée » par Intune ?
Oui : certaines stratégies MDM (CSP) ont priorité, notamment DeviceLock. Harmonisez et centralisez vos sources de politiques.
Pourquoi mon gpupdate ne change rien ?
Loopback en mode Remplacer, cache, ou GPO non ciblée (sécurité/filtre WMI). Vérifiez le rapport HTML complet et l’étendue de sécurité.
Comment prouver la cause ?
Corrélez un verrouillage/déconnexion à un événement (4800/4647…), notez l’heure, puis montrez la stratégie (GPO/MDM) qui impose ce délai précis.
Modèles de communication pour les équipes
Objet : Ajustement du verrouillage automatique des postes Windows
Message : Pour améliorer la sécurité tout en limitant l’impact, le verrouillage automatique passe à 30 min d’inactivité sur les postes de bureau et à 15 min sur portables. Un redémarrage peut être requis. En cas de besoin métier particulier, ouvrez un ticket « Exception verrouillage ».
Informations complémentaires utiles
- Un délai d’écran de veille trop court (≤ 1 min) associé à l’option « À la reprise, demander l’ouverture de session » suffit à produire le symptôme.
- Sur des serveurs 2019+ avec expérience Windows 10/11, des profils MDM (Intune/Endpoint Manager) via Personalization/DeviceLock peuvent surcharger les GPO ; contrôlez les profils s’il y a du MDM.
- Les environnements VDI/RDS utilisent souvent des scripts de déconnexion pour libérer les licences ; validez que l’idle timeout côté broker correspond à votre besoin métier.
Synthèse
Le verrouillage ou la fermeture inopinée de session sur des postes Windows membres d’un domaine provient dans la majorité des cas d’une combinaison de politiques mal alignées : GPO utilisateur/machine, limites RDS/VDI, profils MDM et automatisations locales. En procédant méthodiquement (rapport gpresult, analyse journaux, audit des paramètres d’alimentation et de sécurité), vous isolez la cause, corrigez la valeur de référence (par ex. 30 minutes d’inactivité), puis déployez en vagues avec mesure d’impact. Les scripts fournis et les tableaux de contrôle vous aident à industrialiser le diagnostic et la remédiation, pour retrouver un environnement stable et conforme à votre PSSI.

