本篇文章目录


  1. 本篇文章要解决的问题
  2. 共享文件夹的一般过程
  3. 文件共享失败的原因以及解决办法
      3.1 所在工作组不一样是否影响共享文件?
      3.2 防火墙未正确设置
      3.3 用户被禁用
        3.3.1 Guest用户被禁用
        3.3.2 其他用户被禁用的
      3.4 用户没有权限访问
      3.5 本地安全策略设置不正确
      3.6 网卡的文件和打印机共享未打开。
      3.7 系统使用了以前连接时缓存的账户访问
  4. 在不同地方设置时系统更改了哪些地方
      4.1 右键文件夹共享文件时
      4.2 在图1中位置设置关闭“密码保护共享”
      4.3 在控制面板启用用户账户
  5. 额外知识
      5.1 图1各个选项的总结说明。
      5.2 查看访问共享文件夹的用户和主机名以及访问的文件
      5.3 访问共享文件夹的两种方法
      5.4 net use的使用
      5.5 网卡属性解释
      5.6 网络发现依赖的服务和防火墙端口以及设置方法

1. 本篇文章要解决的问题

  在使用windows系统的过程中,我们一般共享文件夹主要是使用系统自带的功能。但是在共享的过程中往往会出现很多问题。按照网络上的教程,同样的操作可能有的人可以正确访问共享文件夹,有的人却不能访问。所以本篇文章主要是分析并解决与在Windows上共享文件夹相关的问题。在分析过程中还讲解了一些文件共享的机制以及额外的知识。出现的问题主要分为两大类,一个是无法访问,一个是无权限访问。由于共享文件涉及的内容比较多,所以建议大家从头开始看这篇文章,不要跳跃式看,否则可能会错过一些细节的地方导致无法成功共享文件夹。

2. 共享文件夹的一般过程

  在这里我先按照一般方法来设置文件夹共享,然后再在本文详细讲解各个部分设置的意义是什么。
共享文件夹的一般步骤为:
1.右键需要共享的文件夹,选"属性",按如下方法操作。
windows共享文件分析
2.打开“控制面板\网络和 Internet\网络和共享中心\高级共享设置 ”。启用“文件和打印机共享”和“关闭密码保护共享”。


可以按 win + r 键输入control按确定打开控制面板


windows共享文件分析
图1
该图片中的内容在本文其他位置讲解和设置中要用到,请注意这里。

3. 文件共享失败的原因以及解决办法

文件共享失败有如下几方面的原因:
1.所在工作组不一样是否影响共享文件?
2.防火墙未正确设置
3.用户被禁用
3.1Guest用户被禁用
3.2其他用户被禁用的
4.用户没有权限访问
5.本地安全策略禁用
6.网卡的文件和打印机共享未打开。
7.系统使用了以前缓存的账户访问
下面开始逐一进行分析。

3.1 所在工作组不一样是否影响共享文件?

  在寻找解决与共享文件相关的问题时,经常看到有一些帖子中提出要先设置工作组以使共享文件夹和访问共享文件夹双方主机在同一工作组。经过测试,处于不同工作组的主机也是可以正常地共享文件的。

3.2 防火墙未正确设置

  这里把防火墙放在第一位是因为大多数人的问题是防火墙相应的端口没有打开。要打开防火墙相应的端口有两种办法:
1.在“控制面板\系统和安全\Windows 防火墙\允许程序或功能通过Windows防火墙”中把“文件和打印机共享”左边方框的对勾打上。这样便在防火墙中打开相应的共享端口。
windows共享文件分析
2.在图1中的“文件和打印机共享”中选择“启用文件和打印机共享”即可。
windows共享文件分析
  其实“启用文件和打印机共享”也是在防火墙中打开相应的共享端口。上面两种方法的结果是一样的。只不过是设置的地方不一样。可以在“控制面板\系统和安全\Windows 防火墙”左侧栏中点击“高级设置”打开“高级安全Windows防火墙”。或者直接win + r 键入wf.msc打开。点击左侧栏的“入站规则”,在中间显示部分找到“文件和打印机共享”。可以看到有很多“文件和打印机共享”相关的规则。查看与当前网络位置相关的规则。即如果当前是在公用网络下则查看“配置文件”是公用的“文件和打印机共享”相关的规则。当前是在专用网络下则查看“配置文件”是专用的“文件和打印机共享”相关的规则。分别在前面两种设置防火墙的位置设置“文件和打印机共享”,看下几个选项有什么变化。主要看“已启用”那一列的变化。
