Périphériques WPD : refuser l’accès en lecture
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\Accès au stockage amovible Description
Ce paramètre de stratégie refuse l’accès en lecture aux disques amovibles, y compris éventuellement aux baladeurs multimédias, aux téléphones cellulaires, aux affichages auxiliaires et aux appareils CE. Si vous activez ce paramètre de stratégie, l’accès en lecture est refusé à cette classe de stockage amovible. Si vous désactivez ce paramètre de stratégie ou ne le configurez pas, l’accès en lecture est autorisé pour cette classe de stockage amovible.
Registre
Software\Policies\Microsoft\Windows\RemovableStorageDevices\{6AC27878-A6FA-4155-BA85-F98F491D4F33} Nom de valeur : Deny_Read
Activé : Deny_Read = 1
Désactivé : Deny_Read = 0
Cette stratégie définit plusieurs valeurs de registre :
Deny_Read {F33FDC04-D1AC-4E8E-9A30-19BBD4B108AE} Deny_Read = 1 Deny_Read = 0 MDM / Intune (CSP)
./Device/Vendor/MSFT/Policy/Config/ADMX_RemovableStorage/WPDDevices_DenyRead_Access_2 Plusieurs correspondances CSP possibles ; la première a été retenue.
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: Périphériques WPD : refuser l’accès en lecture
; State: Enabled
; Supported on: Au minimum Windows Vista
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{6AC27878-A6FA-4155-BA85-F98F491D4F33}]
"Deny_Read"=dword:00000001
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{F33FDC04-D1AC-4E8E-9A30-19BBD4B108AE}]
"Deny_Read"=dword:00000001 Autres formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Périphériques WPD : refuser l’accès en lecture
# State: Enabled
# Supported on: Au minimum Windows Vista
$path = 'HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{6AC27878-A6FA-4155-BA85-F98F491D4F33}'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'Deny_Read' -Value 1 -Type DWord
$path = 'HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{F33FDC04-D1AC-4E8E-9A30-19BBD4B108AE}'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'Deny_Read' -Value 1 -Type DWord Intune XML
OMA-URI: ./Device/Vendor/MSFT/Policy/Config/ADMX_RemovableStorage/WPDDevices_DenyRead_Access_2
Data type: String
Value:
<enabled/> Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Périphériques WPD : refuser l’accès en lecture
# 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\RemovableStorageDevices\{6AC27878-A6FA-4155-BA85-F98F491D4F33}' -Name 'Deny_Read' -Expected 1 -Kind DWord)
(Test-RegistryValue -Path 'HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{F33FDC04-D1AC-4E8E-9A30-19BBD4B108AE}' -Name 'Deny_Read' -Expected 1 -Kind DWord)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Périphériques WPD : refuser l’accès en lecture
# State: Enabled
# Supported on: Au minimum Windows Vista
$path = 'HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{6AC27878-A6FA-4155-BA85-F98F491D4F33}'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'Deny_Read' -Value 1 -Type DWord
$path = 'HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{F33FDC04-D1AC-4E8E-9A30-19BBD4B108AE}'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'Deny_Read' -Value 1 -Type DWord Scripts SCCM
# Exported from gporais.com
# Policy: Périphériques WPD : refuser l’accès en lecture
# 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: Périphériques WPD : refuser l’accès en lecture
# 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\RemovableStorageDevices\{6AC27878-A6FA-4155-BA85-F98F491D4F33}' -Name 'Deny_Read' -Expected 1 -Kind DWord)
(Test-RegistryValue -Path 'HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{F33FDC04-D1AC-4E8E-9A30-19BBD4B108AE}' -Name 'Deny_Read' -Expected 1 -Kind DWord)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Périphériques WPD : refuser l’accès en lecture
# State: Enabled
# Supported on: Au minimum Windows Vista
$path = 'HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{6AC27878-A6FA-4155-BA85-F98F491D4F33}'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'Deny_Read' -Value 1 -Type DWord
$path = 'HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{F33FDC04-D1AC-4E8E-9A30-19BBD4B108AE}'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'Deny_Read' -Value 1 -Type DWord Vous construisez une collection multi-paramètres ? Ajoutez ce paramètre et générez des exports combinés (.reg, PowerShell, GPO).