วิธีตรวจหา เปิดใช้งาน และปิดใช้งาน SMBv1, SMBv2 และ SMBv3 ใน Windows และ Windows Server

นำไปใช้กับ: Windows 10 Pro released in July 2015Windows Vista EnterpriseWindows Vista Business เพิ่มเติม

สรุป


บทความนี้จะอธิบายวิธีเปิดใช้งานและปิดใช้งาน Server Message Block (SMB) รุ่น 1 (SMBv1), SMB รุ่น 2 (SMBv2), และ SMB รุ่น 3 (SMBv3) ในไคลเอนต์ SMB และคอมโพเนนต์เซิร์ฟเวอร์ 
 

ใน Windows 7 และ Windows Server 2008 R2 การปิดใช้งาน SMBv2 จะ ปิดใช้งานฟังก์ชันการทำงานต่อไปนี้:
  • การรวมคำขอ - ช่วยให้ส่งคำขอ SMB 2 หลายรายการเป็นคำขอเครือข่ายเดียว
  • การอ่านและการเขียนจำนวนมากกว่า - ประโยชน์ของการใช้เครือข่ายที่รวดเร็วกว่า
  • แคชของโฟลเดอร์และคุณสมบัติไฟล์ - ไคลเอนต์เก็บสำเนาของโฟลเดอร์และไฟล์ภายในเครื่อง
  • แฮนเดิลที่คงทน - ช่วยให้การเชื่อมต่อใหม่เชื่อมต่อกับเซิร์ฟเวอร์ได้อย่างโปร่งใส่หากมีการยกเลิกการเชื่อมต่อชั่วคราว
  • ปรับปรุงการรับรองข้อความ - HMAC SHA-256 แทนที่ MD5 เป็นอัลกอริทึมการแฮช
  • ปรับปรุงความสามารถในการปรับขนาดสำหรับการแชร์ไฟล์ - จำนวนผู้ใช้ การแชร์ และไฟล์ที่เปิดต่อเซิร์ฟเวอร์เพิ่มขึ้น
  • การสนับสนุนสำหรับการเชื่อมโยงแบบสัญลักษณ์
  • รูปแบบการเช่า oplock ของไคลเอ็นต์ - จำกัดข้อมูลที่ถ่ายโอนระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ ปรับปรุงประสิทธิภาพของเครือข่ายที่มีเวลาแฝงสูง และเพิ่มความสามารถในการปรับขนาดของเซิร์ฟเวอร์ SMB
  • สนับสนุน MTU ขนาดใหญ่ - สำหรับการใช้ Ethernet 10 กิกะไบต์ (GB) เต็มรูปแบบ
  • ปรับปรุงประสิทธิภาพด้านพลังงาน - ไคลเอ็นต์ที่เปิดไฟล์ไปยังเซิร์ฟเวอร์สามารถอยู่ในโหมดสลีปได้
ใน Windows 8, Windows 8.1, Windows 10, Windows Server 2012 และ Windows Server 2016 การปิดใช้งาน SMBv3 จะปิดใช้งาน ฟังก์ชันการทำงานต่อไปนี้ (และรวมถึงฟังก์ชันการทำงาน SMBv2 ที่ได้อธิบายไว้ในรายการก่อนหน้า):
  • การย้ายโหนดแบบโปร่งใสเมื่อเกิดข้อผิดพลาด - ไคลเอ็นต์เชื่อมต่อใหม่โดยไม่มีการขัดจังหวะโหนดคลัสเตอร์ระหว่างการบำรุงรักษาหรือการย้ายโหนดเมื่อเกิดข้อผิดพลาด
  • การขยายระบบแบบแนวราบ – การเข้าถึงข้อมูลที่แชร์ในโหนดคลัสเตอร์ของไฟล์ทั้งหมดในเวลาเดียวกัน 
  • หลายแชนแนล - การรวมแบนด์วิดท์เครือข่าย และความทนทานต่อความเสียหายหากมีหลายเส้นทางระหว่างไคลเอ็นต์และเซิร์ฟเวอร์
  • SMB ทางตรง – เพิ่มการสนับสนุนเครือข่าย RDMA เพื่อประสิทธิภาพสูงพร้อมเวลาแฝงต่ำและการใช้งาน CPU ต่ำ
  • การเข้ารหัส – มีการเข้ารหัสแบบตั้งแต่ต้นทางถึงปลายทาง และป้องกันการดักฟังข้อมูลบนเครือข่ายที่ไม่น่าไว้วางใจ
  • การเช่าไดเรกทอรี - ปรับปรุงเวลาในการตอบสนองของแอปพลิเคชันในสำนักงานสาขาผ่านการแคช
  • การปรับประสิทธิภาพให้เหมาะสม - ปรับให้เหมาะสมสำหรับการรับเข้า/ส่งออกแบบอ่าน/เขียนขนาดเล็กแบบสุ่ม