windows共享文件分析

3.3 用户被禁用

3.3.1 Guest用户被禁用

  比较常见的问题的是Guest用户被禁用,因为新系统安装后默认情况下guest用户是被禁用的。在Windows系统中任何操作都是需要以某个用户身份进行的。对共享文件夹的访问也不例外。如果共享文件夹时添加了Everyone或者Guest,则通过网络访问时使用的用户身份默认是Guest。要启用Guest用户有两种方法。下面两种方法作用是一样的,只是设置的地方不同。
1.右键“我的电脑”,选择“管理”。在“计算机管理\本地用户和组\用户”中右键“Guest”用户选择”属性“。把“账户已禁用”左边的对勾去掉即可。
windows共享文件分析

  1. 按下“win + r”键入secpol.msc,打开“本地安全策略”。在“安全设置\本地策略\安全选项”中开启"Guest"账户。
    windows共享文件分析
      在上面两个地方设置的结果是更改了注册表。是由lsass.exe程序进行更改的。更改的位置为下面3个:
    1.HKLM\SAM\SAM\DOMAINS\Account\Users\000001F5\F
    2.HKLM\SAM\SAM\DOMAINS\Account\Users\000001F5\V
    3.HKLM\SAM\SAM\DOMAINS\Account\F
    windows共享文件分析
    windows共享文件分析
    其中000001F5为Guest用户的唯一标识符。这里要右键HKLM\SAM\SAM选择“权限”添加用户权限才可看到子项。
      有时会发现即使启用了Guest用户,在访问时也会弹出对话框提示用户名和密码。这是因为Windows系统下所有的操作都需以某个用户的身份运行的。所以直接输入Guest即可,不需输入密码。但如果为Guest设置了密码,还是要输入密码的。
      关于设置Guest密码和在图1中“密码保护共享”的问题。“密码保护共享”和Guest账户是相关联的。
    windows共享文件分析
      如果为Guest用户设置了密码则无法选择“关闭密码保护共享”。这时如果在访问共享文件夹时没输入密码则会出现。
    windows共享文件分析
      如果没有为Guest用户设置密码却选择“启用密码保护”则Guest用户会被禁用并且会被添加到本地安全策略“拒绝从网络访问这台计算机”项。请查看文章后面介绍本地安全策略部分。
    windows共享文件分析
    这时从网络访问共享文件夹会出现以下错误
    windows共享文件分析

    3.3.2 其他用户被禁用的

      在访问共享文件夹的时候可以使用的用户不只是Guest,只要是有权限的账户都可以。 所以如果使用被禁用的账户也是不可访问共享文件夹的。

    3.4 用户没有权限访问

      要查看哪个账户有权限访问文件夹可以右键文件夹\属性\安全选项卡,查看各个用户和组的所拥有的权限。也可以分别编辑每个用户或组的权限。
    windows共享文件分析
    使用无权限用户访问时会出现
    windows共享文件分析

    3.5 本地安全策略设置不正确

      本地安全策略有几个地方也影响了共享文件夹的访问。可按“win + r”或在开始菜单中输入secpol.msc打开本地安全策略,也可以直接在开始菜单搜索框中输入“本地安全策略”打开。
    1.windows共享文件分析
      如上图如果把用户添加到“拒绝从网络访问这台计算机”并且使用该用户访问共享文件夹则可能出现以下错误:
    windows共享文件分析
    2.windows共享文件分析
      如上图如果启用了以上“本地安全策略”项则可能会出现下列错误。经过测试,该项是针对非Guest账户的。即该项启用与否与Guest账户是没有任何关系的。图中所述的控制台登录是指本地物理上登录,非远程网络登录。
    windows共享文件分析

