1.本篇文章要解决的问题
2.共享文件夹的一般过程
3.文件共享失败的原因以及解决办法
3.1 所在工作组不一样是否影响共享文件?
3.2 防火墙未正确设置
3.3 用户被禁用
3.3.1Guest用户被禁用
3.3.2其他用户被禁用的
3.4用户没有权限访问
3.5本地安全策略禁用
3.6网卡的文件和打印机共享未打开。
3.7系统使用了以前连接时缓存的账户访问
4.额外知识
4.1图1各个选项的总结说明。
4.2 访问共享文件夹的两种方法
4.3 net use的使用
4.4 网卡属性解释
4.5 网络发现依赖的服务和防火墙端口以及设置方法
1、本篇文章要解决的问题
在使用windows系统的过程中,我们一般共享文件夹主要是使用系统自带的功能。但是在共享的过程中往往会出现很多问题。按照网络上的教程,同样的操作可能有的人可以正确访问共享文件夹,有的人却不能访问。所以本篇文章主要是分析并解决与在Windows上共享文件夹相关的问题。在分析过程中还讲解了一些文件共享的机制以及额外的知识。出现的问题主要分为两大类,一个是无法访问,一个是无权限访问。由于共享文件涉及的内容比较多,所以建议大家从头开始看这篇文章,不要跳跃式看,否则可能会错过一些细节的地方导致无法成功共享文件夹。
2、共享文件夹的一般过程
在这里我先按照一般方法来设置文件夹共享,然后再在本文详细讲解各个部分设置的意义是什么。
共享文件夹的一般步骤为:
1.右键需要共享的文件夹,选"属性",按如下方法操作。
2.打开“控制面板\网络和 Internet\网络和共享中心\高级共享设置 ”。启用“文件和打印机共享”和“关闭密码保护共享”。
图1
该图片中的内容在本文其他位置讲解和设置中要用到,请主机这里。
3.文件共享失败的原因以及解决办法
文件共享失败有如下几方面的原因:
1.所在工作组不一样是否影响共享文件?
2.防火墙未正确设置
3.用户被禁用
3.1Guest用户被禁用
3.2其他用户被禁用的
4.用户没有权限访问
5.本地安全策略禁用
6.网卡的文件和打印机共享未打开。
7.系统使用了以前缓存的账户访问
下面开始一个一个的分析。
3.1 所在工作组不一样是否影响共享文件?
在寻找解决与共享文件相关的问题时,经常看到有一些帖子中提出要先设置工作组以使共享文件夹和访问共享文件夹双方主机在同一工作组。经过测试,处于不同工作组的主机也是可以正常地共享文件的。
3.2 防火墙未正确设置
这里把防火墙放在第一位是因为大多数人的问题是防火墙相应的端口没有打开。要打开防火墙相应的端口有两种办法:
1.在“控制面板\系统和安全\Windows 防火墙\允许程序或功能通过Windows防火墙”中把“文件和打印机共享”左边方框的对勾打上。这样便在防火墙中打开相应的共享端口。
2.在图1中的“文件和打印机共享”中选择“启用文件和打印机共享”即可。
其实“启用文件和打印机共享”也是在防火墙中打开相应的共享端口。上面两种方法的结果是一样的。只不过是设置的地方不一样。可以在“控制面板\系统和安全\Windows 防火墙”左侧栏中点击“高级设置”打开“高级安全Windows防火墙”。或者直接win + r 键入wf.msc打开。点击左侧栏的“入站规则”,在中间显示部分找到“文件和打印机共享”。可以看到有很多“文件和打印机共享”相关的规则。查看与当前网络位置相关的规则。即如果当前是在公用网络下则查看“配置文件”是公用的“文件和打印机共享”相关的规则。当前是在专用网络下则查看“配置文件”是专用的“文件和打印机共享”相关的规则。分别在前面两种设置防火墙的位置设置“文件和打印机共享”,看下几个选项有什么变化。主要看“已启用”那一列的变化。
3.3 用户被禁用
3.3.1Guest用户被禁用
比较常见的问题的是Guest用户被禁用,因为新系统安装后默认情况下guest用户是被禁用的。在Windows系统中任何操作都是需要以某个用户身份进行的。对共享文件夹的访问也不例外。如果共享文件夹时添加了Everyone或者Guest,则通过网络访问时使用的用户身份默认是Guest。要启用Guest用户有两种方法。下面两种方法作用是一样的,只是设置的地方不同。
1.右键“我的电脑”,选择“管理”。在“计算机管理\本地用户和组\用户”中右键“Guest”用户选择”属性“。把“账户已禁用”左边的对勾去掉即可。
- 按下“win + r”键入secpol.msc,打开“本地安全策略”。在“安全设置\本地策略\安全选项”中开启"Guest"账户。 在上面两个地方设置的结果是更改了注册表。是由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
其中000001F5为Guest用户的唯一标识符。这里要右键HKLM\SAM\SAM选择“权限”添加用户权限才可看到子项。
有时会发现即使启用了Guest用户,在访问时也会弹出对话框提示用户名和密码。这是因为Windows系统下所有的操作都需以某个用户的身份运行的。所以直接输入Guest即可,不需输入密码。但如果为Guest设置了密码,还是要输入密码的。
关于设置Guest密码和“密码保护共享”的问题。“密码保护共享”和Guest账户是相关联的。
如果设置了密码则无法选择“关闭密码保护共享”。如果访问时没输入密码则会出现。
如果没有设置密码却选择“启用密码保护”则Guest账户则会被禁用。访问时会出现
3.3.2其他用户被禁用的
在访问共享文件夹的时候可以使用的用户不只是Guest,只要是有权限的账户都可以。 所以如果使用被禁用的账户也是不可访问共享文件夹的。
3.4用户没有权限访问
要查看哪个账户有权限访问文件夹可以右键文件夹\属性\安全选项卡,查看各个用户和组的所拥有的权限。也可以分别编辑每个用户或组的权限。
使用无权限用户访问时会出现
3.5本地安全策略禁用
本地安全策略有几个地方也影响了共享文件夹的访问。可按“win + r”或在开始菜单中输入secpol.msc打开本地安全策略,也可以直接在开始菜单中输入“本地安全策略”打开。
1.
如果把用户添加到“拒绝从网络访问这台计算机”并且使用该用户访问共享文件夹则可能出现以下错误:
2.
如果启用了以上“本地安全策略”项则可能会出现下列错误。
3.6网卡的“Microsoft网络的文件和打印机共享”未打开
遇到这个问题的概率比较低,但有时这里也会出现意想不到的错误。
对于共享文件夹端的主机打开“控制面板\网络和 Internet\网络连接”,右键网卡,选择“属性”。可以看到“网络”选项卡下面“Microsoft网络的文件和打印机共享”。把该选项左边的对勾先取消按确定,然后再次进入把对勾选上按确定即可。
对于访问共享文件夹端的主机也同样地操作“Microsoft网络客户端”。
每个网卡都有相同设置。所以这里的设置是相对于每个网卡而言的,即可以设置连接本主机该网卡的网络设备可以访问共享文件夹,而连接本主机其他网卡的网络设备不可以访问该主机的共享文件夹。这对于有多网卡的主机有更灵活的配置。
设置完后可能要重启网卡或者主机。
3.7系统使用了以前连接时缓存的账户访问
在第一次访问访问共享文件夹时需要提供用户名或者用户名和密码。在第一次访问成功后系统会自动记住访问该共享文件夹时使用的用户名和密码。在下一次访问共享文件夹时会自动使用该用户名和密码。在共享文件夹的主机更改设置时,比如更改用户的密码时。这个时候会出现没有权限访问的情况。如下图所示:
这个时候可以删除先前系统自动保存的用户名和密码。可以使用net use命令删除。用法为先使用net use 命令查看当前的网络连接。然后使用net use \ComputerName /delete命令删除自动保存的用户名和密码即可。这里的ComputerName必须是主机名,不能是IP地址。如果不行可以重启一下访问共享文件夹端的主机网卡或主机。
也可直接使用net use命令设置访问某个主机使用的用户名和密码。使用方法为:net use \IP地址 密码 \user:用户名
4.额外知识
4.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 资源管理器”中“网络位置”一栏中查看媒体库。
5.文件共享连接
Windows 7 使用128位加密帮助保护文件共享连接。某些设备不支持128位加密,必须使用40或56位加密。
6.密码保护的共享
设置在网络主机访问本机共享文件夹时是否需要密码。
4.1查看访问共享文件夹的用户和主机名以及访问的文件
有时候我们会想查看有谁在访问我们的共享文件夹和访问哪些文件。这时候可以使用Windows系统自带的工具查看。按win + r 键输入compmgmt.msc或右键“我的电脑”,选择“管理”打开“计算机管理”控制台。
在“计算机管理\共享文件夹\会话”中可以看到是哪台主机使用哪个账户访问共享文件夹。
在“计算机管理\共享文件夹\打开文件”中可以看到查看了哪些文件。
4.2 访问共享文件夹的两种方法
访问共享文件夹有两种方法,第一种是直接在Windows资源管理器中的“网络”中查看。第二种是在Windows资源管理器中的地址栏中输入IP地址进行访问,如\\192.168.25.110
4.3 net use的使用
net use命令可以设置访问共享文件夹时使用的用户和密码。可以查看和断开当前已连接到的共享主机。
- 使用net use查看当前已连接到的共享主机。
- 使用net use \ComputerName /delete命令删除自动保存的用于该主机的用户名和密码。
- 使用net use \IP地址 密码 \user:用户名命令设置连接到某主机时要使用的用户名和密码。
- 使用“net use z: \WIN-I4BTR51SSDT\Users\paitouxi\Desktop\新建文件夹 123 /user:guest”命令添加一个网络命令,其中“z”为映射到本地的路径,即映射成功后在本地使用“z:\”即可访问该共享文件夹,“\WIN-I4BTR51SSDT\Users\paitouxi\Desktop\新建文件夹”为远程共享文件夹,“123”为密码,“guest”为用户名。可在“Windows 资源管理器”中的“网络位置”一栏中看到。
4.4 网卡属性解释
控制面板\网络和 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不存在,请创建它。 - 链路层拓扑发现响应程序
用于发现和定位网络中其他计算机和建立网络拓扑图。 - 链路层拓扑发现映射器 I/O 驱动程序
用于网络中其他计算机发现和定位自己所处位置和建立网络拓扑图。
即通过这两个程序可以知道局域网中的电脑,经过的交换机,路由器。
4.5 网络发现依赖的服务和防火墙端口以及设置方法
网络发现需要启动 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打开。点击左侧栏的“入站规则”或“出站规则”,在中间显示部分找到“网络发现”。可以看到有很多网络发现项,可以查看网络发现所使用的端口。