Ouvertures de sessions interactives : nombre d’ouvertures de sessions précédentes réalisées en utilisant le cache (lorsqu’aucun contrôleur de domaine n’est disponible)
Vérifié avec Windows Security Options 25H2 — mis à jour le 13 juillet 2026
Stratégie de sécurité
Ceci est un paramètre « Options de sécurité » (Paramètres Windows > Paramètres de sécurité), appliqué par le moteur de sécurité — ce n'est pas un modèle d'administration (ADMX). Dans GPMC/gpedit, il se configure sous Stratégies locales > Options de sécurité.
Chemin dans la console GPO
Configuration ordinateur\Paramètres Windows\Paramètres de sécurité\Stratégies locales\Options de sécurité\Ouvertures de sessions interactives Description
Ce paramètre indique combien d’ouvertures de session de domaine Windows met en cache lorsque aucun contrôleur de domaine n’est joignable. La valeur par défaut d’un poste client est de 10. Une valeur plus faible réduit l’exposition des informations hors connexion, mais peut empêcher un utilisateur nomade de se connecter ; zéro désactive ce cache.
Registre
Software\Microsoft\Windows NT\CurrentVersion\Winlogon Nom de valeur : CachedLogonsCount
Générateur d'exports
BETAConfigurez l'état, la portée et les options, puis générez les sorties .reg, PowerShell, Intune et SCCM — ou ajoutez le paramètre à une collection multi-paramètres.
Ces exports écrivent le registre — ce n'est pas une GPO managée. ⓘ
Paramètre de stratégie de sécurité : une GPO de domaine (Paramètres de sécurité) peut réécraser cette valeur de registre au prochain rafraîchissement. Préférez la configuration via GPMC > Options de sécurité.
Fichier .reg
Windows Registry Editor Version 5.00
; Exported from gporais.com
; Policy: Ouvertures de sessions interactives : nombre d’ouvertures de sessions précédentes réalisées en utilisant le cache (lorsqu’aucun contrôleur de domaine n’est disponible)
; State: Enabled
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]
"CachedLogonsCount"=dword:00000001
"CachedLogonsCount"=dword:00000000 Autres formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Ouvertures de sessions interactives : nombre d’ouvertures de sessions précédentes réalisées en utilisant le cache (lorsqu’aucun contrôleur de domaine n’est disponible)
# State: Enabled
$path = 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'CachedLogonsCount' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'CachedLogonsCount' -Value 0 -Type DWord Intune XML
Aucune correspondance directe Policy CSP / OMA-URI pour cette stratégie. Utilisez l'onglet Intune Remediation, ou importez l'ADMX dans Intune. Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Ouvertures de sessions interactives : nombre d’ouvertures de sessions précédentes réalisées en utilisant le cache (lorsqu’aucun contrôleur de domaine n’est disponible)
# State: Enabled
function Test-RegistryValue {
param(
[Parameter(Mandatory = $true)][string]$Path,
[Parameter(Mandatory = $true)][string]$Name,
[object]$Expected,
[ValidateSet('String', 'DWord', 'MultiString')][string]$Kind = 'String',
[switch]$Absent
)
try {
$item = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction Stop
} catch {
return $Absent.IsPresent
}
if ($Absent.IsPresent) { return $false }
$actual = $item.$Name
if ($Kind -eq 'DWord') { return ([int64]$actual) -eq ([int64]$Expected) }
if ($Kind -eq 'MultiString') {
$actualValues = @($actual)
$expectedValues = @($Expected)
if ($actualValues.Count -ne $expectedValues.Count) { return $false }
for ($i = 0; $i -lt $expectedValues.Count; $i++) {
if ([string]$actualValues[$i] -ne [string]$expectedValues[$i]) { return $false }
}
return $true
}
return [string]$actual -eq [string]$Expected
}
$checks = @(
(Test-RegistryValue -Path 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name 'CachedLogonsCount' -Expected 1 -Kind DWord)
(Test-RegistryValue -Path 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name 'CachedLogonsCount' -Expected 0 -Kind DWord)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Ouvertures de sessions interactives : nombre d’ouvertures de sessions précédentes réalisées en utilisant le cache (lorsqu’aucun contrôleur de domaine n’est disponible)
# State: Enabled
$path = 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'CachedLogonsCount' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'CachedLogonsCount' -Value 0 -Type DWord Scripts SCCM
# Exported from gporais.com
# Policy: Ouvertures de sessions interactives : nombre d’ouvertures de sessions précédentes réalisées en utilisant le cache (lorsqu’aucun contrôleur de domaine n’est disponible)
# State: Enabled
# SCCM Configuration Item guidance:
# Create a Configuration Item of type "Setting: Script".
# Discovery script: use the Detection script below.
# Remediation script: use the Remediation script below.
# Compliance rule: the Discovery script output equals 'Compliant'.
# === Detection script ===
# Exported from gporais.com
# Policy: Ouvertures de sessions interactives : nombre d’ouvertures de sessions précédentes réalisées en utilisant le cache (lorsqu’aucun contrôleur de domaine n’est disponible)
# State: Enabled
function Test-RegistryValue {
param(
[Parameter(Mandatory = $true)][string]$Path,
[Parameter(Mandatory = $true)][string]$Name,
[object]$Expected,
[ValidateSet('String', 'DWord', 'MultiString')][string]$Kind = 'String',
[switch]$Absent
)
try {
$item = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction Stop
} catch {
return $Absent.IsPresent
}
if ($Absent.IsPresent) { return $false }
$actual = $item.$Name
if ($Kind -eq 'DWord') { return ([int64]$actual) -eq ([int64]$Expected) }
if ($Kind -eq 'MultiString') {
$actualValues = @($actual)
$expectedValues = @($Expected)
if ($actualValues.Count -ne $expectedValues.Count) { return $false }
for ($i = 0; $i -lt $expectedValues.Count; $i++) {
if ([string]$actualValues[$i] -ne [string]$expectedValues[$i]) { return $false }
}
return $true
}
return [string]$actual -eq [string]$Expected
}
$checks = @(
(Test-RegistryValue -Path 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name 'CachedLogonsCount' -Expected 1 -Kind DWord)
(Test-RegistryValue -Path 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name 'CachedLogonsCount' -Expected 0 -Kind DWord)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Ouvertures de sessions interactives : nombre d’ouvertures de sessions précédentes réalisées en utilisant le cache (lorsqu’aucun contrôleur de domaine n’est disponible)
# State: Enabled
$path = 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'CachedLogonsCount' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'CachedLogonsCount' -Value 0 -Type DWord