Windows

如何從腳本檢查內置 windows 2003 軟體 raid 的完整性

  • January 17, 2010

我想編寫一個腳本(使用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"

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