Set the DLP provider ID for Recall
Verified with Windows 11 25H2 — updated on July 10, 2026 Supported on: At least Windows 11 Pro, Enterprise, or Education with Windows Sandbox
Shipped in a Windows update: not in the official ADMX package (Administrative Templates (.admx) for Windows 11 Oct 2025 Update), present no later than KB5124008 (build 26200.9445).
Path in the GPO console
Computer Configuration\Administrative Templates\Windows Components\Windows AI User Configuration\Administrative Templates\Windows Components\Windows AI Registry
SOFTWARE\Policies\Microsoft\Windows\WindowsAI SOFTWARE\Policies\Microsoft\Windows\WindowsAI Description
This policy allows an admin to specify a DLP provider, which Recall will use if the provider is properly installed. You will need to get the string for this from your provider. It will look something like 'key:HKEY_LOCAL_MACHINE\Software\Contoso\DLP; value:InstallPath; binary:contosoDLP.dll' (without any quotes in the value). Important: This setting applies to Enterprise and Education client SKUs only.
Export Builder
BETAConfigure the state, scope and options, then generate .reg, PowerShell, Intune and SCCM outputs — or add the setting to a multi-setting collection.
These exports write the registry — this is not a managed GPO. ⓘ
Applying both scopes creates an ambiguous configuration (computer takes precedence over user). Only do this intentionally.
.reg file
Windows Registry Editor Version 5.00
; Exported from gporais.com
; Policy: Set the DLP provider ID for Recall
; State: Enabled
; Scope: Computer (HKLM)
; Supported on: At least Windows 11 Pro, Enterprise, or Education with Windows Sandbox
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsAI]
"SetDataLossPreventionProviderKey"="" More formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Set the DLP provider ID for Recall
# State: Enabled
# Scope: Computer (HKLM)
# Supported on: At least Windows 11 Pro, Enterprise, or Education with Windows Sandbox
$path = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsAI'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'SetDataLossPreventionProviderKey' -Value '' -Type String Intune XML
No direct Policy CSP / OMA-URI mapping for this policy. Use the Intune Remediation tab, or ingest the ADMX in Intune. Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Set the DLP provider ID for Recall
# State: Enabled
# Scope: Computer (HKLM)
# Supported on: At least Windows 11 Pro, Enterprise, or Education with Windows Sandbox
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\WindowsAI' -Name 'SetDataLossPreventionProviderKey' -Expected '' -Kind String)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Set the DLP provider ID for Recall
# State: Enabled
# Scope: Computer (HKLM)
# Supported on: At least Windows 11 Pro, Enterprise, or Education with Windows Sandbox
$path = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsAI'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'SetDataLossPreventionProviderKey' -Value '' -Type String SCCM scripts
# Exported from gporais.com
# Policy: Set the DLP provider ID for Recall
# State: Enabled
# Scope: Computer (HKLM)
# Supported on: At least Windows 11 Pro, Enterprise, or Education with Windows Sandbox
# 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: Set the DLP provider ID for Recall
# State: Enabled
# Scope: Computer (HKLM)
# Supported on: At least Windows 11 Pro, Enterprise, or Education with Windows Sandbox
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\WindowsAI' -Name 'SetDataLossPreventionProviderKey' -Expected '' -Kind String)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Set the DLP provider ID for Recall
# State: Enabled
# Scope: Computer (HKLM)
# Supported on: At least Windows 11 Pro, Enterprise, or Education with Windows Sandbox
$path = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsAI'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'SetDataLossPreventionProviderKey' -Value '' -Type String Building a multi-setting collection? Add this setting and generate combined .reg / PowerShell / GPO scripts.