Configure SMB v1 client (extra setting needed for pre-Win8.1/2012R2)
Vérifié avec Microsoft Security Baseline (MSS / SecGuide) 25H2 — mis à jour le 10 juillet 2026
Pris en charge sur : Only Windows 7, Windows Server 2008, Windows Server 2008R2, Windows Server 2012
Chemin dans la console GPO
Configuration ordinateur\Modèles d'administration\MS Security Guide Description
APPLIES ONLY TO: Windows 7 and Windows Servers 2008, 2008R2 and 2012 (NOT 2012R2): To disable client-side processing of the SMBv1 protocol (recommended), do ALL of the following: * Set the SMBv1 client driver to "Disable driver" using the "Configure SMB v1 client driver" setting; * Enable this setting; * In the "Configure LanmanWorkstation dependencies" text box, enter the following three lines of text: Bowser MRxSmb20 NSI To restore the default behavior for client-side SMBv1 protocol processing, do ALL of the following: * Set the SMBv1 client driver to "Manual start" using the "Configure SMB v1 client driver" setting; * Enable this setting; * In the "Configure LanmanWorkstation dependencies" text box, enter the following four lines of text: Bowser MRxSmb10 MRxSmb20 NSI WARNING: DO NOT SELECT THE "DISABLED" RADIO BUTTON UNDER ANY CIRCUMSTANCES! Changes to this setting require a reboot to take effect. For more information, see https://support.microsoft.com/kb/2696547
Registre
SYSTEM\CurrentControlSet\Services\LanmanWorkstation 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: Configure SMB v1 client (extra setting needed for pre-Win8.1/2012R2)
; State: Enabled
; Supported on: Only Windows 7, Windows Server 2008, Windows Server 2008R2, Windows Server 2012
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation]
"DependOnService"=hex(7):00,00
; REG_MULTI_SZ: one string per input line; edit in regedit if you need richer formatting. Autres formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Configure SMB v1 client (extra setting needed for pre-Win8.1/2012R2)
# State: Enabled
# Supported on: Only Windows 7, Windows Server 2008, Windows Server 2008R2, Windows Server 2012
$path = 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'DependOnService' -Value @() -Type MultiString
# REG_MULTI_SZ: one string per input line; edit in regedit if you need richer formatting. Intune XML
Aucune correspondance directe Policy CSP / OMA-URI pour cette stratégie. Utilisez l'onglet Intune Remediation, ou importez l'ADMX dans Intune. Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Configure SMB v1 client (extra setting needed for pre-Win8.1/2012R2)
# State: Enabled
# Supported on: Only Windows 7, Windows Server 2008, Windows Server 2008R2, Windows Server 2012
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:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation' -Name 'DependOnService' -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: Configure SMB v1 client (extra setting needed for pre-Win8.1/2012R2)
# State: Enabled
# Supported on: Only Windows 7, Windows Server 2008, Windows Server 2008R2, Windows Server 2012
$path = 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'DependOnService' -Value @() -Type MultiString
# REG_MULTI_SZ: one string per input line; edit in regedit if you need richer formatting. Scripts SCCM
# Exported from gporais.com
# Policy: Configure SMB v1 client (extra setting needed for pre-Win8.1/2012R2)
# State: Enabled
# Supported on: Only Windows 7, Windows Server 2008, Windows Server 2008R2, Windows Server 2012
# 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: Configure SMB v1 client (extra setting needed for pre-Win8.1/2012R2)
# State: Enabled
# Supported on: Only Windows 7, Windows Server 2008, Windows Server 2008R2, Windows Server 2012
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:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation' -Name 'DependOnService' -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: Configure SMB v1 client (extra setting needed for pre-Win8.1/2012R2)
# State: Enabled
# Supported on: Only Windows 7, Windows Server 2008, Windows Server 2008R2, Windows Server 2012
$path = 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'DependOnService' -Value @() -Type MultiString
# REG_MULTI_SZ: one string per input line; edit in regedit if you need richer formatting. Vous construisez une collection multi-paramètres ? Ajoutez ce paramètre et générez des exports combinés (.reg, PowerShell, GPO).