Turn off Help and Support Center Microsoft Knowledge Base search
Verified with Windows 11 25H2 — updated on July 30, 2026
Supported on: At least Windows Server 2003 operating systems with SP1 or Windows XP Professional with SP2
Path in the GPO console
Computer Configuration\Administrative Templates\System\Internet Communication Management\Internet Communication settings Description
This policy setting specifies whether users can perform a Microsoft Knowledge Base search from the Help and Support Center. The Knowledge Base is an online source of technical support information and self-help tools for Microsoft products, and is searched as part of all Help and Support Center searches with the default search options. If you enable this policy setting, it removes the Knowledge Base section from the Help and Support Center "Set search options" page, and only Help content on the local computer is searched. If you disable or do not configure this policy setting, the Knowledge Base is searched if the user has a connection to the Internet and has not disabled the Knowledge Base search from the Search Options page.
Registry
Software\Policies\Microsoft\PCHealth\HelpSvc Value name: MicrosoftKBSearch
Enabled: MicrosoftKBSearch = 0
Disabled: MicrosoftKBSearch = 1
MDM / Intune (CSP)
./Device/Vendor/MSFT/Policy/Config/ADMX_ICM/HSS_KBSearchPolicy Microsoft Learn documentation Mapping data: Microsoft Learn (CC BY 4.0)
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. ⓘ
.reg file
Windows Registry Editor Version 5.00
; Exported from gporais.com
; Policy: Turn off Help and Support Center Microsoft Knowledge Base search
; State: Enabled
; Supported on: At least Windows Server 2003 operating systems with SP1 or Windows XP Professional with SP2
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\PCHealth\HelpSvc]
"MicrosoftKBSearch"=dword:00000000 More formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Turn off Help and Support Center Microsoft Knowledge Base search
# State: Enabled
# Supported on: At least Windows Server 2003 operating systems with SP1 or Windows XP Professional with SP2
$path = 'HKLM:\Software\Policies\Microsoft\PCHealth\HelpSvc'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'MicrosoftKBSearch' -Value 0 -Type DWord Intune XML
OMA-URI: ./Device/Vendor/MSFT/Policy/Config/ADMX_ICM/HSS_KBSearchPolicy
Data type: String
Value:
<enabled/> Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Turn off Help and Support Center Microsoft Knowledge Base search
# State: Enabled
# Supported on: At least Windows Server 2003 operating systems with SP1 or Windows XP Professional with SP2
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\PCHealth\HelpSvc' -Name 'MicrosoftKBSearch' -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: Turn off Help and Support Center Microsoft Knowledge Base search
# State: Enabled
# Supported on: At least Windows Server 2003 operating systems with SP1 or Windows XP Professional with SP2
$path = 'HKLM:\Software\Policies\Microsoft\PCHealth\HelpSvc'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'MicrosoftKBSearch' -Value 0 -Type DWord SCCM scripts
# Exported from gporais.com
# Policy: Turn off Help and Support Center Microsoft Knowledge Base search
# State: Enabled
# Supported on: At least Windows Server 2003 operating systems with SP1 or Windows XP Professional with SP2
# 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: Turn off Help and Support Center Microsoft Knowledge Base search
# State: Enabled
# Supported on: At least Windows Server 2003 operating systems with SP1 or Windows XP Professional with SP2
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\PCHealth\HelpSvc' -Name 'MicrosoftKBSearch' -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: Turn off Help and Support Center Microsoft Knowledge Base search
# State: Enabled
# Supported on: At least Windows Server 2003 operating systems with SP1 or Windows XP Professional with SP2
$path = 'HKLM:\Software\Policies\Microsoft\PCHealth\HelpSvc'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'MicrosoftKBSearch' -Value 0 -Type DWord Building a multi-setting collection? Add this setting and generate combined .reg / PowerShell / GPO scripts.