如何使用 Powershell 识别磁盘 Optane 或 Raid 类型?
Posted
技术标签:
【中文标题】如何使用 Powershell 识别磁盘 Optane 或 Raid 类型?【英文标题】:How to identify the disk Optane or Raid type using Powershell? 【发布时间】:2020-05-22 04:14:03 【问题描述】:我想确定磁盘信息是否包含 RAID 或 Optane。 是否可以使用 PowerShell 获取该信息? 我尝试了 Get-PhysiclDisk 和 Get-Disk,但不包括该信息。
任何建议,非常感谢!谢谢
【问题讨论】:
可能有一个 WMI 类,或者是内置的,或者由制造商的管理包提供。找出这些是题外话,因为它与编程无关。请改用ServerFault。 【参考方案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 需要管理权限,因此如果单独执行此脚本,则必须在管理帐户下执行。
希望对你有帮助。
【讨论】:
以上是关于如何使用 Powershell 识别磁盘 Optane 或 Raid 类型?的主要内容,如果未能解决你的问题,请参考以下文章
如何编写 powershell 脚本来知道磁盘是基本的还是动态的?
Powershell:如何结合 2 个命令的输出将磁盘字母与磁盘 MediaType 相关联?
Powershell 无法识别Path Powershell 如何更新Path