最新消息: 预先成其事必先利其器

共享打印机和共享文件夹被拒绝连接的排查顺序

换了路由器、重连一次 Wi-Fi 或者重装系统之后,共享打印机突然打不开、别人的电脑也访问不了你共享的文件夹,八成不是权限坏了,而是这台机器把当前网络认成了公用。按下面的顺序一层层往里查,比直接改组策略省事。

第一层:当前网络被归为哪一类

Windows 对公用网络默认关闭网络发现和文件共享,也不允许本机被别人搜到。归类发生变化常见于重连无线、改了 SSID 或者装了新的安全软件之后。

Get-NetConnectionProfile | Select-Object Name, NetworkCategory
Get-Service FDResPub, SSDPSRV, Spooler | Select-Object Name, Status, StartType

第一条里 NetworkCategory 显示 Public 就是根因,在 设置 > 网络和 Internet > 对应网络的属性 里改成专用即可。第二条看三个服务:功能发现资源发布和 SSDP 发现负责让本机可被发现,Print Spooler 不在运行则共享打印机一定连不上。

第二层:共享开关和两层权限

网络发现和文件共享这两个开关在控制面板的 网络和共享中心 > 高级共享设置 里,专用与公用两栏要分开确认。共享文件夹还要看两层权限:共享权限和 NTFS 安全权限,只放开一层就会报没有权限。正确的做法是把需要访问的账户同时加进这两处,而不是给 Everyone 全部权限。

第三层:本机到底开了哪些共享

Get-SmbShare
Get-SmbConnection
Get-NetTCPConnection -State Listen -LocalPort 445

第一条列出共享名和许可范围,重点看隐藏的管理共享和整盘共享有没有对外敞开,这类入口应当限制到具体账户。第二条只在已经发起过连接时才有内容,能看出对方是用哪个身份连进来的。第三条没输出说明服务端被禁用或者被拦住了。

第四层:来宾访问被默认禁止

新版本 Windows 默认禁止不安全的来宾访问,用旧 NAS 或者不设密码的共享时会直接被拒。用 Get-SmbClientConfiguration 看 EnableInsecureGuestLogons,为 False 时正确的修法是在共享端建一个带密码的账户,而不是把客户端这一项打开。已经有账户仍然被拒的,去凭据管理器里看存的是不是旧密码。

打印机特有的一类拒绝

共享打印机被拒时除了上面四层,还要看后台处理程序的远程限制。安装过打印相关安全更新之后,通过命名管道连接远程打印服务器的认证方式会变严,报 0x0000011b 或者 0x00000709 这类代码时,先确认主机和客户端都已经更新到同一批补丁,再看主机上是否限制了远程驱动安装。这类问题的正确解法是补上更新,而不是把安全限制关回去。

整条链上值得长期保留的改动只有一项:把家庭网络设为专用。其余都应当按最小权限去补,不要为了方便把共享端改成人人可写。

与本文相关的文章