foreach, если никакие объекты не начинаются со значения - PullRequest
0 голосов
/ 08 ноября 2018

Прямо сейчас работает ниже. Однако я хочу, чтобы он проходил по всем значениям $a и ни одно из них не начиналось с отправки, а затем отправлял отдельное предупреждение.

Import-Module JAMS
$MyEntry = Get-JAMSEntry -Entry <<JAMS_NOTIFY_JAMS_ENTRY>>
$FQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain
Set-Location -Path "C:\Program Files\Zabbix Agent"
foreach ($a in $MyEntry.AuditTrail) {
    Write-Host $a.Message
    if ($a.Message.StartsWith("Sending")) {
        $Status = "0"
        Write-Host "Sending Data to Zabbix Item"
        Write-Host "Server: " $FQDN
        Write-Host "Status: " $Status
        .\zabbix_sender.exe -vv -c "C:\Program Files\Zabbix Agent\zabbix_agentd.conf" -s $FQDN -k app.jams.server.email -o $Status
    }
    else {
    }
}

1 Ответ

0 голосов
/ 08 ноября 2018

Если я правильно понял ваше требование; это, наверное, самый простой / чистый способ:

$sendingMessages = $MyEntry.AuditTrail | Where-Object Message -Like "Sending*"

if (-not $sendingMessages) {
    Write-Output "No messages starting with 'Sending'."
}
else {
    foreach ($sendingMessage in $sendingMessages) {
        Write-Output $sendingMessage
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...