gpt4 book ai didi

powershell - 使用Powershell解析RSTCLI的卷状态

转载 作者:行者123 更新时间:2023-12-02 23:28:26 24 4
gpt4 key购买 nike

我正在尝试使用Powershell解析来自rstcli64(英特尔快速存储技术命令行界面)的输出,以用于Hyper-v 2012裸机服务器。目标是通过为“OK”返回$ true或为“normal”或$ null以外的其他值返回$ false来查找状态非“正常”的任何卷或磁盘。最终目的是为Icinga创建警报。完成后,我将发布工作脚本。这就是我的位置,我可能会以完全错误的方式进行此操作:

我从rstcli64开始:

rstcli64 --information --volume

哪个输出:
--VOLUME INFORMATION--

Name: Volume0
Raid Level: 10
Size: 466 GB
StripeSize: 64 KB
Num Disks: 4
State: Normal
System: True
Initialized: False
Cache Policy: Off

--DISKS IN VOLUME: Volume0 --

ID: 0-0-0-0
Type: Disk
Disk Type: SATA
State: Normal
Size: 233 GB
Free Size: 0 GB
System Disk: False
Usage: Array member
Serial Number: WD-WCAT1F483065
Model: WDC WD2502ABYS-18B7A0

ID: 0-1-0-0
Type: Disk
Disk Type: SATA
State: Normal
Size: 233 GB
Free Size: 0 GB
System Disk: False
Usage: Array member
Serial Number: WD-WCAT1F468139
Model: WDC WD2502ABYS-18B7A0

ID: 0-2-0-0
Type: Disk
Disk Type: SATA
State: Normal
Size: 233 GB
Free Size: 0 GB
System Disk: False
Usage: Array member
Serial Number: WD-WCAT1H077856
Model: WDC WD2502ABYS-18B7A0

ID: 0-3-0-0
Type: Disk
Disk Type: SATA
State: Normal
Size: 233 GB
Free Size: 0 GB
System Disk: False
Usage: Array member
Serial Number: WD-WCAT1F522503
Model: WDC WD2502ABYS-18B7A0


rstcli64 :
+ CategoryInfo : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

0

我对“State:”条目退出的任何地方都感兴趣,因此我使用了Select-String来过滤掉它,并使用以下输出:
rstcli64 --information --volume 2> Out-Null | select-string -Pattern "State:"

State: Normal
State: Normal
State: Normal
State: Normal
State: Normal

……据我所知。我需要找出如果所有“State:”字段-eq“Normal”都如何返回$ true,如果没有输出(我假设为$ null)或有任何“State:” -ne则如何返回$ false “正常”。

任何帮助深表感谢。谢谢。

编辑:感谢您的帮助!这就是我最终使用TheMadTechnician的逻辑的结果: http://baremetalwaveform.com/?p=311

最佳答案

好了,从您所处的地方就很容易做到。运行RegEx匹配或运行-like,然后查看是否存在-match或-like,然后查找“Normal”。获得一个计数,如果Status -gt 0的总数与该计数-eq匹配的计数相等,那么就一切就绪。

$Status = rstcli64 --information --volume 2> Out-Null | select-string -Pattern "State:"
If(($status.count -gt 0) -and ($status.count -eq ($status|Where{$_ -match "Normal"}).count)){
"All is well"
}else{
"Stuff be broke!"
}

关于powershell - 使用Powershell解析RSTCLI的卷状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26003564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com