3.6 网卡的“Microsoft网络的文件和打印机共享”未打开

  遇到这个问题的概率比较低,但有时这里也会出现意想不到的错误。
  对于共享文件夹端的主机打开“控制面板\网络和 Internet\网络连接”,右键网卡,选择“属性”。可以看到“网络”选项卡下面“Microsoft网络的文件和打印机共享”。把该选项左边的对勾先取消按确定,然后再次进入把对勾选上按确定即可。
  对于访问共享文件夹端的主机也同样地操作“Microsoft网络客户端”。
  每个网卡都有相同设置。所以这里的设置是相对于每个网卡而言的,即可以设置连接本主机该网卡的网络设备可以访问共享文件夹,而连接本主机其他网卡的网络设备不可以访问该主机的共享文件夹。这对于有多网卡的主机有更灵活的配置。

设置完后可能要重启网卡或者主机。

windows共享文件分析

3.7 系统使用了以前连接时缓存的账户访问

  在第一次访问访问共享文件夹时需要提供用户名或者用户名和密码。在第一次访问成功后系统会自动记住访问该共享文件夹时使用的用户名和密码。在下一次访问共享文件夹时会自动使用该用户名和密码。在共享文件夹的主机更改设置时,比如更改用户的密码时。这个时候会出现没有权限访问的情况。如下图所示:
windows共享文件分析
  这个时候可以删除先前系统自动保存的用户名和密码。可以使用net use命令删除。用法为先使用net use 命令查看当前的网络连接。然后使用
net use /delete \ComputerName 命令删除自动保存的用户名和密码即可。这里的ComputerName是主机名。
windows共享文件分析
如果访问共享文件夹时使用的是IP地址而非主机名,则这里要输入IP地址。
windows共享文件分析
  如果不行可以重启一下访问共享文件夹端的主机网卡或主机。
  经过实验,如果之前在本地有用过远程共享主机的管理员账户访问共享文件夹则下次连接时会自动使用该管理员账户名和密码。要想再次以Guest账户访问该共享文件夹只能在远程共享主机中更改该管理员账户密码才能在访问共享文件夹时再次弹出提示输入用户名和密码框。在这之前使用net use命令是看不到网络连接的,即使正在访问远程共享文件夹。但是可以在远程共享主机中查看到正在访问的主机和用户(可在额外知识部分了解怎么查看)。
windows共享文件分析
  可以直接使用net use命令设置访问某个主机使用的用户名和密码。使用方法为:net use \IP地址 密码 /user:用户名

4. 在不同地方设置时系统更改了哪些地方

  经过前面的分析可以知道共享文件夹需要设置哪些地方了。那现在再来分析一下共享文件夹时系统自动做了哪些操作。

4.1 右键文件夹共享文件时

  在右键文件夹共享文件时系统自动打开文件夹和打印机共享,即打开了文件夹和打印机共享防火墙端口和设置了图1中的“文件夹和打印机”选项为启用状态。
windows共享文件分析

4.2 在图1中位置设置关闭“密码保护共享”

windows共享文件分析
关闭“密码保护共享”后,系统自动设置了2个地方。
1.启用Guest账户,即与前面“Guest账户被禁用”那节一样设置了注册表,本地安全策略项启用Guest账户,并且在“计算机管理”中启用账户。
windows共享文件分析
2.将Guest账户从“拒绝从网络访问这台计算机”项中删除,这样Guest用户即可以通过网络访问该计算机。
windows共享文件分析

4.3 在控制面板启用用户账户

windows共享文件分析
在控制面板启用用户账户后更改了2个地方。
1.启用Guest账户。
2.将Guest账户从“拒绝本地登录”项中删除,这样Guest用户即可以在本地登录。
windows共享文件分析
  从4.2和4.3可以看出两种设置不同的地方。一个允许网络访问不允许本地登录。一个允许本地登录不允许网络访问。

5. 额外知识

5.1 图1各个选项的总结说明。

各个选项的作用在图1中已经有说明了,这里只做补充说明。
1.网络发现
  此选项用于网络上其他主机是否可以在“网络”(以前的“网络邻居”)中看到该设备。如果禁用则无法看到,但还是可以直接在“Windows资源管理器”中输入ip地址进行访问,如\\192.168.25.110,或者直接输入主机名\\WIN-I4BTR51SSDT\进行访问。但是输入ip地址进行访问会比较快。
2.文件和打印机共享
  此选项用于开启文件和打印机共享。使用的是smb协议。
3.公用文件夹共享
  此选项用于是否共享公用文件夹,共享目录为C:\Users\Public。关闭此选项则在网络中的主机在“网络”中无法看到该共享目录,也无法访问。
4.媒体流
  用于建立媒体库,共享图片,音频与视频。这里共享目录也是C:\Users\Public。使用的是DLNA协议。DLNA的全称是DIGITAL LIVING NETWORK ALLIANCE(数字生活网络联盟)。可以在网络中另一台主机中通过Windows media player或者支持DLNA的网络设备访问媒体库。也可以在“windows 资源管理器”中“网络位置”一栏中查看媒体库。可以看到下图中媒体设备有两个。其中WIN-WINDOWS-7是媒体播放设备。只有网络上支持upnp协议的媒体播放设备如Windows Media Player才会出现在这里。WIN-WINDOWS-7:paitouxi:是媒体库。媒体播放设备是用来播放媒体库中的内容的。
windows共享文件分析
  要让Windows Media Player出现在网络上其他主机的“网络”媒体设备一栏中,必须打开Windows Media Player而且设置“自动允许设备播放我的媒体”。这样网络中其他主机即可右键图片,音频,视频文件,选择播放到这台主机中。也可在下图中"其他媒体库"中直接播放网络中的媒体库中的内容。
windows共享文件分析
5.文件共享连接
  Windows 7 使用128位加密帮助保护文件共享连接。某些设备不支持128位加密,必须使用40或56位加密。
6.密码保护的共享
  设置在网络主机访问本机共享文件夹时是否需要密码。

5.2 查看访问共享文件夹的用户和主机名以及访问的文件

  有时候我们会想查看有谁在访问我们的共享文件夹和访问哪些文件。这时候可以使用Windows系统自带的工具查看。按win + r 键输入compmgmt.msc或右键“我的电脑”,选择“管理”打开“计算机管理”控制台。
在“计算机管理\共享文件夹\会话”中可以看到是哪台主机使用哪个账户访问共享文件夹。
windows共享文件分析
在“计算机管理\共享文件夹\打开文件”中可以看到查看了哪些文件。
windows共享文件分析

5.3 访问共享文件夹的两种方法

  访问共享文件夹有两种方法,第一种是直接在Windows资源管理器中的“网络”中查看。第二种是在Windows资源管理器中的地址栏中输入IP地址进行访问,如\\192.168.25.110

