Windows Server 2016/2019 और Windows 10 (बिल्ड 1709 से शुरू) में, शेयर्ड फ़ोल्डर तक पहुंचने के लिए उपयोग किया जाने वाला Server Message Block 1.0 (SMBv1) नेटवर्क प्रोटोकॉल डिफ़ॉल्ट रूप से अक्षम है। ज्यादातर मामलों में, इस प्रोटोकॉल की आवश्यकता लीगेसी सिस्टम पर होस्ट किए गए शेयर्ड फ़ोल्डर तक पहुंचने के लिए होती है, जैसे अब समर्थित नहीं Windows XP, Windows Server 2003 और पुराने OS। इस लेख में, हम देखेंगे कि Windows 10 और Windows Server 2016/2019 पर SMBv1 क्लाइंट और सर्वर सपोर्ट को कैसे सक्षम या अक्षम करें।
यदि आपके नेटवर्क पर कोई SMB 1.x क्लाइंट नहीं बचे हैं, तो आपको सभी Windows डिवाइस पर SMBv1 को पूरी तरह से अक्षम करना होगा। SMB 1.0 को अक्षम करके, आप Windows कंप्यूटर को इस लीगेसी प्रोटोकॉल में कई कमजोरियों से बचा सकते हैं (SMBv1 के लिए सबसे प्रसिद्ध पब्लिक एक्सप्लॉइट EternalBlue है)। नतीजतन, आपके डिवाइस नेटवर्क शेयर तक पहुंचते समय SMB प्रोटोकॉल के नए, अधिक कुशल, सुरक्षित और कार्यात्मक संस्करणों का उपयोग करेंगे।
पिछले लेखों में से एक में, हमने क्लाइंट-साइड और सर्वर-साइड SMB संस्करण संगतता की तालिका दिखाई। तालिका के अनुसार, पुराने क्लाइंट संस्करण (XP, Server 2003 और कुछ *nix क्लाइंट) केवल SMB v1.0 प्रोटोकॉल का उपयोग करके नेटवर्क शेयर्ड फ़ोल्डर तक पहुंच सकते हैं। यदि नेटवर्क में ऐसे कोई क्लाइंट नहीं हैं, तो आप फाइल सर्वर (AD डोमेन कंट्रोलर सहित) और क्लाइंट डेस्कटॉप की तरफ SMB 1.0 को पूरी तरह से अक्षम कर सकते हैं।
Windows 10 और Windows Server 2016 में, SMBv1 प्रोटोकॉल दो अलग-अलग कंपोनेंट्स में विभाजित है - SMB क्लाइंट और SMB सर्वर, जिन्हें स्वतंत्र रूप से सक्षम/अक्षम किया जा सकता है।
SMB v1.0 के माध्यम से शेयर्ड फ़ोल्डर एक्सेस का ऑडिटिंग
SMB फाइल सर्वर की तरफ SMB 1.0 ड्राइवर को अक्षम या पूरी तरह से हटाने से पहले, यह सुनिश्चित करना उचित है कि आपके नेटवर्क में इसका उपयोग करने वाले कोई लीगेसी क्लाइंट नहीं हैं। ऐसा करने के लिए, निम्न PowerShell कमांड का उपयोग करके SMB v1.0 पर फाइल सर्वर एक्सेस का ऑडिट सक्षम करें:
Set-SmbServerConfiguration –AuditSmb1Access $true
कुछ दिनों के बाद, सर्वर पर Event Viewer खोलें, लॉग Applications and Services -> Microsoft -> Windows -> SMBServer -> Audit जांचें और देखें कि क्या किसी क्लाइंट ने SMB1 पर फाइल सर्वर तक पहुंच की।
टिप。 आप निम्न PowerShell कमांड का उपयोग करके इस इवेंट लॉग से इवेंट्स की सूची प्रदर्शित कर सकते हैं:
Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit
हमारे उदाहरण में, SMBServer स्रोत से EventID 3000 वाली एक घटना लॉग में मिली थी। घटना इंगित करती है कि क्लाइंट 192.168.1.10 SMB1 प्रोटोकॉल का उपयोग करके सर्वर तक पहुंचने का प्रयास कर रहा है।
SMB1 access Client Address: 192.168.1.10 Guidance: This event indicates that a client attempted to access the server using SMB1. To stop auditing SMB1 access, use the Windows PowerShell cmdlet Set-SmbServerConfiguration.

