当前位置: 首页 > news >正文

PsTools 学习笔记(7.10):PsFile——远程“谁在占用这个文件/共享”的取证与解占用

PsTools 学习笔记(7.10):PsFile——远程“谁在占用这个文件/共享”的取证与解占用

  • PsTools 学习笔记(7.10):PsFile——远程“谁在占用这个文件/共享”的取证与解占用
    • 一、PsFile 能做什么
    • 二、快速上手(最常用 3 招)
      • 1)查看本机被远程打开的文件
      • 2)查看某台文件服务器(或任何 SMB 共享服务器)
      • 3)关闭指定 ID(**释放占用**)
    • 三、输出怎么读?定位“元凶”的两条线
    • 四、脚本化场景与范式
      • 场景 A:**无法删除目录,定位并释放被占用文件**
      • 场景 B:**批量关闭某个共享下的所有占用(风险:会踢掉他人会话)**
      • 场景 C:**按用户强制释放其“所有占用”**
    • 五、常见报错与排障
    • 六、与其他 Sysinternals 工具协同
    • 七、最佳实践清单
    • 八、常用命令速查
      • 小结

PsTools 学习笔记(7.10):PsFile——远程“谁在占用这个文件/共享”的取证与解占用

“这个 Excel 一直提示‘文件正在使用’,谁在占用?”
“共享目录删不掉,说‘文件正由另一程序使用’——到底哪台机器在开?”
——这些典型运维难题,用 PsFile 三步就能搞定:枚举 → 定位 → 释放


一、PsFile 能做什么

  • 枚举:列出被远程 SMB 客户端打开的文件/管道/打印作业等资源(本机或远程服务器)。
  • 溯源:看到占用者(会话/用户)被打开的路径,辅助审计与追责。
  • 解占用:按 ID 精确关闭 某个文件句柄;必要时可批量关闭

对标 GUI:计算机管理 → 系统工具 → 共享文件夹 → 打开的文件
优势:脚本化、可批量、可远程


二、快速上手(最常用 3 招)

1)查看本机被远程打开的文件

psfile

常见输出信息包含:ID / 用户 / 打开的文件路径 / 访问类型(读/写)/ 锁定数(不同版本列名略有差异)。

2)查看某台文件服务器(或任何 SMB 共享服务器)

psfile \\filesrv
:: 或带凭据
psfile \\filesrv -u DOMAIN\Admin -p ********

3)关闭指定 ID(释放占用

:: 先 psfile 找到目标条目的 ID(例:128)
psfile \\filesrv 128 -c
  • 一般需要在目标服务器上具备管理员权限。
  • 关闭的是远程会话对该文件的打开句柄,不会删除文件本身。

三、输出怎么读?定位“元凶”的两条线

  1. 按文件线索反查“谁开着”

    • findstr 快速过滤:

      psfile \\filesrv | findstr /I "\\filesrv\share\project.docx"
      
    • 拿到 IDUser/Session,再决定是否 -c 关闭。

  2. 按用户/终端线索反查“打开了什么”

    • 某个帐号一直“忘关文件”?直接按用户过滤:

      psfile \\filesrv | findstr /I "zhangsan"
      
    • 批量列出该用户所有占用,评估风险后再处理。


四、脚本化场景与范式

场景 A:无法删除目录,定位并释放被占用文件

:: 1) 定位具体占用条目(文件名可能包含空格,findstr 模糊匹配)
psfile \\filesrv | findstr /I "\\filesrv\share\Design":: 2) 假设返回多条,人工确认 ID 后逐条关闭
psfile \\filesrv 124 -c
psfile \\filesrv 128 -c:: 3) 再执行删除
robocopy \\filesrv\share\Design NUL /PURGE /MIR

场景 B:批量关闭某个共享下的所有占用(风险:会踢掉他人会话)

for /f "tokens=1" %i in ('psfile \\filesrv ^| findstr /I "\\filesrv\share\Public"') do @(rem 简化演示:假设 tokens=1 能解析出 ID(不同版本列宽可能不同,生产建议先 parse)psfile \\filesrv %i -c
)

风险提示:请先备份输出人工确认,避免误关正在写入的生产文件。

场景 C:按用户强制释放其“所有占用”

for /f "tokens=1,*" %i in ('psfile \\filesrv ^| findstr /I "zhangsan"') do @psfile \\filesrv %i -c

建议先仅打印 echo psfile \\filesrv %i -c 进行“干跑(dry-run)”,确认 ID 解析无误后再执行。


五、常见报错与排障

