Pre-populate printer search location text
Verified with Windows 11 25H2 — updated on July 30, 2026
Supported on: At least Windows 2000
Path in the GPO console
Computer Configuration\Administrative Templates\Printers Description
Enables the physical Location Tracking setting for Windows printers. Use Location Tracking to design a location scheme for your enterprise and assign computers and printers to locations in the scheme. Location Tracking overrides the standard method used to locate and associate computers and printers. The standard method uses a printer's IP address and subnet mask to estimate its physical location and proximity to computers. If you enable this setting, users can browse for printers by location without knowing the printer's location or location naming scheme. Enabling Location Tracking adds a Browse button in the Add Printer wizard's Printer Name and Sharing Location screen and to the General tab in the Printer Properties dialog box. If you enable the Group Policy Computer location setting, the default location you entered appears in the Location field by default. If you disable this setting or do not configure it, Location Tracking is disabled. Printer proximity is estimated using the standard method (that is, based on IP address and subnet mask).
Registry
Software\Policies\Microsoft\Windows NT\Printers Value name: PhysicalLocationSupport
Enabled: PhysicalLocationSupport = 1
Disabled: PhysicalLocationSupport = 0
MDM / Intune (CSP)
./Device/Vendor/MSFT/Policy/Config/ADMX_Printing/PhysicalLocationSupport 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: Pre-populate printer search location text
; State: Enabled
; Supported on: At least Windows 2000
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers]
"PhysicalLocationSupport"=dword:00000001 More formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Pre-populate printer search location text
# State: Enabled
# Supported on: At least Windows 2000
$path = 'HKLM:\Software\Policies\Microsoft\Windows NT\Printers'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'PhysicalLocationSupport' -Value 1 -Type DWord Intune XML
OMA-URI: ./Device/Vendor/MSFT/Policy/Config/ADMX_Printing/PhysicalLocationSupport
Data type: String
Value:
<enabled/> Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Pre-populate printer search location text
# State: Enabled
# Supported on: At least Windows 2000
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 NT\Printers' -Name 'PhysicalLocationSupport' -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: Pre-populate printer search location text
# State: Enabled
# Supported on: At least Windows 2000
$path = 'HKLM:\Software\Policies\Microsoft\Windows NT\Printers'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'PhysicalLocationSupport' -Value 1 -Type DWord SCCM scripts
# Exported from gporais.com
# Policy: Pre-populate printer search location text
# State: Enabled
# Supported on: At least Windows 2000
# 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: Pre-populate printer search location text
# State: Enabled
# Supported on: At least Windows 2000
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 NT\Printers' -Name 'PhysicalLocationSupport' -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: Pre-populate printer search location text
# State: Enabled
# Supported on: At least Windows 2000
$path = 'HKLM:\Software\Policies\Microsoft\Windows NT\Printers'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'PhysicalLocationSupport' -Value 1 -Type DWord Building a multi-setting collection? Add this setting and generate combined .reg / PowerShell / GPO scripts.