首页/系统/Windows 运维速查/场景:共享“能读不能写”排查

场景:共享“能读不能写”排查

能读不能写=写权限在某层被卡:检查共享权限是否只读档、NTFS 是否缺写入/删除子项、以及只读属性与配额。

Windows 运维速查系统更新于 2026-10-13

能读不能写排查是什么

共享目录能打开、能看文件,就是保存不了——说明读权限在某几层都通过了,写权限被其中某一层拦住。Windows 的共享访问要同时满足共享权限与 NTFS 权限,两者取交集,任何一层缺写就写不进去。除此之外还有文件只读属性、磁盘配额、文件被其他进程锁定这些非权限因素,排查要按固定顺序走,避免在错误的方向上反复改 ACL。

基本信息

判定原理共享权限与 NTFS 权限取交集,任一为只读即不可写
检查顺序共享权限 → NTFS 权限 → 只读属性 → 磁盘配额 → 文件占用
常用工具Get-SmbShareAccess、icacls、attrib、quota
关键点能新建但改不了,多为缺修改或删除权限
验证方式用同一账户在命令行实际写一个测试文件

排查步骤

  • 先复现:用出问题的同一账户登录,确认是保存失败还是新建失败
  • 看共享权限:Get-SmbShareAccess 确认该账户拿到的是更改还是只读
  • 看 NTFS 权限:icacls 检查写入与修改是否被显式拒绝或缺失
  • 查文件属性:attrib 看目标文件是否带只读位
  • 查配额:磁盘或目录配额用满也会直接报写入失败
  • 排除占用:Office 临时文件需要删除权限,被锁定的文件同样写不进

常用示例

常用示例
Get-SmbShareAccess -Name Share01                                  # 先看共享层权限是读还是更改
icacls D:\Share01                                                 # 再看 NTFS 层实际 ACL
icacls D:\Share01 /grant "CORP\ops01:(OI)(CI)M"                   # 缺写权限时补修改权限并向下继承
attrib D:\Share01\*.* | findstr /i "R "                          # 找只读属性挡住的文件
fsutil quota query D:                                              # 查卷配额是否用满
'ok' | Out-File \\server\Share01\wtest.txt                         # 用自己的账户实测写入

现象与最可能原因

现象最可能的位置验证方法
能打开目录但新建失败共享权限为只读Get-SmbShareAccess 看等级
能新建但保存旧文件失败NTFS 缺修改或删除权限icacls 看目标文件 ACL
只有某几个文件不能改文件带只读属性或被占用attrib 与句柄检查
多人同时写才失败配额或临时文件冲突fsutil quota 与错误码
PowerShell 写可以、Office 不行缺删除权限导致临时文件无法落盘给修改权限而非只给写入
Office 保存文档时会先在同目录写一个 ~$ 开头的临时文件再改名覆盖,所以“修改”权限要包含删除子项的能力;只给写入权限在很多场景下依然保存失败。
排查时优先用与用户完全相同的账户做测试写入,用管理员账户测试会把权限问题掩盖掉,得到“我这边没问题”的错误结论。

易错点

  • 只改了共享权限没动 NTFS,或反之,交集里仍是只读,白折腾一轮
  • 给显式拒绝条目(Deny)覆盖了原本的允许,Deny 优先级最高,出现后允许再多也不生效
  • 把文件被占用、只读属性、配额用满一律当成权限问题处理,改坏了 ACL 还找不到原因
  • 在管理员会话里测试写入成功就宣布已修好,用户复测仍然失败

数据来源与参考

  • Microsoft Learn:共享文件夹权限
  • Microsoft Learn:NTFS 写权限

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