Как определить тип диска Optane или Raid с помощью Powershell? - PullRequest
0 голосов
/ 06 февраля 2020

Я хотел бы определить информацию о диске, содержит ли он RAID или Optane. Можно ли получить эту информацию с помощью PowerShell? Я пробую Get-PhysiclDisk и Get-Disk, но не включаю эту информацию.

Любой совет, действительно ценимый! Спасибо

1 Ответ

0 голосов
/ 06 февраля 2020

Существует простой скрипт, написанный Кристофером Кляйном :

$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 требует административных привилегий, поэтому этот скрипт должен выполняться под учетной записью администратора если он выполняется автономно.

Надеюсь, это поможет.

...