आपको इस कंप्यूटर या डिवाइस को नेटवर्क पर ढूंढना होगा और OS या फर्मवेयर को नए SMB प्रोटोकॉल संस्करणों का समर्थन करने वाले संस्करण में अपडेट करना होगा: SMBv2 या SMBv3।
हमारे मामले में हम इस जानकारी को नजरअंदाज करेंगे, लेकिन आपको ध्यान रखना चाहिए कि बाद में यह क्लाइंट इस SMB सर्वर पर शेयर्ड फ़ोल्डर तक पहुंच नहीं पाएगा।
Windows Server 2016/2019 पर SMB 1.0 सक्षम/अक्षम करें
Windows Server 2016 बिल्ड 1709 से शुरू होकर और Windows Server 2019 में, SMBv1 डिफ़ॉल्ट रूप से अक्षम है। Windows Server के नए संस्करणों में SMBv1 क्लाइंट प्रोटोकॉल के लिए समर्थन सक्षम करने के लिए, आपको अलग SMB 1.0/CIFS File Sharing Support फीचर इंस्टॉल करना होगा।
आप Server Manager का उपयोग करके SMBv1 फीचर इंस्टॉल कर सकते हैं, या PowerShell के माध्यम से।

आप PowerShell कमांड से जांच सकते हैं कि SMBv1 सक्षम है:
Get-WindowsFeature | Where-Object {$_.name -eq "FS-SMB1"} | ft Name,Installstate
FS-SMB1 फीचर इंस्टॉल करने के लिए, चलाएं:
Install-WindowsFeature FS-SMB1
SMBv1 क्लाइंट फीचर को अनइंस्टॉल करने के लिए (रीबूट की आवश्यकता है), कमांड चलाएं:
Uninstall-WindowsFeature –Name FS-SMB1 –Remove
एक और PowerShell कमांड जो SMB1Protocol फीचर को भी हटाती है:
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -Remove
अपने सर्वर को SMBv1.0 क्लाइंट एक्सेस को संभालने के लिए, FS-SMB1 कंपोनेंट के अलावा SMB फाइल सर्वर लेवल पर SMBv1 समर्थन सक्षम करने की आवश्यकता है। यह जांचने के लिए कि क्या आपके सर्वर पर नेटवर्क शेयर के लिए SMBv1 एक्सेस सक्षम है, चलाएं:
Get-SmbServerConfiguration

लाइन "EnableSMB1Protocol: True" का अर्थ है कि आप इस सर्वर पर SMBv1 प्रोटोकॉल का उपयोग करके शेयर्ड फ़ोल्डर तक पहुंचने की अनुमति देते हैं। Windows Server में SMBv1 सर्वर सपोर्ट को अक्षम करने के लिए, PowerShell कमांड चलाएं:
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
अब Get-SmbServerConfiguration cmdlet का उपयोग करके सुनिश्चित करें कि SMB1 सर्वर अक्षम है।

सर्वर पर SMBv1 समर्थन सक्षम करने के लिए, कमांड चलाएं:
Set-SmbServerConfiguration -EnableSMB1Protocol $True -Force
Windows 7/8 और Windows Server 2008 R2/2012 पर, SMB 1.0 क्लाइंट को अक्षम करने के लिए, आपको सर्विस और SMBv1 एक्सेस ड्राइवर को कमांड के साथ अक्षम करना होगा:
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled

Windows 10 पर SMBv1 कैसे सक्षम/अक्षम करें?
जैसा कि हम पहले ही कह चुके हैं, Windows 10 के सभी नए बिल्ड में (1709 से शुरू) SMB1 प्रोटोकॉल के लिए समर्थन अक्षम है (SMBv2 प्रोटोकॉल के माध्यम से गेस्ट एक्सेस भी अक्षम है)।
Windows 10 में, आप DISM कमांड का उपयोग करके SMBv1 प्रोटोकॉल कंपोनेंट्स की स्थिति जांच सकते हैं:
Dism /online /Get-Features /format:table | find "SMB1Protocol"

हमारे उदाहरण में, आप देख सकते हैं कि सभी SMBv1 फीचर्स अक्षम हैं:
SMB1Protocol | Disabled SMB1Protocol-Client | Disabled SMB1Protocol-Server | Disabled SMB1Protocol-Deprecation | Disabled
Windows 10 में, आप कंट्रोल पैनल (optionalfeatures.exe) से SMB 1 फीचर्स को भी प्रबंधित कर सकते हैं। SMB 1.0 /CIFS File Sharing Support विकल्प का विस्तार करें। जैसा कि आप देख सकते हैं, यहां 3 SMBv1 कंपोनेंट्स भी उपलब्ध हैं:
- SMB 1.0/CIFS Automatic Removal
- SMB 1.0/CIFS Client
- SMB 1.0/CIFS Server

