Filesystems

Windows 伺服器上的文件鎖定

  • May 14, 2015

我在伺服器上儲存了一個共享的 excel 文件,該文件不斷導致“此文件被“另一個使用者”鎖定。您想以只讀方式打開嗎?”。這是在 Windows 2003 R2 伺服器上,並且已應用所有相關的更新檔和更新。大多數訪問它的使用者都在使用 Microsoft Office 2010。我已經查看了相關的更新檔,但這並沒有幫助。這是伺服器上的一些資訊

  1. Microsoft Windows Server 2003 R2 - 帶有 Service Pack 2 的企業版(從長遠來看,這些將被虛擬化並更新到 Windows Server 2008/12)
  2. 英特爾(R) 至強(R) CPU E3-1270
  3. 自動更新 - 每天中午 12 點(伺服器可能需要重新啟動才能應用)

在伺服器管理器中,如果我查看“打開文件”和會話,我無法查看該文件是否已打開,這讓我相信這是客戶端 PC 或安全性的問題。我正在嘗試使用命令行工具來檢查打開的文件。

我的第一個問題是關於openfiles.exe。我能夠像這樣成功執行命令:

openfiles.exe /query /s thissvr /u domain\me /p password /fo csv >>C:\OpenFilesSvr1.csv

我執行的命令比列出的要多一點,但基本上我能夠提取 CSV,格式化為表格並辨識文件。在應用相關修復之前,我剛剛編譯了 BAT 供使用者執行以辨識其中的使用者。這不是最優的。有沒有一種方法可以在不斷開連接的情況下更好地定位文件?

我現在還注意到,使用者螢幕上的彈出視窗表明一個使用者已鎖定文件,但是伺服器和 openfiles.exe 表明另一個使用者。我看到很多論壇都有將文件保存為備用名稱然後覆蓋、禁用資源管理器預覽等選項的選項,但這無濟於事。一個微軟部落格我可以看到他們的解析度如下:

注:由於 Microsoft Windows 有多個版本,因此您的電腦上的以下步驟可能會有所不同。如果是,請參閱您的產品文件以完成這些步驟。退出所有 Word 實例。這樣做,請按照下列步驟操作: 保存您的所有工作,然後退出所有程序。按 CTRL+ALT+DELETE 打開“Windows 安全”對話框。點擊任務管理器,然後點擊程序選項卡。點擊 Winword.exe,然後點擊結束程序。在任務管理器警告對話框中,點擊是。

如果您收到一條消息,指出程序沒有響應,請點擊立即結束。對每次出現的 Winword.exe 重複步驟 d 和 e。在文件菜單上,點擊退出任務管理器。啟動 Windows 資源管理器,然後瀏覽到包含您在收到錯誤消息時嘗試打開的文件文件的文件夾。刪除所有者文件。

所有者文件與您嘗試打開的文件位於同一文件夾中。所有者文件名使用以下約定:它以波浪號 (~) 開頭,後跟美元符號 ( $ ), followed by the remainder of the document file name. The file name extension is .doc. For example, the owner file for Document.doc is named ~ $ cument.doc。啟動 Word。如果 Word 詢問您是否要載入對全域模板或普通模板所做的更改,請點擊否。打開您的文件。

我不認為這是一個正確的修復,因為它不能幫助使用者。由於這個文件伺服器的重要性和它所承載的角色,我不想過多地玩弄它,所以到目前為止,我已經嘗試了盡可能多的工作,但沒有運氣。我會感謝您之前遇到的任何修復,因為這現在阻礙了業務。

關於這個問題的更新

我現在註意到這發生在我們執行的多台伺服器上。我首先想到的是遠端這些伺服器來應用更改、更新和修復他們自己進入的任何奇怪的鎖。這裡的問題是這些伺服器正在做他們設計的事情 - 一直處於訪問狀態。我需要研究在設備上執行重啟的選項,看看這是否有幫助。

我做了一些環顧四周,可能會將我的視線從使用者鎖轉移到可能的系統鎖上,Handle 或 PsFile 將對此有所幫助。我不想依賴第三方應用程序,但會測試 Unlocker。

如果您有什麼建議,請告訴我。

有兩種方法可以鎖定您的 excel 文件 - 它可以“正在使用”,因為在另一個程序中,該文件有一個打開的句柄,但 Microsoft Office 也使用特殊的“鎖定文件”(稱為“所有者文件”)微軟)。

所有者文件與您嘗試打開的工作簿位於同一文件夾中。所有者文件名使用以下約定:它以波浪號 (~) 開頭,後跟美元符號 ( $ ), followed by the remainder of the workbook file name. The file name extension is .xlsx. For example, the owner file for Sheet.xlsx is named ~ $ eet.xlsx。

所有者文件是隱藏的,因此您需要啟用“查看隱藏的文件和文件夾”才能查看它。如果所有者文件存在,那麼您只需將其刪除即可“解鎖”該文件。

Technet 部落格文章中列出了更多資訊和故障排除程序最終鎖定文件文章

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