สรุป
คำเตือน
เราขอแนะนำว่าอย่าปิดใช้ SMBv2 หรือ SMBv3 การปิดใช้งาน SMBv2 หรือ SMBv3 เป็นมาตรการแก้ไขปัญหาชั่วคราวเท่านั้น ห้ามปิดใช้งาน SMBv2 หรือ SMBv3 ทิ้งไว้
ใน Windows 7 และ Windows Server 2008 R2 การปิดใช้งาน SMBv2 จะปิดใช้งาน ฟังก์ชันการทำงานต่อไปนี้:
- การรวมคำขอ - ช่วยให้ส่งคำขอ SMB 2 หลายรายการเป็นคำขอเครือข่ายเดียว
- การอ่านและการเขียนจำนวนมากกว่า - ประโยชน์ของการใช้เครือข่ายที่รวดเร็วกว่า
- แคชของโฟลเดอร์และคุณสมบัติไฟล์ - ไคลเอนต์เก็บสำเนาของโฟลเดอร์และไฟล์ภายในเครื่อง
- แฮนเดิลที่คงทน - ช่วยให้การเชื่อมต่อใหม่เชื่อมต่อกับเซิร์ฟเวอร์ได้อย่างโปร่งใส่หากมีการยกเลิกการเชื่อมต่อชั่วคราว
- ปรับปรุงการรับรองข้อความ - HMAC SHA-256 แทนที่ MD5 เป็นอัลกอริทึมการแฮช
- ปรับปรุงความสามารถในการปรับขนาดสำหรับการแชร์ไฟล์ - จำนวนผู้ใช้ การแชร์ และไฟล์ที่เปิดต่อเซิร์ฟเวอร์เพิ่มขึ้น
- การสนับสนุนสำหรับการเชื่อมโยงแบบสัญลักษณ์
- รูปแบบการเช่า oplock ของไคลเอ็นต์ - จำกัดข้อมูลที่ถ่ายโอนระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ ปรับปรุงประสิทธิภาพของเครือข่ายที่มีเวลาแฝงสูง และเพิ่มความสามารถในการปรับขนาดของเซิร์ฟเวอร์ SMB
- สนับสนุน MTU ขนาดใหญ่ - สำหรับการใช้ Ethernet 10 กิกะไบต์ (GB) เต็มรูปแบบ
- ปรับปรุงประสิทธิภาพด้านพลังงาน - ไคลเอ็นต์ที่เปิดไฟล์ไปยังเซิร์ฟเวอร์สามารถอยู่ในโหมดสลีปได้
- การย้ายโหนดแบบโปร่งใสเมื่อเกิดข้อผิดพลาด - ไคลเอ็นต์เชื่อมต่อใหม่โดยไม่มีการขัดจังหวะโหนดคลัสเตอร์ระหว่างการบำรุงรักษาหรือการย้ายโหนดเมื่อเกิดข้อผิดพลาด
- การขยายระบบแบบแนวราบ - การเข้าถึงข้อมูลที่แชร์ในโหนดคลัสเตอร์ของไฟล์ทั้งหมดในเวลาเดียวกัน
- หลายแชนแนล - การรวมแบนด์วิดท์เครือข่าย และความทนทานต่อความเสียหายหากมีหลายเส้นทางระหว่างไคลเอ็นต์และเซิร์ฟเวอร์
- SMB ทางตรง - เพิ่มการสนับสนุนเครือข่าย RDMA เพื่อประสิทธิภาพสูงพร้อมเวลาแฝงต่ำและการใช้งาน CPU ต่ำ
- การเข้ารหัส - มีการเข้ารหัสแบบตั้งแต่ต้นทางถึงปลายทาง และป้องกันการดักฟังข้อมูลบนเครือข่ายที่ไม่น่าไว้วางใจ
- การเช่าไดเรกทอรี - ปรับปรุงเวลาในการตอบสนองของแอปพลิเคชันในสำนักงานสาขาผ่านการแคช
- การปรับประสิทธิภาพให้เหมาะสม - ปรับให้เหมาะสมสำหรับการรับเข้า/ส่งออกแบบอ่าน/เขียนขนาดเล็กแบบสุ่ม
ข้อมูลเพิ่มเติม
โพรโตคอล 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
Windows 8.1 และ Windows 10: วิธี PowerShell
โพรโทคอล SMB v1
โปรโตคอล SMB v2/v3
ตรวจหา: | Get-SmbServerConfiguration | Select EnableSMB2Protocol |
ปิดใช้งาน: | Set-SmbServerConfiguration –EnableSMB2Protocol $false |
เปิดใช้งาน: | Set-SmbServerConfiguration –EnableSMB2Protocol $true |
Windows 8.1 และ Windows 10: วิธีเพิ่มหรือเอาโปรแกรมออก
วิธีตรวจหาสถานะ เปิดใช้งาน และปิดใช้งานโพรโตคอล SMB บนเซิร์ฟเวอร์ SMB
สำหรับ Windows 8 และ Windows Server 2012
Windows 8 และ Windows Server 2012 แนะนำชุดคำสั่ง Windows PowerShell cmdlet Set-SMBServerConfiguration ใหม่ cmdlet ช่วยให้คุณสามารถเปิดใช้งานหรือปิดใช้งานโพรโตคอล SMBv1, SMBv2 และ SMBv3 บนคอมโพเนนต์ของเซิร์ฟเวอร์ได้
หมายเหตุ
เมื่อคุณเปิดใช้งานหรือปิดใช้งาน SMBv2 ใน Windows 8 หรือ Windows Server 2012 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
หมายเหตุ
วิธีนี้จำเป็นต้องมี PowerShell 2.0 หรือ 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
หมายเหตุ คุณต้องเริ่มการทำงานของคอมพิวเตอร์ใหม่หลังจากทำการเปลี่ยนแปลงเหล่านี้
ตัวแก้ไขรีจิสทรี
หากต้องการเปิดใช้งานหรือปิดใช้งาน SMBv1 บนเซิร์ฟเวอร์ SMB ให้กำหนดค่ารีจิสทรีคีย์ต่อไปนี้:
รายการรีจิสทรี: SMB1
REG_DWORD: 0 = ปิดใช้งาน
REG_DWORD: 1 = เปิดใช้งาน
ค่าเริ่มต้น: 1 = เปิดใช้งานแล้ว (ไม่มีการสร้างรีจิสทรีคีย์)
หากต้องการเปิดใช้งานหรือปิดใช้งาน SMBv2 บนเซิร์ฟเวอร์ SMB ให้กำหนดค่ารีจิสทรีคีย์ต่อไปนี้:
รายการรีจิสทรี: 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
การกำหนดค่านี้โดยใช้นโยบายกลุ่ม:
- เปิด คอนโซลการจัดการนโยบายกลุ่ม คลิกขวาที่วัตถุนโยบายกลุ่ม (GPO) ที่ควรมีรายการกำหนดลักษณะใหม่ แล้วคลิก แก้ไข
- ในคอนโซลทรีใต้ การกำหนดค่าคอมพิวเตอร์ ขยายโฟลเดอร์ การกำหนดลักษณะ แล้วขยายโฟลเดอร์ การตั้งค่า Windows
- คลิกขวาที่โหนด รีจิสทรี ชี้ไปที่ รีจิสทรีใหม่ และเลือก รายการรีจิสทรี
ในกล่องโต้ตอบ คุณสมบัติของรีจิสทรีใหม่ เลือกรายการต่อไปนี้:
- การกระทำ: สร้าง
- ไฮฟ์: HKEY_LOCAL_MACHINE
- เส้นทางหลัก: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- ชื่อค่า: SMB1
- ประเภทค่า: REG_DWORD
- Value data: 0
การดำเนินการนี้จะปิดการใช้งานคอมโพเนนต์เซิร์ฟเวอร์ SMBv1 นโยบายกลุ่มนี้ต้องใช้กับเวิร์กสเตชัน เซิร์ฟเวอร์ และตัวควบคุมโดเมนที่จำเป็นทั้งหมดในโดเมน
หมายเหตุ ตัวกรอง WMI ยังสามารถตั้งค่าเพื่อยกเว้นระบบปฏิบัติการที่ไม่ได้รับการสนับสนุน หรือรายการยกเว้นที่เลือก เช่น Windows XP
ข้อควรระวัง
โปรดระวังเมื่อทำการเปลี่ยนแปลงเหล่านี้บนตัวควบคุมโดเมนที่ Windows XP หรือ Linux ที่เก่ากว่าและระบบของบริษัทภายนอก (ที่ไม่สนับสนุน SMBv2 หรือ SMBv3) ต้องการเข้าถึง SYSVOL หรือการแชร์ไฟล์อื่น ๆ ที่มีการปิดใช้งาน SMB v1
ปิดใช้งานไคลเอนต์ SMBv1 ด้วยนโยบายกลุ่ม
หากต้องการปิดใช้งานไคลเอนต์ ต้องอัปเดตบริการคีย์รีจิสทรีเพื่อปิดใช้งานการเริ่มต้นของ MRxSMB10 และการขึ้นต่อกันใน MRxSMB10 ต้องถูกนำออกจากรายการสำหรับ LanmanWorkstation เพื่อให้สามารถเริ่มต้นได้ตามปกติโดยไม่ต้องใช้ MRxSMB10 เริ่มต้นก่อน
การดำเนินการนี้จะอัปเดตและแทนที่ค่าเริ่มต้นใน 2 รายการต่อไปนี้ในรีจิสทรี
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10
รายการรีจิสทรี: เริ่ม REG_DWORD: 4 = ปิดใช้งาน
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation
หมายเหตุค่าเริ่มต้นรวมถึง MRxSMB10 ซึ่งขณะนี้ถูกนำออกในจากการขึ้นต่อกัน
การกำหนดค่านี้โดยใช้นโยบายกลุ่ม:
- เปิด คอนโซลการจัดการนโยบายกลุ่ม คลิกขวาที่วัตถุนโยบายกลุ่ม (GPO) ที่ควรมีรายการกำหนดลักษณะใหม่ แล้วคลิก แก้ไข
- ในคอนโซลทรีใต้ การกำหนดค่าคอมพิวเตอร์ ขยายโฟลเดอร์ การกำหนดลักษณะ แล้วขยายโฟลเดอร์ การตั้งค่า Windows
- คลิกขวาที่โหนด รีจิสทรี ชี้ไปที่ รีจิสทรีใหม่ และเลือก รายการรีจิสทรี
ในกล่องโต้ตอบ คุณสมบัติของรีจิสทรีใหม่ เลือกรายการต่อไปนี้:
- การกระทำ: การอัปเดต
- ไฮฟ์: 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
หมายเหตุ สตริงทั้งสามนี้จะไม่มีสัญลักษณ์แสดงหัวข้อย่อย (ดูภาพหน้าจอต่อไปนี้)
ค่าเริ่มต้นรวมถึง MRxSMB10 ใน Windows หลายรุ่น ดังนั้นการแทนที่ค่าเริ่มต้นเหล่านั้นด้วยสตริงหลายค่านี้จะส่งผลต่อการนำ MRxSMB10 ในฐานะการขึ้นต่อกันสำหรับ LanmanServer ออกจากค่าเริ่มต้น 4 ค่าจนเหลือ 3 ค่าดังกล่าวข้างต้น
หมายเหตุเมื่อคุณใช้คอนโซลการจัดการนโยบายกลุ่ม คุณไม่จำเป็นต้องใช้เครื่องหมายอัญประกาศหรือจุลภาค เพียงพิมพ์แต่ละรายการในแต่ละบรรทัด
ต้องรีสตาร์ทคอมพิวเตอร์ใหม่
หลังจากที่มีการใช้นโยบายนี้และการตั้งค่ารีจีสทรีพร้อมใช้งานแล้ว ต้องมีการเริ่มต้นระบบเป้าหมายใหม่ก่อนที่จะปิดใช้งาน SMB v1
สรุป
ถ้าการตั้งค่าทั้งหมดอยู่ในวัตถุนโยบายกลุ่ม (GPO) เดียวกัน การจัดการนโยบายกลุ่มจะแสดงการตั้งค่าดังต่อไปนี้
การทดสอบและการตรวจสอบความถูกต้อง
หลังจากกำหนดค่าเหล่านี้แล้ว ให้อนุญาตให้นโยบายดังกล่าวทำซ้ำและอัปเดต เมื่อจำเป็นต้องทดสอบ ให้เรียกใช้ gpupdate /force จากพร้อมท์คำสั่ง แล้วตรวจดูคอมพิวเตอร์เป้าหมายเพื่อให้แน่ใจว่าการตั้งค่ารีจิสทรีถูกใช้อย่างถูกต้อง ตรวจสอบว่า SMB v2 และ SMB v3 ทำงานกับระบบอื่นๆ ได้ทั้งหมดในสภาพแวดล้อมนั้น
ข้อควรระวัง
อย่าลืมเริ่มต้นระบบเป้าหมายใหม่