Utiliser l’ordre de recherche dans la forêt
Vérifié avec Windows 11 25H2 — mis à jour le 30 juillet 2026
Pris en charge sur : Au minimum Windows Server 2008 R2 ou Windows 7
Chemin dans la console GPO
Configuration ordinateur\Modèles d'administration\Système\KDC Description
Ce paramètre de stratégie définit la liste des forêts de confiance interrogées par le centre de distribution de clés (KDC) lorsque celui-ci essaie de résoudre des noms principaux de services (noms SPN) en deux parties. Si vous activez ce paramètre de stratégie, le centre de distribution de clés effectue ses recherches dans les forêts de cette liste s’il ne parvient pas à résoudre un nom SPN en deux parties dans la forêt locale. La recherche est basée sur un catalogue global ou sur les suffixes de noms. Dès qu’il trouve une correspondance, le centre de distribution de clés renvoie un ticket de référence au client pour le domaine approprié. Si vous désactivez ce paramètre de stratégie ou ne le configurez pas, le centre de distribution de clés n’essaie pas de résoudre le nom SPN en analysant le contenu des forêts répertoriées. S’il n’est pas en mesure de résoudre le nom, l’authentification NTLM peut être appliquée. Pour assurer un comportement cohérent, veillez à ce que ce paramètre de stratégie soit pris en charge et défini de façon identique sur tous les contrôleurs de domaine au sein du domaine.
Registre
Software\Microsoft\Windows\CurrentVersion\Policies\System\KDC\Parameters Nom de valeur : UseForestSearch
Activé : UseForestSearch = 1
Désactivé : UseForestSearch = 0
MDM / Intune (CSP)
./Device/Vendor/MSFT/Policy/Config/ADMX_kdc/ForestSearch 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: Utiliser l’ordre de recherche dans la forêt
; State: Enabled
; Supported on: Au minimum Windows Server 2008 R2 ou Windows 7
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\KDC\Parameters]
"UseForestSearch"=dword:00000001
"ForestSearchList"="" Autres formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Utiliser l’ordre de recherche dans la forêt
# State: Enabled
# Supported on: Au minimum Windows Server 2008 R2 ou Windows 7
$path = 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System\KDC\Parameters'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'UseForestSearch' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'ForestSearchList' -Value '' -Type String Intune XML
OMA-URI: ./Device/Vendor/MSFT/Policy/Config/ADMX_kdc/ForestSearch
Data type: String
Value:
<enabled/>
<data id="ForestSearchList" value=""/> Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Utiliser l’ordre de recherche dans la forêt
# State: Enabled
# Supported on: Au minimum Windows Server 2008 R2 ou Windows 7
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\CurrentVersion\Policies\System\KDC\Parameters' -Name 'UseForestSearch' -Expected 1 -Kind DWord)
(Test-RegistryValue -Path 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System\KDC\Parameters' -Name 'ForestSearchList' -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: Utiliser l’ordre de recherche dans la forêt
# State: Enabled
# Supported on: Au minimum Windows Server 2008 R2 ou Windows 7
$path = 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System\KDC\Parameters'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'UseForestSearch' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'ForestSearchList' -Value '' -Type String Scripts SCCM
# Exported from gporais.com
# Policy: Utiliser l’ordre de recherche dans la forêt
# State: Enabled
# Supported on: Au minimum Windows Server 2008 R2 ou Windows 7
# 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: Utiliser l’ordre de recherche dans la forêt
# State: Enabled
# Supported on: Au minimum Windows Server 2008 R2 ou Windows 7
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\CurrentVersion\Policies\System\KDC\Parameters' -Name 'UseForestSearch' -Expected 1 -Kind DWord)
(Test-RegistryValue -Path 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System\KDC\Parameters' -Name 'ForestSearchList' -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: Utiliser l’ordre de recherche dans la forêt
# State: Enabled
# Supported on: Au minimum Windows Server 2008 R2 ou Windows 7
$path = 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System\KDC\Parameters'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'UseForestSearch' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'ForestSearchList' -Value '' -Type String Vous construisez une collection multi-paramètres ? Ajoutez ce paramètre et générez des exports combinés (.reg, PowerShell, GPO).