Supprimer au redémarrage du système les profils utilisateur plus anciens qu’un nombre de jours spécifiés
Vérifié avec Windows 11 25H2 — mis à jour le 30 juillet 2026
Pris en charge sur : Au minimum Windows Vista
Chemin dans la console GPO
Configuration ordinateur\Modèles d'administration\Système\Profils utilisateur Description
Ce paramètre de stratégie permet à un administrateur de supprimer automatiquement au redémarrage du système des profils utilisateur qui n’ont pas été utilisés pendant un nombre de jours spécifié. Remarque : un jour est interprété comme étant 24 heures après l’accès à un profil utilisateur spécifique. Si vous activez ce paramètre de stratégie, le service Profil utilisateur supprime automatiquement au redémarrage suivant du système tous les profils utilisateur qui n’ont pas été utilisés au cours du nombre de jours spécifié. Si vous désactivez ce paramètre de stratégie ou ne le configurez pas, le service Profil utilisateur ne supprime automatiquement aucun profil au redémarrage suivant du système.
Registre
Software\Policies\Microsoft\Windows\System MDM / Intune (CSP)
./Device/Vendor/MSFT/Policy/Config/ADMX_UserProfiles/CleanupProfiles Documentation Microsoft Learn Données de correspondance : Microsoft Learn (CC BY 4.0)
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. ⓘ
Fichier .reg
Windows Registry Editor Version 5.00
; Exported from gporais.com
; Policy: Supprimer au redémarrage du système les profils utilisateur plus anciens qu’un nombre de jours spécifiés
; State: Enabled
; Supported on: Au minimum Windows Vista
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System]
"CleanupProfiles"=dword:0000001e Autres formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Supprimer au redémarrage du système les profils utilisateur plus anciens qu’un nombre de jours spécifiés
# State: Enabled
# Supported on: Au minimum Windows Vista
$path = 'HKLM:\Software\Policies\Microsoft\Windows\System'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'CleanupProfiles' -Value 30 -Type DWord Intune XML
OMA-URI: ./Device/Vendor/MSFT/Policy/Config/ADMX_UserProfiles/CleanupProfiles
Data type: String
Value:
<enabled/>
<data id="CleanupProfiles_Days" value="30"/> Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Supprimer au redémarrage du système les profils utilisateur plus anciens qu’un nombre de jours spécifiés
# State: Enabled
# Supported on: Au minimum Windows Vista
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\Policies\Microsoft\Windows\System' -Name 'CleanupProfiles' -Expected 30 -Kind DWord)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Supprimer au redémarrage du système les profils utilisateur plus anciens qu’un nombre de jours spécifiés
# State: Enabled
# Supported on: Au minimum Windows Vista
$path = 'HKLM:\Software\Policies\Microsoft\Windows\System'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'CleanupProfiles' -Value 30 -Type DWord Scripts SCCM
# Exported from gporais.com
# Policy: Supprimer au redémarrage du système les profils utilisateur plus anciens qu’un nombre de jours spécifiés
# State: Enabled
# Supported on: Au minimum Windows Vista
# 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: Supprimer au redémarrage du système les profils utilisateur plus anciens qu’un nombre de jours spécifiés
# State: Enabled
# Supported on: Au minimum Windows Vista
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\Policies\Microsoft\Windows\System' -Name 'CleanupProfiles' -Expected 30 -Kind DWord)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Supprimer au redémarrage du système les profils utilisateur plus anciens qu’un nombre de jours spécifiés
# State: Enabled
# Supported on: Au minimum Windows Vista
$path = 'HKLM:\Software\Policies\Microsoft\Windows\System'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'CleanupProfiles' -Value 30 -Type DWord Vous construisez une collection multi-paramètres ? Ajoutez ce paramètre et générez des exports combinés (.reg, PowerShell, GPO).