我正在做一个 PowerShell 脚本,以便更快地关闭大型 Windows Server 2008 R2 文件服务器上的锁定文件(此时打开了 2500 多个文件,高峰时间就像 3-4 小时前),我会在net files
或之间进行选择openfiles
。所以我选择了openfiles
更新的版本,它可以提供文件的完整路径(net files
也可以这样做,但你必须查询每个 ID)。
我遇到了问题:某些文件无法关闭。我检查了网络文件,一切正常......所以我开始仔细观察,这是我发现的(摘录):
C:\> net files
ID Path User name # Locks
-------------------------------------------------------------------------------
3221368833 G:\Users\... SomeUser 3
2550215683 G:\Users\... SomeUser 3
3422797829 G:\Users\... SomeUser 0
805310474 F:\Recursos\... SomeUser 3
335585292 G:\Users\SomeUser\My Documents SomeUser 0
4026636306 G:\Users\SomeUser\Desktop SomeUser 0
2684396568 G:\Users\... SomeUser 0
2952839192 G:\Users\...\EXCEL\SomeFolder2016 SomeUser 0
4160993304 G:\Users\... SomeUser 0
1610613364 F:\Recursos\Suministros SomeUser 0
The command completed successfully.
C:\> openfiles /query /v
Files opened remotely via local share points:
---------------------------------------------
Hostname ID Accessed By Type #Locks Open Mode Open File (Path\executable)
=============== ======== ==================== ========== ========== =============== ============================================================================
MyServer 32213688 SomeUser Windows 3 Write + Read G:\Users\SomeUser\My Documents\[SomePath].XLS
MyServer 25502156 SomeUser Windows 3 Write + Read G:\Users\SomeUser\My Documents\[SomePath].xls
MyServer 34227978 SomeUser Windows 0 Write + Read G:\Users\SomeUser\My Documents\[SomePath].xls
MyServer 80531047 SomeUser Windows 3 Write + Read F:\Recursos\Suministros\[SomePath].xls
MyServer 33558529 SomeUser Windows 0 Read G:\Users\SomeUser\My Documents
MyServer 40266363 SomeUser Windows 0 Read G:\Users\SomeUser\Desktop
MyServer 26843965 SomeUser Windows 0 Write + Read G:\Users\SomeUser\My Documents\[SomePath].XLS
MyServer 29528391 SomeUser Windows 0 Read G:\Users\SomeUser\My Documents\EXCEL\SomeFolder2016
MyServer 41609933 SomeUser Windows 0 Write + Read G:\Users\SomeUser\My Documents\[SomePath].XLS
MyServer 16106133 SomeUser Windows 0 Read F:\Recursos\Suministros
等等,ID 不一样……天啊,不,openfiles
ID 被截断了!!
所以很明显,对于脚本本身,我现在要net files
获取 ID,查询每个 ID,以便获得完整路径,然后我可以重用脚本的其余部分。
但是为了我的理智:这是一个错误吗?一个特点?Windows Server 2008 R2 不是新的,我找不到任何参考,更不用说修复了!
所以三年后,我找到了答案和解决方案,或者解决方法:这是默认输出的错误
openfiles
,即table
. 如果您指定选项/FO CSV
或/FO List
,则 ID 是完整的。