是否有PowerShell命令可以检查文件是否被其他用户使用?如果没有,编写一个能够检查的脚本需要什么条件?
是否有PowerShell命令可以检查文件是否被其他用户使用?如果没有,编写一个能够检查的脚本需要什么条件?
你永远无法确定一个文件是否正在被使用,只能知道它最近被使用过。原因是脚本返回的瞬间,之前使用该文件的程序可能已经关闭了该文件。编写这样的脚本只会导致不稳定的行为。
更好的方法是,假设文件未被使用并执行脚本要做的事情,并捕获由于使用冲突而导致的异常。最终结果将是一个更简单和可靠的程序。
我不知道是否存在内置命令,但是有几个工具可以用于此:
net file
来自Technet上的SysInternals(psfile和handle):
psfile.exe # lists and allows you to close remotely opened files
handle.exe | select-string ': File'
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"
我希望这有所帮助!