如何從腳本檢查內置 windows 2003 軟體 raid 的完整性
我想編寫一個腳本(使用python或windows批處理)來檢查在winows 2003伺服器上的raid系統中是否所有磁碟都線上、活動和同步。
這是我正在使用的內置 windows 2003 軟體 raid。
如何從定期執行的腳本中獲取此資訊?
*編輯:*我嘗試了接受答案的程式碼。在我的系統上,所有磁碟資訊都給出了,除了“狀態”,它總是返回“無”。
我在這裡找到了另一個解決方案:
http://www.anchor.com.au/hosting/dedicated/monitoring_windows_software_raid
從腳本呼叫“echo list volume | diskpart”並使用正則表達式檢查返回的輸出。每個驅動器有一條線。狀態的可能字元串值取決於您的作業系統的語言。不是很好,但有效。
您正在尋找Win32_LogicalDisk WMI 類(特別是 status 屬性)
您可以使用 PowerShell 或 VBScript 來訪問此類。
注意我沒有軟體 Raid 設置來測試這些,它們只是沒有完全充實程式碼的範例
一個快速的 PowerShell 腳本看起來像這樣:
$CheckDrive = gwmi -query "Select * from Win32_LogicalDisk where DeviceID='C:'" $CheckDrive.properties.status
或者,如果您想遍歷一堆驅動器,您可以執行以下操作:
$CheckDrive = gwmi Win32_LogicalDisk foreach ($i in $CheckDrive){$i.properties.Status}
從連結的站點這裡是狀態輸出的選項:
狀態
Data type: string Access type: Read-only
對象的目前狀態。可以定義各種執行和非執行狀態。操作狀態包括:“OK”、“Degraded”和“Pred Fail”(一個元素,例如啟用 SMART 的硬碟驅動器,可能執行正常,但預計在不久的將來會出現故障)。非操作狀態包括:“錯誤”、“啟動”、“停止”和“服務”。後者,“服務”,可以在磁碟的鏡像重新同步、使用者權限列表的重新載入或其他管理工作期間應用。並非所有此類工作都線上,但託管元素既不是“正常”,也不是其他狀態之一。此屬性繼承自 CIM_ManagedSystemElement。
The values are: "OK" "Error" "Degraded" "Unknown" "Pred Fail" "Starting" "Stopping" "Service" "Stressed" "NonRecover" "No Contact" "Lost Comm"