net files 与 openfiles ID

net files 与 openfiles ID

我正在编写一个 PowerShell 脚本,以便更快地关闭大型 Windows Server 2008 R2 文件服务器上的锁定文件(此时打开了 2500 多个文件,高峰时段是 3-4 小时前),并且我必须在 或 之间进行选择net filesopenfiles因此我选择了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 不同......哎呀,openfilesID 被截断了!!

因此显然对于脚本本身来说,我暂时要net files获取 ID,查询每个 ID 以便获得完整路径,然后从那里我可以重用脚本的其余部分。

但为了我的理智:这是一个错误吗?一个功能?Windows Server 2008 R2 并不新,我找不到任何关于它的参考资料,更不用说谈论修补程序了!

答案1

所以三年后,我找到了答案和解决方案,或者说变通方法:这是 的默认输出的一个错误openfiles,即table。如果您指定选项/FO CSV/FO List,则 ID 是完整的。

相关内容