ข้อมูลเพิ่มเติม


โพรโทคอล SMBv2 ถูกเผยแพร่ไว้ใน Windows Vista และ Windows Server 2008

โพรโตคอล SMBv3 ถูกเผยแพร่ไว้ใน Windows 8 และ Windows Server 2012

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความสามารถของ SMBv2 และ SMBv3 โปรดไปที่เว็บไซต์ Microsoft TechNet ต่อไปนี้:
 

วิธีการเอา SMB v1 ออกจาก Windows 8.1, Windows 10, Windows 2012 R2 และ Windows Server 2016


Windows Server 2012 R2 & 2016: วิธี PowerShell

SMB v1

ตรวจหา:

Get-WindowsFeature FS-SMB1

ปิดใช้งาน:

Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol

เปิดใช้งาน:

Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol


SMB v2/v3

ตรวจหา:

Get-SmbServerConfiguration | Select EnableSMB2Protocol

ปิดใช้งาน:

Set-SmbServerConfiguration -EnableSMB2Protocol $false

เปิดใช้งาน:

Set-SmbServerConfiguration -EnableSMB2Protocol $true



Windows Server 2012 R2 และ Windows Server 2016: วิธีตัวจัดการเซิร์ฟเวอร์สำหรับการปิดใช้งาน SMB

SMB v1
Server Manager - Dashboard method



Windows 8.1 และ Windows 10: วิธี PowerShell

โพรโทคอล SMB v1



Windows 8.1 และ Windows 10: วิธีเพิ่มหรือเอาโปรแกรมออก

Add-Remove Programs client method
 
 

วิธีตรวจหาสถานะ เปิดใช้งาน และปิดใช้งานโพรโตคอล SMB บนเซิร์ฟเวอร์ SMB


สำหรับ Windows 8 และ Windows Server 2012

Windows 8 และ Windows Server 2012 แนะนำชุดคำสั่ง Windows PowerShell cmdlet Set-SMBServerConfiguration ใหม่ cmdlet ช่วยให้คุณสามารถเปิดใช้งานหรือปิดใช้งานโพรโตคอล SMBv1, SMBv2 และ SMBv3 บนคอมโพเนนต์ของเซิร์ฟเวอร์ได้ 


คุณไม่ต้องเริ่มต้นคอมพิวเตอร์ใหม่หลังจากที่คุณเรียกใช้ cmdlet Set-SMBServerConfiguration

SMB v1 บนเซิร์ฟเวอร์ SMB
ตรวจหา: Get-SmbServerConfiguration | Select EnableSMB1Protocol
ปิดใช้งาน: Set-SmbServerConfiguration -EnableSMB1Protocol $false
เปิดใช้งาน: Set-SmbServerConfiguration -EnableSMB1Protocol $true

สำหรับข้อมูลเพิ่มเติม โปรดดู ที่เก็บของเซิร์ฟเวอร์ที่ Microsoft

SMB v2/v3 บนเซิร์ฟเวอร์ SMB
ตรวจหา: Get-SmbServerConfiguration | Select EnableSMB2Protocol
ปิดใช้งาน: Set-SmbServerConfiguration -EnableSMB2Protocol $false
เปิดใช้งาน: Set-SmbServerConfiguration -EnableSMB2Protocol $true


สำหรับ Windows 7, Windows Server 2008 R2, Windows Vista และ Windows Server 2008

หากต้องการเปิดใช้งานหรือปิดใช้งานโพรโตคอล SMB บนเซิร์ฟเวอร์ SMB ที่กำลังเรียกใช้ Windows 7, Windows Server 2008 R2, Windows Vista หรือ Windows Server 2008 ให้ใช้ Windows PowerShell หรือตัวแก้ไขรีจิสทรี