现象/报错可能原因处理建议
Access is denied权限不足目标服务器上用管理员执行;或加 -u/-p 指定域管或本地管理员
The network path was not found名称解析/防火墙/SMB 被禁ping/nslookup 检查解析,开放 445/TCP;确认“服务器/工作站”服务正常
看不到本机本地进程占用PsFile 只显示远程 SMB 打开的文件本地进程句柄请用 Handle.exeProcess ExplorerProcMon
关闭后仍提示占用应用层维护了二次锁/缓存终止客户端进程或断开其 SMB 会话;必要时踢会话(计算机管理→共享文件夹→会话)

六、与其他 Sysinternals 工具协同

  • Handle.exe:定位本地进程的文件/句柄(handle -a file.txt / handle -p pid)。
  • Process Explorer:在进程属性的 Handles 页签里搜索路径,找哪个进程占有。
  • ProcMon:追踪实时 I/O,分析谁在持续访问导致无法删除/移动。
  • PsExec:远程执行上面这几种工具,做“跨机诊断闭环”。

组合拳示例:psfile 定位 → psexec \\client handle.exe 确认客户端谁持有 → 与用户沟通/强制结束。


七、最佳实践清单

  • 先查再关:任何 -c 操作前,都先保存 psfile 原始输出做审计。
  • 最小化影响面:优先关闭单个 ID,不要一上来就批量全关。
  • 善用过滤findstr / Select-String(PowerShell)快速定位。
  • 权限模型清晰:在资源服务器侧执行,使用管理员上下文
  • 自动化要容错:输出列宽随版本变化,脚本解析 ID 时请做健壮匹配/校验。

八、常用命令速查

:: 列出本机被远程打开的文件
psfile:: 查看指定服务器的远程打开文件(带凭据)
psfile \\filesrv -u DOMAIN\Admin -p ********:: 关闭某个占用(按 ID)
psfile \\filesrv 128 -c:: 只看某共享下的占用(模糊筛)
psfile \\filesrv | findstr /I "\\filesrv\share\Finance":: 批量关闭(执行前先 dry-run)
for /f "tokens=1" %i in ('psfile \\filesrv ^| findstr /I "Finance"') do @echo psfile \\filesrv %i -c

小结

PsFile 是处理 SMB 共享“文件被占用”问题的首选命令行工具

  • 快速列出“谁”在“哪里”“怎么”打开;
  • 支持按 ID 精准关闭占用;
  • 与 Handle/ProcMon/Process Explorer 联动,形成端到端取证闭环。

下一篇(7.11)PsGetSid——从安全标识角度理解账户/对象的“真实身份”,以及跨域/跨林排障的实战用法。

http://www.dtcms.com/a/562381.html

相关文章:

  • 怎样查找网站域名归属地推是什么意思
  • 做网站需要什么软件教程西安做网站公司8
  • 电商网站平台哪个网站做ppt好
  • 代码笔记:Dark Experience for General Continual Learning a Strong, Simple Baseline
  • 简约网站建设公司郑州网站建设智巢
  • 网站建设张景鹏做广告推广哪家好
  • windows安装oracle19c
  • 辉县市工程建设网站建设做一款微信小程序多少钱
  • Java 学习35:Random 类
  • 如何找外贸网站建设公司医院网站建设模板下载
  • 数据结构---平衡二叉树的实现
  • 网站维护描述wordpress虚拟币插件
  • 哈什么网一个网站做ppt搭建网站的空间哪里买
  • 做网站美工需要会什么软件怎么看一个网站什么程序做的
  • 局域网内部如何做网站中企动力大连公司咋样
  • 网站建设制作做网站优化推广公司net网站建设教程
  • [yolov11改进系列]基于yolov11使用fasternet_t0替换backbone用于轻量化网络的python源码+训练源码
  • 【具身智能】ChatVLA 系列:让 VLA 同时具备「多模态理解对话」与「动作执行」能力
  • 手机网站源码东莞常平房价2023最新楼盘消息
  • 网站产品的详情页怎么做wordpress密码原理
  • 制作自己的网站需要什么软件好软件开发有哪些岗位
  • 自己怎么做新闻开头视频网站自己建设网站的费用
  • 【代码审计】OFCMS-V1.1.2 三处安全问题分析
  • 外贸网站如何建站wordpress检查全站链接
  • Java基础——常用API5
  • 网站开发的进度安排电子商务网站开发目的和意义
  • 网站建设和赚钱方法网站后台编辑框无法显示
  • 什么网站可以找人做系统网站建设工作描述
  • 【大模型实战笔记 5】基于Streamlit的多模态AI聊天机器人应用开发实战
  • 彩票网站开发需要多少钱如何做网站免费教程