Windows怎么配置SMB文件共享协议_Windows如何启用和配置不同版本的SMB协议【详解】-1

如果您在Windows系统中需要实现局域网内文件共享,但客户端无法识别或连接共享资源,则很可能是SMB协议未启用、版本不匹配或配置不完整。以下是针对不同Windows版本启用和配置SMB协议的多种具体方法:

一、通过控制面板启用SMB功能

该方法适用于所有Windows桌面版(Win10/Win11)及部分服务器版本,通过图形界面快速启用基础SMB支持,尤其适合无需精细权限控制的家用或小型办公环境。

1、按Win + S打开搜索,输入“控制面板”并打开。

2、将查看方式设为“小图标”,点击“程序和功能”。

3、点击左侧“启用或关闭Windows功能”。

4、展开“SMB 1.0/CIFS 文件共享支持”,根据实际需求勾选子项;若仅需现代安全共享,可跳过此步,直接启用SMB 2.0/3.0相关选项(如存在)。

5、向下滚动,勾选“SMB Direct”(Windows Server或高版本Win10/11专业版可用)及“SMB 3.0/3.1.1”相关条目(名称可能显示为“SMB 3.0”或“SMB 3.x”)。

6、点击“确定”,等待系统安装组件,重启计算机使设置生效。

二、使用PowerShell命令启用SMB 2/3协议

该方法绕过图形界面限制,可精确控制协议开关状态,适用于Windows Server、Win10/11专业版与企业版,且能验证当前启用状态,是排查协议级故障的首选手段。

1、以管理员身份运行PowerShell:右键“开始”按钮 → 选择“Windows PowerShell(管理员)”或“终端(管理员)”。

2、执行命令启用SMB 2协议:Set-SmbServerConfiguration -EnableSMB2Protocol $true -Force。

3、执行命令禁用不安全的SMB 1协议:Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force。

4、验证结果:运行Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol, EnableSMB2Protocol,确认输出中EnableSMB2Protocol为True,EnableSMB1Protocol为False。

5、如需强制加密传输(增强安全性),追加命令:Set-SmbServerConfiguration -EncryptData $true -RejectUnencryptedAccess $true -Force。

三、通过服务器管理器配置SMB(仅限Windows Server)

该方法面向Windows Server系统,集成于GUI管理框架中,适用于已部署AD DS或需与角色服务协同工作的生产环境,支持集中化策略下发。

1、打开“服务器管理器”,在左侧面板点击“本地服务器”。

2、在右侧“属性”区域找到“SMB 1.0/CIFS 文件共享支持”,点击其值(如“已启用”或“已禁用”)。

3、在弹出窗口中,取消勾选“SMB 1.0/CIFS 文件共享支持”,确保其处于禁用状态。

4、返回服务器管理器主界面,点击顶部菜单“管理” → “添加角色和功能”。

5、在向导中进入“功能”页面,展开“文件和存储服务” → “文件服务器” → “SMB 文件共享”,勾选“SMB Direct”与“SMB 多通道”。

6、完成安装后,在“工具”菜单中打开“文件服务器资源管理器”,可进一步配置配额、文件筛选与访问规则。

四、配置网络发现与防火墙放行

即使SMB协议已启用,若网络发现被禁用或防火墙拦截SMB端口(TCP 445),客户端仍无法发现或访问共享资源。此步骤是共享功能可达性的必要保障。

1、打开“设置” → “网络和Internet” → “高级网络设置” → “高级共享设置”。

2、在当前网络配置文件(专用网络)下,开启“网络发现”和“文件和打印机共享”。

3、打开“控制面板” → “系统和安全” → “Windows Defender 防火墙” → “允许应用或功能通过Windows Defender防火墙”。

4、点击“更改设置”,向下滚动并勾选“文件和打印机共享(SMB-In)”,确保其在“专用”列中打勾。

5、若使用第三方防火墙或企业级安全软件,需手动放行TCP端口445,并允许入站连接。

五、验证SMB连接与协议版本

该操作用于确认客户端实际使用的SMB协议版本,排除因旧设备兼容性导致的降级连接问题,是定位性能或认证异常的关键环节。

1、在已成功访问共享的Windows客户端上,以管理员身份打开PowerShell。

2、运行命令:Get-SmbConnection。

3、检查输出列表中的“ServerName”是否为目标共享主机,“Dialect”字段显示所用协议,如“3.1.1”、“3.0”、“2.1”等。

4、若出现“2.002”或空值,说明连接可能回退至SMB 2.0早期版本或存在协商失败;此时应检查服务端是否禁用了SMB 2.0以上版本,或客户端操作系统是否过旧(如Windows 7 SP1未更新补丁)。

5、如需进一步诊断,可在服务端运行:Get-SmbServerConfiguration | fl *,查看加密、签名、多通道等关键参数的实际值。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。