วิธี PowerShell


SMB v1 บนเซิร์ฟเวอร์ SMB

ตรวจหา:

Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}

การกำหนดค่าเริ่มต้น = เปิดใช้งานแล้ว (ไม่มีการสร้างรีจิสทรีคีย์) ดังนั้นจึงไม่มีการคืนค่า SMB1

ปิดใช้งาน:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force

เปิดใช้งาน:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 –Force


หมายเหตุ คุณต้องเริ่มการทำงานของคอมพิวเตอร์ใหม่หลังจากทำการเปลี่ยนแปลงเหล่านี้

สำหรับข้อมูลเพิ่มเติม โปรดดู ที่เก็บของเซิร์ฟเวอร์ที่ Microsoft

SMB v2/v3 บนเซิร์ฟเวอร์ SMB

ตรวจหา:

Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}


ปิดใช้งาน:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 –Force


เปิดใช้งาน:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 –Force


หมายเหตุ คุณต้องเริ่มการทำงานของคอมพิวเตอร์ใหม่หลังจากทำการเปลี่ยนแปลงเหล่านี้


ตัวแก้ไขรีจิสทรี

สิ่งสำคัญ บทความนี้มีข้อมูลเกี่ยวกับการแก้ไขรีจิสทรี โปรดสำรองข้อมูลรีจิสทรีก่อนที่จะปรับเปลี่ยน ตรวจสอบให้แน่ใจว่าคุณรู้วิธีการคืนค่ารีจิสทรีหากเกิดปัญหาขึ้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสำรอง คืนค่า และปรับเปลี่ยนรีจิสทรี ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในบทความฐานความรู้ของ Microsoft:
322756 วิธีการสำรองข้อมูลและคืนค่ารีจิสทรีใน Windows

หากต้องการเปิดใช้งานหรือปิดใช้งาน SMBv1 บนเซิร์ฟเวอร์ SMB ให้กำหนดค่ารีจิสทรีคีย์ต่อไปนี้:

รีจิสทรีซับคีย์: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
รายการรีจิสทรี: SMB1
REG_DWORD: 0 = ปิดใช้งาน
REG_DWORD: 1 = เปิดใช้งาน
ค่าเริ่มต้น: 1 = เปิดใช้งานแล้ว (ไม่มีการสร้างรีจิสทรีคีย์)

หากต้องการเปิดใช้งานหรือปิดใช้งาน SMBv2 บนเซิร์ฟเวอร์ SMB ให้กำหนดค่ารีจิสทรีคีย์ต่อไปนี้:

รีจิสทรีซับคีย์:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
รายการรีจิสทรี: SMB2
REG_DWORD: 0 = ปิดใช้งาน
REG_DWORD: 1 = เปิดใช้งาน
ค่าเริ่มต้น: 1 = เปิดใช้งานแล้ว (ไม่มีการสร้างรีจิสทรีคีย์)


หมายเหตุ คุณต้องเริ่มการทำงานของคอมพิวเตอร์ใหม่หลังจากทำการเปลี่ยนแปลงเหล่านี้

วิธีตรวจหาสถานะ เปิดใช้งาน และปิดใช้งานโพรโตคอล SMB บนไคลเอ็นต์ SMB


สำหรับ Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, และ Windows Server 2012

หมายเหตุ เมื่อคุณเปิดใช้งานหรือปิดใช้งาน SMBv2 ใน Windows 8 หรือ Windows Server 2012 SMBv3 จะเปิดใช้งานหรือปิดใช้งานด้วยเช่นกัน ซึ่งการทำงานลักษณะนี้เกิดขึ้นเนื่องจากโพรโตคอลเหล่านี้ใช้สแตกเดียวกัน

SMB v1 บนไคลเอ็นต์ SMB
ตรวจหา: sc.exe qc lanmanworkstation
ปิดใช้งาน: sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
เปิดใช้งาน: sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb10 start= auto


สำหรับข้อมูลเพิ่มเติม โปรดดู ที่เก็บของเซิร์ฟเวอร์ที่ Microsoft