5.4 net use的使用

  net use命令可以设置访问共享文件夹时使用的用户和密码。可以查看和断开当前已连接到的共享主机。

  • 使用net use查看当前已连接到的共享主机。
  • 使用net use \ComputerName /delete命令删除自动保存的用于该主机的用户名和密码。
  • 使用net use \IP地址 密码 \user:用户名命令设置连接到某主机时要使用的用户名和密码。
    windows共享文件分析
  • 使用“net use z: \WIN-I4BTR51SSDT\Users\paitouxi\Desktop\新建文件夹 123 /user:guest”命令添加一个网络命令,其中“z”为映射到本地的路径,即映射成功后在本地使用“z:\”即可访问该共享文件夹,“\WIN-I4BTR51SSDT\Users\paitouxi\Desktop\新建文件夹”为远程共享文件夹,“123”为密码,“guest”为用户名。可在“Windows 资源管理器”中的“网络位置”一栏中看到。
    windows共享文件分析

    5.5 网卡属性解释

    windows共享文件分析
      控制面板\网络和 Internet\网络连接中右键网卡选择“属性”即可打开网卡属性。从上图中可以看到有很多的选项。在用鼠标左键选择某一项时可以在该页面下方的描述中看到其作用。其中

  • Microsoft网络客户端
      用于访问共享文件夹。如果禁用则出现可以在“网络”中可以看到远程共享主机,但是无法访问。这个可以设置是否能访问与哪个网卡连接的局域网的主机的共享文件夹。可分别对每个网卡进行设置。
  • VMware Bridge Protocol
      这用于VMware workstation的虚拟机桥接到物理网络中。但是这只有在安装了VMware workstation时才会出现这个协议。这里不再讨论。
  • Microsoft网络的文件和打印机共享
      用于共享文件夹。如果禁用则网络中其他主机无法访问共享文件夹。这个可以设置共享文件夹能由与哪个网卡连接的局域网主机可以访问。可分别对每个网卡进行设置。
  • Qos 数据包计划程序
      打开“本地组策略编辑器” ,然后找到“计算机配置→管理模板→网络→QoS数据包调度程序”一项,Qos 数据包计划程序主要与这里相关。Windows 系统默认保留了20%的带宽。被保留的带宽是用于一种在Windows 2000里面引入的新技术——QoS(即:联网服务质量),而且,不是说这20%的带宽就一定会被占用,事实上,只有在使用了QoS应用程序编程接口编写应用程序需要访问网络的时候,才会利用到这20%的带宽。如果这些使用了QoS API的应用程序没有访问网络时,所保留的带宽仍然能够被其他应用程序所采用。组策略里面修改的数值指的是当使用了QoS API编写程序需要访问网络时能够使用的最大带宽量,如果我们设置为0%,那就意味着使用QoS API编写的应用程序不得不和其他应用程序争夺有限的带宽,可能产生的后果就是需要优先通信的数据没有得到优先权。当然,QOS这个本来用于改善网络质量的新技术也就丧失了意义。 可查看以下链接说明http://www.thewindowsclub.com/configure-reservable-bandwidth-settings-windows “在Windows 10 / 8.1中配置和限制可预留带宽设置”。也可直接更改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Psched给它数值数据0。如果Psched不存在,请创建它。
  • 链路层拓扑发现响应程序
      用于发现和定位网络中其他计算机和建立网络拓扑图。可在下图所示位置查看完整映射。
    windows共享文件分析
  • 链路层拓扑发现映射器 I/O 驱动程序
      用于网络中其他计算机发现和定位自己所处位置和建立网络拓扑图。
    即通过这两个程序可以知道局域网中的电脑,经过的交换机,路由器。

    5.6 网络发现依赖的服务和防火墙端口以及设置方法

      网络发现就是让网络中其他主机在“网络”的“计算机”一栏中能够看到该计算机。
    windows共享文件分析
      网络发现需要启动 DNS 客户端、功能发现资源发布、SSDP 发现和 UPnP 设备主机服务,从而允许网络发现通过 Windows 防火墙进行通信,并且其他防火墙不会干扰网络发现。如果某些情况(但不是上述所有情况)属实,则网络发现状态将显示为“自定义”。
      依赖的服务是DNS Client,Function Discovery Resource Publication,SSDP Discovery, UPnP Device Host,要使用网络发现,必须将这几个服务启动。
    打开“网络发现”防火墙端口有两个方法:
      1.打开“控制面板\网络和 Internet\网络和共享中心\高级共享设置 ”。启用“启用网络发现”。
      2.在“控制面板\系统和安全\Windows 防火墙\允许程序或功能通过Windows防火墙”中把“网络发现”左边的方框打上对勾。这样便在防火墙中打开相应的“网络发现”端口。
    这样就能在“网络”中查看到网络中其他支持smb协议的主机。网络上的其他主机也能看到这台主机。
      可以在“控制面板\系统和安全\Windows 防火墙”左侧栏中点击“高级设置”打开“高级安全Windows防火墙”。或者直接win + r 键入wf.msc打开。点击左侧栏的“入站规则”或“出站规则”,在中间显示部分找到“网络发现”。可以看到有很多网络发现项,可以查看网络发现所使用的端口。