当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 无法从 Windows 10 和 11 访问共享文件夹或映射网络驱动器

作者:精品下载站 日期:2024-12-14 23:18:00 浏览:16 分类:玩电脑

无法从 Windows 10 和 11 访问共享文件夹或映射网络驱动器


如果您无法从 Windows 10 或 11 打开或映射 NAS、Samba Linux 服务器、具有旧版 Windows 版本 (Windows 7/XP/Server 2003) 的计算机上的网络共享文件夹,最有可能的问题是旧版和不安全版本的 SMB 协议在当前 Windows 版本中被禁用(SMB 协议在 Windows 中用于访问共享网络文件夹和文件)。

Microsoft 在所有最新版本的 Windows 中系统地禁用旧版和不安全版本的 SMB 协议。从 Windows 10 1709 和 Windows Server 2019(数据中心版和标准版)开始,默认情况下禁用不安全的 SMBv1 协议以及对网络共享文件夹的匿名(来宾)访问。

要采取的具体步骤取决于访问共享文件夹时 Windows 中出现的错误以及托管网络共享的远程 SMB 服务器的设置。

无法访问共享文件夹,因为安全策略阻止未经身份验证的访客访问

从 Windows 10 build 1709 Fall Creators Update(企业版和教育版)开始,用户开始抱怨当他们尝试打开相邻计算机上的网络共享文件夹时,出现错误:

Restoring Network Connections
An error occurs when you try to open a network folder:
An error occurred while reconnecting Y: to \nas1\share
Microsoft Windows Network: You can’t access this shared folder because your organization’s security policies block unauthenticated guest access. These policies help protect your PC from unsafe or malicious devices on the network.

[玩转系统] 无法从 Windows 10 和 11 访问共享文件夹或映射网络驱动器

此外,在其他运行 Windows 8.1、Windows 7 或 Windows 10(内部版本最高为 1709)的计算机上,相同的共享网络文件夹可以正常打开。关键是,在现代版本的 Windows 10(内部版本 1709+)中,默认情况下禁用使用 SMBv2 协议来宾访问共享文件夹。访客(匿名)是指无需身份验证即可访问共享网络文件夹。通过 SMBv1/v2 协议访问访客帐户下的网络文件夹时,不会使用 SMB 签名和加密等流量保护方法,这使您的会话容易受到 MiTM(中间人)攻击。

这些更改不适用于 Windows 10 家庭版,并且访客帐户下的网络访问工作正常。

如果您尝试在来宾帐户下使用 SMB v2 协议打开共享网络文件夹,您的计算机(SMB 客户端)的事件查看器中将出现以下错误:

Log Name: Microsoft-Windows-SmbClient/Security  
Source: Microsoft-Windows-SMBClient
Event ID: 31017
Rejected an insecure guest logon.

此错误表明您的计算机(客户端)阻止了来宾帐户下未经身份验证的访问。

在大多数情况下,当访问旧的 NAS 设备(通常在其上启用来宾访问以方便设置)或在启用匿名(来宾)访问的旧版 Windows 7/2008 R2/Windows XP/2003 设备上打开共享文件夹时,您可能会遇到此问题(请参阅不同 Windows 版本中支持的 SMB 协议版本表)。

Microsoft 建议更改托管共享网络文件夹的远程计算机或 NAS 设备上的设置。建议将网络共享切换为SMBv3模式。或者,如果设备仅支持 SMBv2 协议,则配置通过身份验证进行访问。这是解决问题最正确、最安全的方法。

在存储共享文件夹的设备上禁用访客访问:

  • NAS 设备 - 在 NAS 设备的设置中禁用访客访问(取决于供应商和型号);

  • Linux 上的 Samba 服务器 — 如果您在 Linux 上与 Samba 共享网络文件夹,请将以下字符串添加到 smb.conf 配置文件的 [global] 部分下:

    map to guest = never

    并在共享文件夹配置部分限制匿名访问:

     guest ok = no
  • 在 Windows 中,您可以通过控制面板 -> 网络和共享中心 -> 高级共享设置启用受密码保护的网络文件夹和打印机共享。对于“密码保护共享”部分中的所有网络,将值更改为“打开密码保护共享”。在这种情况下,对网络共享文件夹的匿名(来宾)访问将被禁用,您必须创建本地用户,授予他们对共享文件夹和打印机的访问权限,并使用这些帐户连接到远程计算机上的共享文件夹。

    [玩转系统] 无法从 Windows 10 和 11 访问共享文件夹或映射网络驱动器

