Alternative Port Mappings
Verified with Windows 11 25H2 — updated on July 10, 2026
Supported on: At least Windows Server 2025, Windows 11
Path in the GPO console
Computer Configuration\Administrative Templates\Network\Lanman Workstation Description
This policy setting determines the alternative port registry mappings used by the SMB client. If you enable this policy setting, the first valid mapping will be used if the mapping's server name matches the targeted server name for connectivity. If you enable this policy setting and do not specify at least one valid mapping, or if you disable or do not configure this policy setting, then the SMB client will refer to other methods of determining alternative port usage such as with the NET USE or New-SmbMapping commands. Examples: contososa.file.core.windows.net:tcp:448 edgesrv1.corp.contoso.com:quic:450 How to modify this setting: Arrange the desired alternative port mappings in the edit box with one mapping entry per line. The format of each mapping entry specifies a server name, transport type, and port number separated by colons as done so in the example above. Note: This policy does not require a Windows reboot to take effect.
Registry
Software\Policies\Microsoft\Windows\LanmanWorkstation 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: Alternative Port Mappings
; State: Enabled
; Supported on: At least Windows Server 2025, Windows 11
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\LanmanWorkstation]
"AlternativePortMappings"=hex(7):00,00
; REG_MULTI_SZ: one string per input line; edit in regedit if you need richer formatting. More formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Alternative Port Mappings
# State: Enabled
# Supported on: At least Windows Server 2025, Windows 11
$path = 'HKLM:\Software\Policies\Microsoft\Windows\LanmanWorkstation'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'AlternativePortMappings' -Value @() -Type MultiString
# REG_MULTI_SZ: one string per input line; edit in regedit if you need richer formatting. 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: Alternative Port Mappings
# State: Enabled
# Supported on: At least Windows Server 2025, Windows 11
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\LanmanWorkstation' -Name 'AlternativePortMappings' -Expected @() -Kind MultiString)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Alternative Port Mappings
# State: Enabled
# Supported on: At least Windows Server 2025, Windows 11
$path = 'HKLM:\Software\Policies\Microsoft\Windows\LanmanWorkstation'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'AlternativePortMappings' -Value @() -Type MultiString
# REG_MULTI_SZ: one string per input line; edit in regedit if you need richer formatting. SCCM scripts
# Exported from gporais.com
# Policy: Alternative Port Mappings
# State: Enabled
# Supported on: At least Windows Server 2025, Windows 11
# 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: Alternative Port Mappings
# State: Enabled
# Supported on: At least Windows Server 2025, Windows 11
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\LanmanWorkstation' -Name 'AlternativePortMappings' -Expected @() -Kind MultiString)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Alternative Port Mappings
# State: Enabled
# Supported on: At least Windows Server 2025, Windows 11
$path = 'HKLM:\Software\Policies\Microsoft\Windows\LanmanWorkstation'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'AlternativePortMappings' -Value @() -Type MultiString
# REG_MULTI_SZ: one string per input line; edit in regedit if you need richer formatting. Building a multi-setting collection? Add this setting and generate combined .reg / PowerShell / GPO scripts.