Windows-Server-2008-R2

net 文件與 openfiles 的 ID

  • February 27, 2019

我正在編寫一個 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 不一樣……天啊,不,openfilesID 被截斷了!!

所以很明顯,對於腳本本身,我目前正在尋找net files,獲取 ID,查詢每個 ID,以便獲得完整路徑,然後我可以重用腳本的其餘部分。

但是為了我的理智:這是一個錯誤嗎?一個特徵?Windows Server 2008 R2 不是新的,我找不到任何參考,更不用說修復了!

所以三年後,我找到了答案和解決方案,或者解決方法:這是預設輸出的錯誤openfiles,即table. 如果您指定選項/FO CSV/FO List,則 ID 是完整的。

引用自:https://serverfault.com/questions/757347