我正嘗試使用DCIM_PhysicalDiskView中的primaryStatus並將其與3(降級硬盤)進行比較。如果有匹配,則會發送一封電子郵件通知管理員。這裏是代碼:獲取DCIM_PhysicalDiskView的PrimaryStatus並將其放入Powershell中的變量
$computerNames = Get-Content -Path C:\scripts\nameTest.txt
foreach ($computer in $computerNames) {
write-host "$computer"
$value = "3"
$smtpserver = "mailserver.xxxx.com" # your mail server here
$smtpFrom = "[email protected]" # your from address, mail server will most likely allow any
$smtpTo = "[email protected]" #your email address here. can also be an array and will send to all
$MessageSubject = "Testing Failed Disk in $computer" #whatever you want the subject to be.
gwmi -Namespace root\dcim\sysman -computername $computer -Class DCIM_PhysicalDiskView | ForEach {$name = $_.Name; $primaryStatus = $_.PimaryStatus}
if($primaryStatus -contains $value)
{
Send-MailMessage -SmtpServer $smtpserver -from $smtpFrom -to $smtpto -subject $messageSubject
Write-Host "error message sent"
}
}
我的問題是,該命令沒有管道到foreach。 $ name和$ primaryStatus保留爲空,因此不通過if語句。
對此的任何幫助將不勝感激。謝謝!
是'$ _。PimaryStatus'是否爲錯字?第二個ForEach也看起來不正確。您每次分配'$ primaryStatus',所以我只會記住最後一個條目。 – Matt 2014-10-09 19:03:15
@Matt這是一個錯字。 – kaka 2014-10-13 13:27:19