【发布时间】:2013-08-09 05:15:06
【问题描述】:
是否有 Powershell 命令来检查文件是否正在被其他用户使用?如果没有,写一个可以的脚本需要什么?
【问题讨论】:
标签: scripting powershell
是否有 Powershell 命令来检查文件是否正在被其他用户使用?如果没有,写一个可以的脚本需要什么?
【问题讨论】:
标签: scripting powershell
您永远无法判断文件当前是否正在被使用,而只是它最近被使用过。原因是脚本返回文件的那一刻可能会被以前使用它的任何程序关闭。像这样编写脚本只会导致不稳定的行为。
更好的方法是在文件未使用时执行脚本将要执行的任何操作,并捕获因使用冲突导致的异常。最终结果将是一个更简单、更可靠的程序。
【讨论】:
据我所知,没有内置命令,但您可以使用多种工具:
net file
来自 Technet 上的 SysInternals(psfile 和 handle):
psfile.exe # lists and allows you to close remotely opened files
handle.exe | select-string ': File'
【讨论】:
我发现使用 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"
希望对你有帮助!
【讨论】: