Powershell - 检查文件是否正在使用中

时间:2010-08-26 15:41:49

标签: scripting powershell

是否有Powershell命令来检查另一个用户是否正在使用某个文件?如果没有,编写一个可以编写脚本的内容是什么?

3 个答案:

答案 0 :(得分:4)

我没有内置命令,但是您可以使用多种工具:

net file

来自Technet上的SysInternalspsfilehandle):

psfile.exe # lists and allows you to close remotely opened files

handle.exe | select-string ': File'

答案 1 :(得分:4)

您永远无法判断文件当前是否仅被用于最近使用的文件。原因是脚本返回文件的那一刻可以被之前使用它的程序关闭。像这样编写脚本只会导致不稳定的行为。

更好的方法是,如果文件未被使用,只需执行脚本要执行的操作,并捕获由于使用冲突导致的异常。最终结果将是一个更简单,更可靠的计划。

答案 2 :(得分:1)

我发现使用SysInternals“ListDlls.exe”非常简单方便:

c:\SysInternals\Listdlls.exe -d AssemblyInUse.dll

ListDLLs v3.1 - List loaded DLLs
Copyright (C) 1997-2011 Mark Russinovich
Sysinternals - www.sysinternals.com

----------------------------------------------------------------------------
powershell.exe pid: 7296
Command line: "C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe"

我希望有所帮助!