
干过几年系统运维或者负责过公司电脑管理的人基本都遇到过这种尴尬局面明明记得自己给某个文件夹开了共享结果过阵子别人反馈访问不了自己打开网络邻居一看发现列表里显示的东西和实际开放的共享根本对不上或者接手一台同事留下的旧电脑想清理掉无用的共享却不知道系统里到底开了哪些口子。标题里这句“查看电脑中所有的共享文件夹”看起来就是个不起眼的小操作但真正把这件事做透牵扯出来的是Windows共享机制里最容易被忽略的几个角落图形界面工具能看什么、命令行能看什么、隐藏共享为何总是“灯下黑”以及共享列表和实际权限之间存在的偏差。这篇文章打算把这些内容一次讲清楚。我会按四条路径走图形界面怎么查、命令行怎么查、如何识别特殊共享与隐藏共享、以及查完之后怎么判断哪些共享该留、哪些该关。这不仅是给网管看的任何需要通过局域网互相传文件的人都值得花十分钟摸清自己电脑上的共享家底。1. 你看到的共享往往不是全部事实很多人习惯打开“网络”或者“网上邻居”去查看共享文件夹但这个方法有一个天然缺陷它只显示当前网络发现能够找到的、并且对方允许广播出来的共享。换句话说网上邻居里看不到的共享不代表不存在。反过来网上邻居里能看到的条目也不一定等于那台电脑的全部家当。真正意义上的“所有共享文件夹”指的是系统里所有通过Server服务LanmanServer对外发布的文件共享资源不管它是否可见、是否隐藏、是否设置了访问密码。这些信息统一存放在注册表的Shares键值里由系统服务进行管理和发布。所以要完整查看共享文件夹本质上是在查询这个文件共享服务当前加载的所有条目。从用途上分Windows里的共享可以分为三大类一类是管理员手动创建的普通共享用于局域网访问另一类是系统自动创建的管理共享比如C$、ADMIN$、IPC$等默认只有管理员权限能访问还有一类是应用程序或服务创建的隐藏共享比如某些备份软件、打印服务、甚至恶意程序都可能创建带$后缀的共享。很多人在排查局域网访问异常时只关注了第一类结果忽视了后两类才是安全隐患的集中地。有了这个认知框架再去看各种查看方法思路就清晰了图形工具适合日常快查命令行适合精确控制和脚本化处理注册表则是最底层的事实来源。下面我把每种方法的原理、操作和适用场景逐一拆开来说方便你按自己的需求对号入座。1.1 本机共享与远程共享查看逻辑完全不同先说清楚一个容易混淆的点查看“电脑中所有的共享文件夹”如果指的是本机那方法是查看本机的共享服务配置如果指的是局域网里的某台电脑那方法和权限就完全不同了不仅对方要开启文件共享你还要有相应的访问凭据。这篇文章主要聚焦本机共享的完整查看因为这是绝大多数人实际遇到的需求。至于远程查看共享Windows其实也提供了办法——在运行框输入\\对方IP就能看到对方所有非隐藏的共享但如果想看包含隐藏共享在内的完整列表就需要用专用工具或者通过WMI远程查询前提是对方开启了远程管理权限这个门槛日常情况下并不容易满足。所以下面的操作都是在本机执行的别拿着去查别人的电脑权限不够体验会很差。2. 图形界面查看两种工具一个快一个全Windows的图形界面里查看共享入口比较多但真正值得记住的就两个一个是专门管理共享的控制台一个是集成了共享管理的计算机管理。两者各有侧重配合使用基本能覆盖大部分日常需求。2.1 共享文件夹管理单元最直观的查看方式在运行框里输入fsmgmt.msc回车打开的窗口就是专门负责共享资源管理的控制台。这个工具从上到下分成三个部分共享、会话、打开文件。“共享”这里列出了系统当前发布的所有共享条目注意它是把隐藏共享和普通共享一起列出来的不像资源管理器那样过滤掉隐藏项。每一行会显示共享名称、文件夹路径、类型、客户端连接数、描述等信息。双击任意条目还能看到更详细的共享权限和安全性选项卡可以直接修改允许访问的用户和权限级别。这个工具的优点是信息全、操作直观适合不熟悉命令行的人使用。但它的缺点也很明显列出的共享看起来很多却不会明确告诉你哪些是系统内置的管理共享哪些是你自己创建的哪些是有风险的隐藏共享。第一次打开的人往往会看懵甚至误删了系统必需的共享。所以在用这个工具查看时建议调出“查看”菜单里的“添加列”把“注释”和“类型”显示出来通过描述信息去判断共享的来源。2.2 计算机管理入口适合顺带查看会话和打开文件在运行框输入compmgmt.msc进入计算机管理在左侧树形菜单里找到“系统工具 共享文件夹 共享”看到的内容和fsmgmt.msc基本一致因为这个界面本来就调用了同一个管理组件。不同的是计算机管理里还集成了系统信息、事件查看器、本地用户和组等模块更方便从整体上排查问题。实际工作中我更推荐的路径是这样的先打开计算机管理看一眼“共享文件夹”里的“会话”和“打开文件”。这两个页面能告诉你此刻有哪些用户正连着你的共享、正在访问哪些文件。很多网管抱怨文件被占用删不掉就是没看“打开文件”这个页面里面有当前被占用的文件列表。排查共享问题时这三块信息要对照着看共享列表决定谁能访问会话列表决定谁正在访问打开文件列表决定谁占用了哪个具体文件。2.3 资源管理器中的网络路径存在感最低但不少人用还有一种查看方式很多人无意中用过在文件资源管理器地址栏直接输入\\localhost回车就能看到本机发布的所有非隐藏共享。这种方式胜在快捷不用记任何管理工具名称但它显式地隐藏掉了带$后缀的共享所以只适合快速确认一下当前有几个普通共享别把它当成完整列表。一旦要对共享做权限管理还是老老实实回到管理单元里去。3. 命令行查看几个命令各显神通图形界面适合点鼠标但要快速批量查看、或者想把这些信息做成监控脚本抓取出来命令行才是正路。Windows自带的几个命令各有特点有些甚至能直接输出成表格或文本文件方便二次处理。我会按使用频率从高到低来介绍。3.1 net share最经典信息精简但够用net share命令是老牌命令自Windows XP时代就有了现在的Windows 10/11上依然可用。直接在命令提示符里输入net share回车它会列出当前所有的共享资源包括隐藏共享。输出格式是列表式的共享名、资源路径、注释。这个命令最大的优点是简洁适合快速看一眼最大缺点是不显示共享权限也不显示当前连接数。它适合“我到底开了哪些共享”这种初步排查不适合“谁在访问我的共享”这种深入分析。如果你还想看某一个共享的详细信息配合net share 共享名即可比如net share C$能看到该共享的路径、注释和用户限制。有一点要注意net share的显示结果在某些旧版本Windows上可能不包含隐藏共享的完整信息如果你发现某个带$的共享不在这里显现可以用后面介绍的注册表方式兜底。不过就我这几年在Windows 10和Windows Server上的使用经验来看这个命令的显示是完整且可靠的。3.2 PowerShell的Get-SmbShare新一代主力信息结构化如果你愿意从命令提示符切到PowerShell,Get-SmbShare命令是现在最值得依赖的查看手段。它属于SMB模块专门用来管理SMB共享输出结果是结构化对象字段包括Name、Path、Description、ScopeName等比net share多了不少元数据。真正让它强大的地方在于你可以直接加参数过滤。比如想看所有隐藏共享就用Get-SmbShare -Special它会只列出系统特殊共享也就是那些带$的管理共享想看普通共享就用Get-SmbShare | Where-Object {$_.Special -eq $false}。用Get-SmbShare | Format-List *还能看到包括缓存模式、加密模式、同时连接数限制等高级属性这些都是net share完全做不到的。在Windows Server上做文件服务器运维时我几乎都是靠这个命令来审计共享列表的。比如定期执行一次把输出重定向到文本文件就能对比共享数量有没有异常变化。如果某天发现多了一个你从来没创建过的共享那基本可以判断系统被装了什么特殊服务或者更糟——安全上出了状况。3.3 WMIC与注册表接近底层事实源的两条路径更底层一点的查看方式是借助WMIC。在命令提示符里输入wmic share list brief它会从系统管理规范里读取当前共享列表输出格式带表头包含Name、Path、Description等字段。这个命令的特殊价值在于它在某些精简版Windows系统上也能工作不依赖PowerShell模块适合做兼容性要求高的脚本。比WMIC更底层的是直接查看注册表。共享配置保存在HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares键下用reg query命令读取reg query HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares这里面的每个子键对应一个共享名键值数据里包含共享路径和权限标志。这个方式不经过任何管理接口直接读取磁盘上的配置数据所以即使在Server服务启动异常、图形工具无法打开的情况下也能看到完整的共享配置。这是排查共享问题的最后手段也是最不受权限限制的兜底方案。不过要提醒的是注册表里看到的是“配置值”不等于“当前生效值”。如果服务重启后某个共享加载失败注册表里依然会有记录但实际客户端已经连不上了。所以判断共享是否真正生效还得靠net share或Get-SmbShare的实时输出来确认。4. 隐藏共享与特殊共享识别那些不显眼的条目很多人查完共享列表后会疑惑为什么列表里出现一堆带$符号的名称像C$、ADMIN$、IPC$有些甚至不知道是干嘛的。这里就需要专门展开讲一下。4.1 后缀$的含义与由来共享名末尾的$符号就是这个共享的隐藏标志。带$的共享不会在网络列表、资源管理器中显示别人只能通过输入完整路径\\电脑名\C$来访问。这是Windows的一项古老设计初衷是让系统预留的管理共享不干扰普通用户的浏览同时降低被随意扫描到的风险。但要注意隐藏不等于安全只要知道共享名任何有权限的用户依然可以直接访问。我自己在帮朋友排查电脑问题时经常发现有人把整个磁盘都设为共享然后问“为什么别人能看到我的所有文件”。这里其实分两种情况如果共享名像E或E盘这种不带$的会在网络邻居里直接暴露谁都能看到如果是E$这种隐藏共享普通用户浏览不到但内行可以通过路径访问。无论如何非系统盘出现共享哪怕是隐藏共享都要提高警惕。4.2 系统自动创建的管理共享系统默认会创建三个管理共享共享名对应路径作用C$C:\管理员远程访问系统盘ADMIN$C:\Windows远程管理时访问系统目录IPC$无实际路径命名管道通信用于远程管理这些管理共享默认只有管理员组的成员有权限访问而且普通用户可以通过net share或Get-SmbShare -Special直接看到它们的存在。很多人误以为C$这种共享是病毒创建的其实它只是系统内置的机制手动删除后下次重启或服务重启时还会自动回来。更合理的做法不是删掉它们而是通过防火墙规则限制445端口的暴露范围。4.3 第三方程和有可能创建的隐藏共享除了系统内置的还有一些软件会创建自己的隐藏共享。常见的是某些备份还原工具为了方便局域网备份会创建一个带$的共享一些打印管理软件也会创建共享来存放驱动还有一类是旧时代的遗留比如Windows 7时代某些摄像头工具创建过的共享现在系统里如果还残留类似的条目多半是软件卸载不干净留下的。识别方法很简单看到不了解的共享名先看路径指向哪里再查一下创建时间。如果路径指向某个已不存在的目录或者指向某个软件安装目录而那个软件你已经卸载了那这个共享就是残留物可以手动删除。对于指向系统目录之外的隐藏共享要特别留个心眼因为恶意程序利用共享做内网扩散的案例并不少见。4.4 判断哪些共享该保留哪些该关闭综合多年经验我判断共享去留的原则很简单手工创建的普通共享按需保留用不到的果断删系统管理共享不动它但要注意防火墙来历不明的隐藏共享一律查清楚来源查不清的优先禁用指向不存在的路径的共享直接删除这种基本是软件残留。清除残留共享最直接的方式是在管理员命令行下执行net share 共享名 /delete。比如net share oldshare /delete执行成功后会有提示。如果是PowerShell环境等效命令是Remove-SmbShare -Name oldshare。删除之前再次确认一下是否有用户正在使用否则会导致对方访问中断虽然一般不会损坏数据但会造成不好的体验。5. 查看共享列表之后权限、连接数与安全审计查到了完整的共享列表事情只做了一半。真正有价值的是基于这份列表做权限核查和状态判断。下面几个维度是实际管理中最常遇到的也是最容易出问题的地方。5.1 共享权限与NTFS权限双重门槛一个共享文件夹能不能被访问取决于两个权限的交集共享权限和NTFS权限。共享权限在文件夹属性的“共享”选项卡里设置控制的是通过网络访问时的权限NTFS权限在“安全”选项卡里设置控制的是本地和网络访问时的底线。最终生效的权限取两者中最严格的。这个规则听起来简单但实际操作中很多人踩坑以为只设置共享权限为“完全控制”就行结果NTFS权限还停留在默认的“读取”导致别人能打开文件却改不了或者反过来。查看某个共享的具体权限,可以在fsmgmt.msc中双击共享条目切到“共享权限”页签查看NTFS权限则需要到实际文件夹路径下的“安全”页签查看。把两者对照起来看才能得出这个共享的真实访问结果。我的习惯是能用NTFS权限解决的就不动共享权限共享权限统一保持默认的“Everyone完全控制”所有精细管控全部放在NTFS层面做。这样规则清晰排查方便。5.2 连接数限制与在线会话排查共享连接数限制是个容易被忽视的设置。在共享属性里可以设置“允许此数量用户访问此共享”Windows默认限制是20个并发连接不同版本略有差异。如果公司里超过20个人同时访问同一个共享后面的人就会看到“已达到连接数限制”的错误提示。查看当前连接数情况可以回到fsmgmt.msc里的“会话”页面这里能看到用户名、计算机名、连接数、打开的文件数。如果你发现一台电脑出现在会话列表里但它其实不该有权限访问就要立刻检查该用户的权限设置必要时把这个会话手动断开。命令行方式可以用net session查看会话列表但输出信息不如控制台丰富适合快查。5.3 四类常见安全隐患与自查建议根据我处理过的各种共享相关的问题下面这些安全隐患出现的频率最高整个磁盘被设为共享共享名还不带$相当于把整个盘暴露在局域网里任何能进局域网的人都能浏览到你所有文件这属于高危级别的配置。共享权限设置得过于宽松比如Everyone完全控制同时NTFS权限也给了Everyone完全控制基本等于不设防。使用了简单文件共享模式这个模式在Windows XP时代常见现在的一些家庭版系统上仍有导致无法精细设置用户权限。防火墙放行了445端口但没有限制来源IP使得共享服务暴露在整个网段甚至公网。这个尤其要留意如果路由器设置了端口映射内网共享服务暴露到公网的事件并不少见。自查建议很简单先用Get-SmbShare拉一份当前共享清单逐一确认每个共享的必要性实在不确定日常有没有人在用时可以看共享路径指向的文件夹最近修改时间如果一份共享超过三个月没人访问而我创建它的人已经离职了基本可以删。5.4 查看共享状态是否被第三方监控还有一个进阶场景有些安全软件或终端管理软件会在系统里自带共享列表监控但它们查看的不一定是LanmanServer的默认共享列表也可能包括通过其他服务创建的共享。如果你在常规列表里找不到某个共享但系统日志里又记录了这个共享的访问行为可以考虑用Sysinternals工具集中的共享枚举工具辅助排查。不过一般家用或小办公室环境不需要追到这个层面。掌握上面几节内容已经能覆盖绝大多数共享查看和排查需求了。6. 实操流程串讲一次完整的共享体检为了让你能照着做我把上面的内容整合成一次完整操作流程。整个过程大约五分钟不需要任何额外工具Windows 10/11和Windows Server 2016以上的系统都可以直接用。6.1 第一步管理员身份打开命令行环境按Win R输入powershell按住Ctrl Shift Enter以管理员身份启动。这里强调管理员权限是因为普通权限下某些共享相关命令会被拒绝执行比如删除共享、修改共享权限这类操作必须有管理员权限才能生效。启动后先跑一条命令看输出风格Get-SmbShare | Format-Table -AutoSize这条命令会以表格形式展示当前所有共享包括隐藏共享。注意看Name列里带$的条目。6.2 第二步对照特殊共享过滤出管理员创建的共享执行Get-SmbShare | Where-Object {$_.Special -eq $false}输出的就是非系统自动创建的共享也就是管理员或软件后来添加的。对这些条目逐个核对路径确认是否还需要使用。同一时间可以执行net share两条命令对比一下输出差异。net share的输出更朴素但能给你一个直观的整体印象。如果你发现Get-SmbShare里有条目而net share里没有大概率是服务状态或者权限导致的不同步重启Server服务后基本能恢复。6.3 第三步把结果导出留档管理员日常维护最有价值的习惯就是把共享列表导出留档。执行Get-SmbShare | Export-Csv -Path D:\share_backup.csv -NoTypeInformation导出的CSV文件可以用Excel打开方便平时核对。我习惯每周跑一次把结果存档。哪天真出了问题翻出几周前的记录一对比谁新增了共享、谁删了共享一目了然。对排查安全事件尤其有用。6.4 第四步检查当前会话与打开文件接着切回图形界面按Win R输入fsmgmt.msc打开共享文件夹管理单元依次点击“会话”和“打开文件”。这里能看到实时访问情况。如果会话列表里出现异常用户右键“关闭会话”即可强制断开。这个操作在共享被占用、文件无法删除时特别管用。这里多说一句“打开文件”页里看到的是当前正在被占用的文件列表如果某个文件显示被某某用户打开但你并不知道这个人是谁很可能是之前的连接没有断开也就是所谓的“残留会话”。这种情况下先关闭会话再重新建立连接往往会恢复正常。6.5 第五步处理不需要的共享对于确认为残留或不再使用的共享执行删除操作net share 共享名 /delete执行完之后再用Get-SmbShare确认一次确保列表干净了。特别提醒不要尝试删除C$和ADMIN$因为删了也没用系统会自动重建。对于IPC$它是远程管理的通信管道不把它当普通文件共享对待即可。7. 排错实录共享查看与访问的疑难杂症实际使用中总会碰到一些奇怪的情况下面是我亲历过或常见于各大技术社区的几类疑难问题整理出来供大家参考。7.1 明明有共享却看不到最常见的现象是客户端访问服务器时能看到共享列表为空或者找不到某个共享。排查路径一般是这样的在服务器上运行Get-SmbShare确认共享是否真实存在。检查共享名称是否带$如果带$客户端需要手动输入完整路径才能访问。检查客户端的凭据缓存有时候之前用某个账号访问过一次系统记住了这个凭据后续再访问时就不再弹出登录框而凭据对应的权限又不够导致看起来像是共享不存在。解决办法是在凭据管理器里删掉旧的凭据重新认证一次。检查防火墙的“文件和打印机共享”规则是否启用。Windows防火墙更新或系统版本升级后这条规则偶尔会被重置为关闭状态表现就是别人访问不到你的共享但你自己看共享列表一切正常。我遇到过不止一次用户说“共享明明开着但同事就是连不上”最后排查下来都是防火墙规则被还原。随手检查一下这个坑就能避开。7.2 有权限但无权限权限看似正常访问却报错另一种让人抓狂的情况是你确认自己把用户加入了共享权限的完全控制NTFS权限也给了修改但对方访问时依然提示“无权限”。这种情况最常见的原因是权限继承链的问题。比如NTFS权限的父文件夹禁止了子文件夹继承而你设置的权限没有被正确传递下去。解决办法是在文件夹的“安全”页签里点击“高级”检查权限继承设置必要时点击“启用继承”或手动添加针对子目录的权限项。另一种可能是该用户属于多个用户组其中某个组被设置了“拒绝”权限。Windows的拒绝策略优先于允许策略哪怕只有一个组里的拒绝项在限制他最终结果就是无法访问。排查这类问题时我习惯用whoami /groups让用户在自己机器上跑一下把他所属的所有组拉出来看一眼通常能迅速定位到问题源头。7.3 共享访问一堆报错网络发现与凭据的坑Windows 10/11的默认网络配置里“网络发现”和“文件和打印机共享”在专用网络下默认是开启的但很多人误把自己电脑的网络配置文件切成了公用网络导致这两项功能被系统自动关闭共享访问自然失败。检查路径是设置 网络和Internet 状态 更改连接属性确认网络配置文件是“专用网络”。还有一个容易忽略的点是账户凭据。如果客户端访问共享时使用的微软账号密码和本机登录的不一样需要到凭据管理器里手动添加Windows凭据。特别是跨域环境或者两台机器使用了不同的本地账号密码时这种报错非常频繁。在凭据管理器里添加一条\\服务器IP对应的用户名密码问题立刻解决。7.4 445端口确认法共享服务是否在监听共享服务本质上是监听445端口的TCP连接。排查共享问题到最后一步基本都要回到端口层面。在服务器上执行netstat -ano | findstr :445如果输出里有LISTENING字样说明Server服务正在正常监听。如果没有说明共享服务没有正常启动去服务管理器里确认“Server”服务和“Workstation”服务的状态设置为“自动”并启动。这一步虽然基础但能一次性排除掉很多低层的故障原因。7.5 排查小结形成自己的问题树做共享问题排查最忌讳没有章法地东点一下西点一下。我的建议是按照这个顺序来共享是否存在Get-SmbShare→ 服务是否监听netstat→ 防火墙是否放行防火墙规则→ 权限是否到位共享权限与NTFS权限→ 客户端凭据是否有效凭据管理器。按这个顺序查百分之九十以上的共享问题都能在你没打开第三层菜单之前就定位清楚。8. 经验收尾把“查看共享”变成常规习惯文章写到这儿核心内容基本讲完了。最后说几点我个人在实际操作中的体会。第一查看共享文件夹这件事不要等到出问题了才去看。共享列表属于系统状态信息平时几乎不会有人主动关注但它恰恰是安全问题最隐蔽的展示窗口。我见过太多机器上了内网共享列表里躺着一堆几年前为了装软件而创建的共享创建者自己都忘了这回事。定期拉一遍共享列表其实花不了多少时间却能极大减少“忘关共享导致资料泄露”这种低级事故。第二命令行的价值远比想象中大。Get-SmbShare配合导出CSV就能把原本依赖记忆和肉眼的事变成可记录、可追溯的行为。哪怕你现在只需要在一台电脑上查看共享也值得把这条命令记下来因为下次你可能需要一次性筛查三台、五台、甚至一个机房的机器。那个时候会命令行的优势就彻底体现出来了。第三隐藏共享这事不用过度恐慌。看到C$不需要紧张这是Windows的正常机制但看到来历不明的自定义隐藏共享一定要查清楚。区分这两者的办法很简单系统管理共享集中在系统盘和系统目录指向C:\Windows这些固定位置异常隐藏共享往往指向用户目录、临时目录、软件目录甚至直接指向整个其他盘。看到后者就该提高警觉了。如果还要给一个实用建议那就是把这篇文章里的命令存成一段脚本放在手边。哪天需要排查共享问题直接跑一遍。上面这些操作我用了很多年稳不稳固我自己心里有数。你的电脑上到底开了哪些共享现在就去查一下吧。