SMB v2/v3 บนไคลเอ็นต์ SMB
ตรวจหา: sc.exe qc lanmanworkstation
ปิดใช้งาน: sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
sc.exe config mrxsmb20 start= disabled
เปิดใช้งาน: sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb20 start= auto


หมายเหตุ

  • คุณต้องเรียกใช้คำสั่งเหล่านี้ที่พร้อมท์คำสั่งด้วยสิทธิ์ผู้ดูแล
  • หมายเหตุ คุณต้องเริ่มการทำงานของคอมพิวเตอร์ใหม่หลังจากทำการเปลี่ยนแปลงเหล่านี้

ปิดใช้งานเซิร์ฟเวอร์ SMBv1 ด้วยนโยบายกลุ่ม


ขั้นตอนนี้จะกำหนดค่ารายการใหม่ต่อไปนี้ในรีจิสทรี


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

รายการรีจิสทรี: SMB1 REG_DWORD: 0 = ปิดใช้งาน


การกำหนดค่านี้โดยใช้นโยบายกลุ่ม:

  1. เปิด คอนโซลการจัดการนโยบายกลุ่ม คลิกขวาที่วัตถุนโยบายกลุ่ม (GPO) ที่ควรมีรายการกำหนดลักษณะใหม่ แล้วคลิก แก้ไข
  2. ในคอนโซลทรีใต้ การกำหนดค่าคอมพิวเตอร์ ขยายโฟลเดอร์ การกำหนดลักษณะ แล้วขยายโฟลเดอร์ การตั้งค่า Windows
  3. คลิกขวาที่โหนด รีจิสทรี ชี้ไปที่ รีจิสทรีใหม่ และเลือก รายการรีจิสทรี

    รายการรีจิสทรี -ใหม่ - รีจิสทรี

ในกล่องโต้ตอบ คุณสมบัติของรีจิสทรีใหม่ เลือกรายการต่อไปนี้:

  • การกระทำ: สร้าง
  • ไฮฟ์: HKEY_LOCAL_MACHINE
  • เส้นทางหลัก: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • ชื่อค่า: SMB1
  • ประเภทค่า: REG_DWORD
  • Value data: 0

คุณสมบัติของรีจิสทรีใหม่ - ทั่วไป

การดำเนินการนี้จะปิดการใช้งานคอมโพเนนต์เซิร์ฟเวอร์ SMBv1 นโยบายกลุ่มนี้ต้องใช้กับเวิร์กสเตชัน เซิร์ฟเวอร์ และตัวควบคุมโดเมนที่จำเป็นทั้งหมดในโดเมน

หมายเหตุ นอกจากนี้ ตัวกรอง WMI ยังสามารถตั้งค่าเพื่อยกเว้นระบบปฏิบัติการที่ไม่ได้รับการสนับสนุน หรือรายการยกเว้นที่เลือก เช่น Windows XP 

ปิดใช้งานไคลเอนต์ SMBv1 ด้วยนโยบายกลุ่ม


หากต้องการปิดใช้งานไคลเอนต์ ต้องอัปเดตบริการคีย์รีจิสทรีเพื่อปิดใช้งานการเริ่มต้นของ MRxSMB10 และการขึ้นต่อกันใน MRxSMB10 ต้องถูกนำออกจากรายการสำหรับ LanmanWorkstation เพื่อให้สามารถเริ่มต้นได้ตามปกติโดยไม่ต้องใช้ MRxSMB10 เริ่มต้นก่อน

การดำเนินการนี้จะอัปเดตและแทนที่ค่าเริ่มต้นใน 2 รายการต่อไปนี้ในรีจิสทรี


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10

รายการรีจิสทรี: เริ่ม REG_DWORD: 4 = ปิดใช้งาน

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation

รายการรีจิสทรี: DependOnService REG_MULTI_SZ: “Bowser”,”MRxSmb20″,”NSI”


หมายเหตุ ค่าเริ่มต้นรวมถึง MRxSMB10 ซึ่งขณะนี้ถูกนำออกในฐานะการขึ้นต่อกัน


