用 PowerShell 驗證 WordPress 備份檔:避免拿到損壞或不完整的 ZIP
公司網站準備搬家或還原時,常見症狀是 ZIP 備份下載完成,但解壓縮時出現「檔案損毀」、資料庫匯入到一半中斷,或解壓縮後才發現檔案大小和原本不一致。對 WordPress 維護人員來說,目標不是猜測檔案能不能用,而是在還原前先確認下載檔案和來源檔案是否完全相同。
本文使用 Windows 內建的 PowerShell 與 Get-FileHash 計算 SHA-256 雜湊值。這適合檢查主機下載的網站備份、資料庫匯出檔,或廠商交付的更新套件;不需要安裝 WordPress 外掛,也不會修改網站內容。
先準備來源檔與待檢查檔
假設主機端產生了 wordpress-20260907.zip,並另外提供一個記錄 SHA-256 的文字檔。請先把兩個檔案放到同一台 Windows 電腦,例如 C:\Backup\。若檔案是透過瀏覽器下載,建議下載完成後先不要解壓縮或覆寫原檔,保留原始檔案供比對與回復。
安裝與設定 PowerShell
Windows 10 與 Windows 11 通常已內建 Windows PowerShell。按下「開始」,搜尋 PowerShell 並開啟即可。若公司電腦需要較新的版本,可從 Microsoft 官方 PowerShell 安裝文件安裝 PowerShell 7;本文指令在一般 Windows PowerShell 5.1 也能使用。
這項檢查不需要調整執行原則,也不需要使用系統管理員身分。請先建立檔案目錄,並確認檔名沒有因下載工具而多出 .crdownload 或 .part 副檔名。
計算備份檔的 SHA-256
cd C:\Backup
Get-FileHash .\wordpress-20260907.zip -Algorithm SHA256畫面會顯示 Algorithm、Hash 與 Path。請複製 Hash 欄位的完整內容,包含所有英文字母與數字,再和主機商或交付文件中的 SHA-256 值比較。大小寫不同不代表不一致,但任何一個字元不同,都應視為檔案尚未通過檢查。
成功驗證與批次檢查
若來源提供的雜湊值是單獨一行文字,可先放在 wordpress-20260907.sha256,再用 PowerShell 讀出本機檔案的結果:
$local = (Get-FileHash .\wordpress-20260907.zip -Algorithm SHA256).Hash
$source = (Get-Content .\wordpress-20260907.sha256 | Select-Object -First 1).Split(' ')[0]
if ($local -eq $source.ToUpper()) {
'驗證成功:檔案內容一致'
} else {
'驗證失敗:不要進行還原'
}成功時才進入解壓縮、資料庫匯入或測試站還原流程。若是完整網站備份,也要確認檔案與資料庫都在備份範圍內;可搭配 BarryBlogs 的WordPress 備份與還原實務檢查還原前後的驗證項目。
常見錯誤與回復方式
- 找不到檔案:先執行
Get-ChildItem C:\Backup檢查實際檔名,路徑有空格時請使用引號,例如Get-FileHash "C:\Backup Files\site.zip"。 - Hash 不一致:不要重新命名後直接使用,也不要只因檔案大小相同就視為正常。重新下載一次,並請來源端重新產生或確認 SHA-256。
- 下載中斷:刪除未完成的暫存檔後重新下載;若使用 SFTP 或瀏覽器反覆失敗,改在網路穩定的時段傳輸。
- 解壓縮仍然失敗:先保留原始檔與錯誤訊息,確認使用的解壓縮工具版本,再從另一份已通過雜湊比對的備份回復。
安全限制與維護建議
SHA-256 能發現下載不完整或檔案被意外修改,但它不是加密,也不是權限控管。如果攻擊者同時替換檔案與同一台主機上的校驗檔,單純比對仍可能得到「成功」。重要網站應從獨立管道取得校驗值,例如廠商簽章文件、受保護的檔案庫或不同管理者提供的紀錄。
實務上可在每次備份完成時記錄檔名、產生時間、檔案大小與 SHA-256,並定期在測試環境解壓縮及還原。若網站更新後發生異常,也不要以雜湊檢查取代完整備份;仍應保留可用的回復版本,並依照WordPress 外掛更新前的安全檢查清單安排變更。Microsoft 對 Get-FileHash 的參數與演算法說明,則可參考下方官方文件。









臉書留言
一般留言