【问题标题】:How to identify the disk Optane or Raid type using Powershell?如何使用 Powershell 识别磁盘 Optane 或 Raid 类型?
【发布时间】:2020-05-22 04:14:03
【问题描述】:

我想确定磁盘信息是否包含 RAID 或 Optane。 是否可以使用 PowerShell 获取该信息? 我尝试了 Get-PhysiclDisk 和 Get-Disk,但不包括该信息。

任何建议,非常感谢!谢谢

【问题讨论】:

  • 可能有一个 WMI 类,或者是内置的,或者由制造商的管理包提供。找出这些是题外话,因为它与编程无关。请改用ServerFault

标签: powershell disk raid


【解决方案1】:

Christopher Klein写了一个简单的脚本:

$dp = "list volume" | diskpart | ? { $_ -match "^  [^-]" }

echo `<`<`<local`>`>`>
foreach ($row in $dp) {
    # skip first line
    if (!$row.Contains("Volume ###")) {
        # best match RegExp from http://www.eventlogblog.com/blog/2012/02/how-to-make-the-windows-softwa.html
        if ($row -match "\s\s(Volume\s\d)\s+([A-Z])\s+(.*)\s\s(NTFS|FAT)\s+(Mirror|RAID-5|Stripe|Spiegel|Spiegelung|Übergreifend|Spanned)\s+(\d+)\s+(..)\s\s([A-Za-z]*\s?[A-Za-z]*)(\s\s)*.*")  {
            $disk = $matches[2] 
            # 0 = OK, 1 = WARNING, 2 = CRITICAL
            $statusCode = 1
            $status = "WARNING"
            $text = "Could not parse line: $row"
            $line = $row

            if ($line -match "Fehlerfre |OK|Healthy") {
                $statusText = "is healthy"
                $statusCode = 0
                $status = "OK"
            }
            elseif ($line -match "Rebuild") {
                $statusText = "is rebuilding"
                $statusCode = 1
            }
            elseif ($line -match "Failed|At Risk|Fehlerhaf") {
                $statusText = "failed"
                $statusCode = 2
                $status = "CRITICAL"
            }

            echo "$statusCode microsoft_software_raid - $status - Software RAID on disk ${disk}:\ $statusText"
        }
    }
}

注意: diskpart 需要管理权限,因此如果单独执行此脚本,则必须在管理帐户下执行。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 2019-02-02
    • 2022-09-24
    • 2021-07-20
    相关资源
    最近更新 更多