आप फीचर मैनेजमेंट विंडो से या कमांड का उपयोग करके Windows 10 पर SMBv1 क्लाइंट और सर्वर सक्षम कर सकते हैं:
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol"
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol-Client"
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol-Server"
आप PowerShell का उपयोग करके Windows 10 में SMBv1 सर्वर और क्लाइंट भी सक्षम कर सकते हैं:
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Server
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client
यदि SMBv1 क्लाइंट को सक्षम करने के बाद 15 दिनों से अधिक समय तक उपयोग नहीं किया जाता है, तो यह स्वचालित रूप से अक्षम हो जाता है।
SMBv1 क्लाइंट का स्वचालित निष्कासन एक बार का ऑपरेशन है। यदि एडमिनिस्ट्रेटर मैन्युअली SMBv1 को फिर से सक्षम करता है, तो यह स्वचालित रूप से अक्षम नहीं होगा।
Windows 10 में SMB1 क्लाइंट और सर्वर सपोर्ट को अक्षम करने के लिए, निम्न DISM कमांड चलाएं:
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol"
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol-Client"
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol-Server"
यदि आपने Windows 10 में SMBv1 क्लाइंट को अक्षम कर दिया है, तो जब आप किसी फाइल सर्वर पर शेयर्ड फ़ोल्डर तक पहुंचते हैं जो केवल SMBv1 का समर्थन करता है (SMBv2 और v3 प्रोटोकॉल अक्षम या समर्थित नहीं हैं), तो आपको निम्न त्रुटियां प्राप्त हो सकती हैं:
0x80070035 The network path was not found;
Unable to connect to file shares because it is not secure. This share requires the obsolete SMB1 protocol, which is not secure and could expose your system to attacks;
You can't connect to the file share because it's not secure. This share requires the obsolete SMB1 protocol, which is unsafe and could expose your system to attack. Your system requires SMB2 or higher.
इसके बारे में अधिक पढ़ें: Unable to access shared folder on Windows 10।
इसके अतिरिक्त, यदि आप SMBv1 क्लाइंट को अक्षम करते हैं, तो Computer Browser सेवा, जिसका उपयोग लीगेसी NetBIOS प्रोटोकॉल द्वारा नेटवर्क पर डिवाइस खोजने के लिए किया जाता है, कंप्यूटर पर काम करना बंद कर देती है। Windows 10 नेटवर्क पर पड़ोसी कंप्यूटर को सही ढंग से प्रदर्शित करने के लिए, आपको Feature Discovery Provider Host सेवा कॉन्फ़िगर करनी होगी (यह लेख देखें)।
ग्रुप पॉलिसी के माध्यम से SMBv1 क्लाइंट और सर्वर अक्षम करना
Active Directory डोमेन वातावरण में, आप ग्रुप पॉलिसी (GPO) का उपयोग करके सभी सर्वर और कंप्यूटर पर SMBv1 अक्षम कर सकते हैं। चूंकि मानक Windows ग्रुप पॉलिसी में कोई अलग SMB कॉन्फ़िगरेशन पॉलिसी नहीं है, इसलिए आपको इसे रजिस्ट्री पॉलिसी के माध्यम से अक्षम करना होगा।
- Group Policy Management कंसोल (
gpmc.msc) खोलें, एक नया GPO बनाएं (disableSMBv1) और इसे उस OU से लिंक करें जिसमें वे कंप्यूटर हैं जिन पर आप SMB1 अक्षम करना चाहते हैं; - पॉलिसी एडिटिंग मोड पर स्विच करें। GPO सेक्शन Computer Configuration -> Preferences -> Windows Settings -> Registry का विस्तार करें;
- निम्न सेटिंग के साथ एक नया Registry Item बनाएं:
Action:Update
Hive:HKEY_LOCAL_MACHINE
Key Path:SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Value name:SMB1
Value type:REG_DWORD
Value data:0

यह पॉलिसी रजिस्ट्री के माध्यम से सभी कंप्यूटर पर SMBv1 सर्वर कंपोनेंट के लिए समर्थन अक्षम कर देगी। आप WMI फ़िल्टर का उपयोग करके इस पॉलिसी से Windows के कुछ संस्करणों को बाहर कर सकते हैं।
यदि आप डोमेन कंप्यूटर पर GPO के माध्यम से SMB क्लाइंट को अक्षम करना चाहते हैं, तो दो अतिरिक्त रजिस्ट्री पैरामीटर बनाएं:
- Start पैरामीटर (REG_DWORD प्रकार) मान 4 के साथ रजिस्ट्री कुंजी HKLM\SYSTEM\CurrentControlSet\services\mrxsmb10 में;
- DependOnService पैरामीटर (REG_MULTI_SZ प्रकार) मान Bowser, MRxSmb20, NSI (प्रत्येक मान नई लाइन पर) के साथ रजिस्ट्री कुंजी HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation में।

क्लाइंट पर ग्रुप पॉलिसी सेटिंग्स अपडेट करना बाकी है (gpupdate /force) और रीबूट के बाद सुनिश्चित करें कि SMBv1 कंपोनेंट्स पूरी तरह से अक्षम हैं।
Microsoft Security Compliance Toolkit के Security Baseline GPOs में एक अलग एडमिनिस्ट्रेटिव टेम्पलेट MS Security Guide (SecGuide.adml और SecGuide.admx फ़ाइलें) है जिसमें SMB सर्वर और क्लाइंट को अक्षम करने के लिए अलग विकल्प हैं:
- Configure SMB v1 server;
- Configure SMB v1 client driver.
