自动化检查Windows文件共享权限需分三步:先用net use或dir验证SMB连接状态,再用AccessChk分层检查共享与NTFS权限,最后通过PowerShell执行Test-Path、New-Item等操作模拟真实读写行为。
要自动化检查 windows 文件共享的访问权限,关键不是“一键扫描全部”,而是聚焦目标路径、分层验证、用可靠工具输出可读结果。核心逻辑是:先确认网络连接状态,再测共享层权限,最后验证 ntfs 层实际操作能力。整个过程可脚本化,不依赖图形界面。
确认目标共享是否已建立有效连接
Windows 不会自动记住所有共享登录,尤其使用不同凭据时。不能只看“网上邻居”是否显示,而要看系统当前是否持有该共享的有效会话。
- 在命令行中运行:net use,查看输出里是否有类似 \80.9.2.240sharename 的映射项,且状态为“OK”
- 若无映射,尝试直接访问根路径:dir \80.9.2.240。成功列出共享列表说明基础 SMB 连通且有匿名/默认凭据访问权;若报“找不到网络路径”或“拒绝访问”,问题出在网络服务、防火墙或凭据环节
- 注意:IP 地址直连(如 \80.9.2.240)绕过 NetBIOS 解析,更稳定,但要求目标主机已启用 SMB 服务且未屏蔽 445 端口
用 AccessChk 快速检查共享与文件系统权限
AccessChk 是微软官方轻量级审计工具,无需安装,适合集成进批处理或 PowerShell 脚本,能同时覆盖共享 ACL 和 NTFS 权限。
直播话术巡检系统(Windows版) — 实时语音转写、关键词检测、场景自动切换、告警推送、大屏可视化。支持 Windows VB-Cable 虚拟声卡音频采集,阿里云 ASR 实时识别。一键启动脚本,自动安装环境。
- 检查某用户对共享路径的完整访问能力:accesschk.exe -d -s -q "DOMAINuser" "\80.9.2.240sharename"(-d 查目录,-s 递归子项,-q 静默模式输出关键权限)
- 仅检查共享层权限(不深入文件系统):accesschk.exe -s "\80.9.2.240sharename",它会显示谁有 Read、Change 或 Full Control
- 若需批量检查多个路径,可将路径写入文本,用 for /f 循环调用,输出重定向到日志便于比对
模拟真实访问行为做最终验证
权限配置正确 ≠ 实际可用。很多问题出现在“能列目录但不能读文件”或“能读不能写”,必须用最小动作验证。
- 用 PowerShell 执行:Test-Path "\80.9.2.240sharename est.txt" 检查路径可达性
- 尝试创建临时文件测试写权限:New-Item "\80.9.2.240sharename emp_check.tmp" -ItemType File -Force,成功则返回对象,失败则抛异常
- 读取一个已知小文件内容:(Get-Content "\80.9.2.240sharename eadme.txt" -TotalCount 1) -ne $null,避免因大文件阻塞
整合成可复用的检查脚本思路
把上述步骤串成一个 PowerShell 脚本,输入目标路径和可选用户名,自动完成连接检测 → 权限查询 → 读写试探,并按阶段输出状态(✅ / ⚠️ / ❌)。
- 开头先校验 SMB 服务是否就绪:Get-Service LanmanWorkstation | Where-Object Status -eq 'Running'
- 用 Get-SmbConnection 获取当前所有 SMB 连接,过滤目标 IP,判断是否活跃
- 权限部分优先调用 AccessChk;若未部署,降级使用 icacls 查 NTFS 权限,配合 net share 查共享设置
- 所有操作加 try/catch,捕获具体错误码(如 5=拒绝访问,67=找不到网络名),比泛泛的“失败”更有诊断价值

















