我正在使用Powershell並嘗試檢索物理磁盤資源的大小和可用空間。Powershell命令檢索故障轉移羣集磁盤大小/可用空間?
我希望此代碼在一個Windows Server 2008 R2框(監視服務器)上運行,並在同一個域上的三個遠程羣集上輪詢資源。其中2個集羣也運行Windows Server 2008 R2,但其中一個正在運行Windows Server 2012(x64)。返回的數據將作爲監控應用程序的一部分插入到數據庫中。
目前我使用的代碼是:
$clusters = "cluster1.domain.local","cluster2.domain.local","cluster3.domain.local"
foreach ($cluster in $clusters) {
$resources = Get-ClusterResource -Cluster $cluster | where-object {$_.ResourceType -match "Physical Disk"}
foreach ($resource in $resources) {
$details = Get-ClusterResource -Cluster $cluster -Name $resource.Name | fc *
<how to get disk size & space from $details?>
}
}
通過返回的數據「GET-ClusterResource | FC *」不包括物理磁盤的大小或自由空間,我可以不知道如何得出這些信息。返回的信息對所有羣集資源都是通用的 - 可以看到一個示例here(示例2)。下面的示例3幾乎是有幫助的,但不包括磁盤大小或可用空間。
我檢查了this question,但答案使用WMI查詢,當我嘗試此操作時,遇到各種安全和兼容性問題。如果可能的話,我寧願堅持直截了當的PowerShell,尤其是監視應用程序也使用純PowerShell檢查Exchange郵箱大小& DFS複製積壓。
請注意我不想查詢羣集共享卷 - 他們有自己的,單獨的PowerShell功能,我有這個工作沒有問題。它專門用於物理磁盤資源,我無法使其運行。
我知道物理磁盤是許多資源類型之一,所以通用的Get-ClusterResource命令不會返回任何特定於磁盤的內容,但我希望可以調用另一個函數,傳入Get- ClusterResource,檢索磁盤空間/免費空間
任何援助,將不勝感激,謝謝
山姆
更新爲安斯加爾Wiechers
您的目標是什麼? 如前所述,爲了創建一系列「數據收集器」PowerShell腳本,從多個需要監控的系統收集數據,並將這些數據注入到數據庫中,以提供警報,保留歷史記錄並通常增強我們的監控能力。我們當前的監測工具套件覆蓋了我們所需要的90%,但僅僅遺漏了一些小事情,我希望使用此方法進行糾正
爲什麼需要物理磁盤參數而不是CSV參數? 由於CSV不是集羣中使用的唯一磁盤類型。舉個例子,我們有一個2個服務器,7個實例,31個卷的SQL集羣。這是有力的,所有捲上的可用磁盤空間都受到監視,原因我認爲是顯而易見的。此監控目前手動完成,並且缺少歷史記錄保留
其中物理磁盤? 無論我指定哪一個。一個理想的解決方案將能夠監視任何正在使用的(即不是'可用')羣集磁盤資源。我不打算監視'無用的'磁盤,例如我們的SQL集羣或仲裁捲上的DTC卷,但是沒有理由我不應該能夠監視這些,如果我選擇
爲什麼您希望通過羣集獲取此信息,而不是監視羣集成員上的物理磁盤信息。雖然可以通過SNMP MIB獲取某些信息,但獲取,解釋和轉換信息要困難得多。我可以進入這個細節,但它會從堂堂的問題焦點,我只想說PowerShell是我的首選方法
您的目標是什麼?爲什麼你需要物理磁盤參數而不是CSV參數?其中物理磁盤?爲什麼要通過羣集獲取此信息而不是監視羣集成員上的物理磁盤信息? –