การกำหนดค่านี้โดยใช้นโยบายกลุ่ม:

  1. เปิด คอนโซลการจัดการนโยบายกลุ่ม คลิกขวาที่วัตถุนโยบายกลุ่ม (GPO) ที่ควรมีรายการกำหนดลักษณะใหม่ แล้วคลิก แก้ไข
  2. ในคอนโซลทรีใต้ การกำหนดค่าคอมพิวเตอร์ ขยายโฟลเดอร์ การกำหนดลักษณะ แล้วขยายโฟลเดอร์ การตั้งค่า Windows
  3. คลิกขวาที่โหนด รีจิสทรี ชี้ไปที่ รีจิสทรีใหม่ และเลือก รายการรีจิสทรี

รายการรีจิสทรี -ใหม่ - รีจิสทรี

ในกล่องโต้ตอบ คุณสมบัติของรีจิสทรีใหม่ เลือกรายการต่อไปนี้:

  • การกระทำ: การอัปเดต
  • ไฮฟ์: HKEY_LOCAL_MACHINE
  • เส้นทางหลัก: SYSTEM\CurrentControlSet\services\mrxsmb10
  • ชื่อค่า: เริ่ม
  • ประเภทค่า: REG_DWORD
  • ข้อมูลค่า: 4

คุณสมบัติการเริ่มต้น - ทั่วไป

แล้วนำการขึ้นต่อกันใน MRxSMB10 ที่เพิ่งปิดใช้งานออก

ในกล่องโต้ตอบ คุณสมบัติของรีจิสทรีใหม่ เลือกรายการต่อไปนี้:

  • การกระทำ: แทนที่
  • ไฮฟ์: HKEY_LOCAL_MACHINE
  • เส้นทางหลัก: SYSTEM\CurrentControlSet\Services\LanmanWorkstation
  • ชื่อค่า: DependOnService
  • ประเภทค่า REG_MULTI_SZ
  • ข้อมูลค่า:
    • Bowser
    • MRxSmb20
    • NSI

หมายเหตุ สตริงทั้งสามนี้จะไม่มีสัญลักษณ์แสดงหัวข้อย่อย (ดูภาพหน้าจอต่ิอไปนี้)

คุณสมบัติ DependOnService

ค่าเริ่มต้นรวมถึง MRxSMB10 ใน Windows หลายรุ่น ดังนั้นการแทนที่ค่าเริ่มต้นเหล่านั้นด้วยสตริงหลายค่านี้จะส่งผลต่อการนำ MRxSMB10 ในฐานะการขึ้นต่อกันสำหรับ LanmanServer ออกจากค่าเริ่มต้น 4 ค่าจนเหลือ 3 ค่าดังกล่าวข้างต้น

หมายเหตุ เมื่อคุณใช้คอนโซลการจัดการนโยบายกลุ่ม คุณไม่จำเป็นต้องใช้เครื่องหมายอัญประกาศ (") หรือจุลภาค (,) เพียงพิมพ์แต่ละรายการในแต่ละบรรทัด

ต้องเริ่มระบบของคอมพิวเตอร์ใหม่

หลังจากที่มีการใช้นโยบายนี้และการตั้งค่ารีจีสทรีพร้อมใช้งานแล้ว ต้องมีการเริ่มต้นระบบเป้าหมายใหม่ก่อนที่จะปิดใช้งาน SMB v1

สรุป

ถ้าการตั้งค่าทั้งหมดอยู่ในวัตถุนโยบายกลุ่ม (GPO) เดียวกัน การจัดการนโยบายกลุ่มจะแสดงการตั้งค่าดังต่อไปนี้

ตัวแก้ไขการจัดการนโยบายกลุ่ม - รีจิสทรี

การทดสอบและการตรวจสอบความถูกต้อง

หลังจากกำหนดค่าเหล่านี้แล้ว ให้อนุญาตให้นโยบายดังกล่าวทำซ้ำและอัปเดต เมื่อจำเป็นต้องทดสอบ ให้เรียกใช้ gpupdate /force จากพร้อมท์คำสั่ง แล้วตรวจดูคอมพิวเตอร์เป้าหมายเพื่อให้แน่ใจว่าการตั้งค่ารีจิสทรีถูกใช้อย่างถูกต้อง ตรวจสอบว่า SMB v2 และ SMB v3 ทำงานกับระบบอื่นๆ ได้ทั้งหมดในสภาพแวดล้อมนั้น