还有另一种方法 - 您可以更改 Windows 设备上的设置,以允许访问访客帐户下的共享网络文件夹。此方法只能用作临时解决方法 (!!!),因为未经身份验证访问文件夹会显着降低计算机的安全性。

要从您的计算机启用访客访问,您需要使用组策略编辑器(

gpedit.msc

)。转至以下部分:计算机配置 -> 管理模板 -> 网络 -> Lanman 工作站。 查找并启用启用不安全的访客登录策略。 此策略选项确定 SMB 客户端是否允许不安全的来宾登录 SMB 服务器。

[玩转系统] 无法从 Windows 10 和 11 访问共享文件夹或映射网络驱动器

使用以下命令更新 Windows 中的组策略设置:

gpupdate /force

在没有本地 GPO 编辑器的 Windows 10 家庭版中,您可以通过注册表编辑器手动进行类似的更改:

HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters “AllowInsecureGuestAuth”=dword:1

或者使用这些命令:

reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters /v AllowInsecureGuestAuth /t reg_dword /d 00000001 /f
reg add HKLM\Software\Policies\Microsoft\Windows\LanmanWorkstation /v AllowInsecureGuestAuth /t reg_dword /d 00000001 /f

无法连接到文件共享,因为它不安全并且需要过时的 SMB1 协议

从 Windows 10 访问网络文件夹时另一个可能的问题是服务器端仅支持 SMBv1 协议版本。由于在 Windows 10 1709+ 中默认禁用 SMBv1 客户端,因此当您尝试打开共享文件夹或映射网络驱动器时,可能会收到错误消息:

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.

[玩转系统] 无法从 Windows 10 和 11 访问共享文件夹或映射网络驱动器

在这种情况下,本地网络上的相邻计算机可能无法显示,并且通过UNC路径打开共享文件夹时,可能会出现错误0x80070035。

错误消息清楚地表明网络共享文件夹仅支持 SMBv1 客户端访问协议。在这种情况下,您应该尝试重新配置远程 SMB 设备以至少使用 SMBv2(正确且安全的方法)。

如果您在 Linux 上使用 Samba 服务器来共享文件,您可以在 smb.conf 文件中指定支持的 SMB 协议的最低版本,如下所示:

[global]
server min protocol = SMB2_10
client max protocol = SMB3
client min protocol = SMB2_10
encrypt passwords = true
restrict anonymous = 2

在 Windows 7/Windows Server 2008 R2 上,您可以使用以下 PowerShell 命令通过注册表禁用 SMB 1 协议并启用 SMBv2:

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

在 Windows 8.1/Windows Server 2012 R2 上,您可以使用以下命令禁用 SMBv1、允许 SMBv2 和 SMBv3(验证专用或域配置文件用于您的网络连接):

Disable-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol"
Set-SmbServerConfiguration -EnableSMB2Protocol $true

如果您的网络设备(NAS、Windows XP、Windows Server 2003)仅支持 SMB1 协议,您可以在 Windows 10/11 或 Windows Server 上启用单独的 SMB1Protocol-Client 功能。 但是不建议这样做!!!

如果远程设备需要 SMBv1 进行连接,并且您的 Windows 设备上禁用了此协议,则事件查看器中会出现错误:

Log Name: Microsoft-Windows-SmbClient/Security
Source: Microsoft-Windows-SMBClient
Event ID: 32000
Description:  SMB1 negotiate response received from a remote device when SMB1 cannot be negotiated by the local computer.

运行提升的 PowerShell 提示符并验证 SMB1Protocol-Client 是否已禁用 (

State: Disabled

):

Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client

启用 SMBv1 客户端协议(需要重新启动):

Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client

[玩转系统] 无法从 Windows 10 和 11 访问共享文件夹或映射网络驱动器

您还可以从 Windows 10 和 11 中启用/禁用其他功能

optionalfeatures.exe

。展开 SMB 1.0/CIFS 文件共享支持并启用 SMB 1.0/CIFS 客户端。

[玩转系统] 无法从 Windows 10 和 11 访问共享文件夹或映射网络驱动器

在 Windows 10 1809 及更高版本上,如果 SMBv1 客户端超过 15 天未使用,则会自动删除(SMB 1.0/CIFS 自动删除组件负责此操作)。

在此示例中,我仅启用了 SMBv1 客户端。如果旧版客户端未将您的计算机用作托管共享文件夹的 SMB 服务器,请勿启用 SMB1 协议服务器功能。

安装 SMBv1 客户端后,您应该能够毫无问题地连接到共享文件夹或打印机。但是,您应该了解不建议使用此解决方法,因为它会降低计算机的安全性。

Windows 无法访问共享文件夹:您没有权限

连接到远程计算机上的共享网络文件夹时,可能会出现错误:

Network Error
Windows cannot access \PC12\Share
You do not have permission to access \PC12\Share. Contact your network administrator to request access.

[玩转系统] 无法从 Windows 10 和 11 访问共享文件夹或映射网络驱动器

出现此错误时,您需要:

  1. 确保您用来访问共享文件夹的用户被授予对远程共享的访问权限。打开服务器上共享文件夹的属性并确保您的用户至少具有读取权限。此外,您还可以使用 PowerShell 检查远程主机上的 SMB 文件共享权限:

    Get-SmbShareAccess -Name "tools"

    然后检查NTFS文件夹权限:

    get-acl C:\tools\ |fl 

    [玩转系统] 无法从 Windows 10 和 11 访问共享文件夹或映射网络驱动器

    如有必要,编辑文件夹和/或共享属性中的权限;

  2. 确保您使用正确的用户名和密码来访问网络文件夹。如果系统未提示您输入用户名和密码,请尝试删除 Windows 凭据管理器中为远程共享保存(缓存)的凭据。运行命令

    rundll32.exe keymgr.dll, KRShowKeyMgr

    并删除您尝试访问的远程计算机的缓存凭据。

    [玩转系统] 无法从 Windows 10 和 11 访问共享文件夹或映射网络驱动器

    下次连接到共享文件夹时,系统将提示您输入用户名和密码。指定访问远程计算机上的网络共享文件夹的凭据。您可以将其保存在凭据管理器中或手动添加。

其他修复:Windows 无法访问共享文件夹

本部分提供了解决在 Windows 中打开网络文件夹问题的其他方法:

  • 确保远程计算机允许使用 SMB 协议(TCP 端口 445)传入到共享网络文件夹的连接。您可以使用 Test-NetConnection 命令检查远程计算机上端口 445 的可用性:

    Test-NetConnection -ComputerName HomePC212 -Port 445

    [玩转系统] 无法从 Windows 10 和 11 访问共享文件夹或映射网络驱动器

    如果 cmdlet 返回

    TcpTestSucceeded : False

    ,这意味着对远程计算机上的网络文件夹的访问被防火墙阻止。连接可能被防病毒软件或防火墙(第三方或内置 Windows Defender 防火墙)阻止。如果您使用的是 Windows Defender,请在所有三个网络配置文件的文件共享主机上启用文件和打印机共享规则(控制面板\系统和安全\Windows Defender 防火墙\允许的应用程序\允许应用程序通过 Windows 防火墙进行通信)。

    [玩转系统] 无法从 Windows 10 和 11 访问共享文件夹或映射网络驱动器

    或者使用 PowerShell 创建防火墙规则:

    New-NetFirewallRule -DisplayName "Allow_SBM-FileSharing_In" -Direction Inbound -Protocol TCP -LocalPort 445 -Action Allow
  • 如果无法打开映射的网络驱动器(文件夹),请尝试删除 Windows 凭据管理器中保存的缓存凭据,删除映射的网络驱动器(使用

    Net Use * /delete

    命令)并重新连接它们;

  • 尝试使用远程计算机的 IP 地址而不是其名称来访问该文件夹。例如:

    Win+R

    ->

    \192.168.12.20

    -> 好的。

  • 确保您的计算机已加入同一工作组。可以使用 PowerShell 找到计算机上工作组的名称:

    Get-WmiObject Win32_ComputerSystem).domain
  • 重置 TCP/IP 堆栈设置并更新计算机上的 IP 地址:

    netsh int ip reset
    netsh winsock reset
    ipconfig /flushdns
    ipconfig /release
    ipconfig /renew

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