Интеграция Powershell с Office365

Я хотел бы получить некоторые комментарии по коду интеграции, который я разрабатываю... пытаясь интегрировать Office365 в Solarwinds:

import-Module Office365Alerts


$Username = 'XXXXX@XXX.XXX'
$Password = 'XXXXXXXXXXXXXXXX'


$credential = New-Object -TypeName pscredential -ArgumentList $Username, ($Password | ConvertTo-SecureString -AsPlainText -Force) -ErrorAction Stop


$alerts = Get-Office365ServiceHealth -Credential $credential -ErrorAction Stop  | Select-Object -Property * | Where-Object Service -like '*Exchange*'


foreach($a in $alerts){
[regex]$regex = '\bCurrent status:\s?.*\s' 
$Mess = $a.LatestMessage 

if($Mess -match $regex){
foreach($m in $mess){
Write-Host "Message:Title: $($a.Title)"

Write-Host "Message:Impact: $($a.UserImpact)"

Write-Host "Message:Start Time: $($a.StartTime)"

Write-Host "Message:Last Update: $($a.LastUpdate)"

Write-Host "Message: $($Matches.Values)"


}
Write-Host "Statistic: 1"
}



}

if($a -eq $null){

Write-Host "Message: Service is Healthy"
Write-Host "Statistic: 0"

1 ответ

Решение

Мониторы SolarWinds Powershell ограничены 10 возвращаемыми парами метрик (сообщения и статистика). Если будет возвращено более 10 предупреждений, оно будет прервано. Поскольку вы возвращаете 5 сообщений, которые кажутся идентичными в цикле foreach($a in $alerts), они не будут иметь уникальных имен, что также может вызвать проблемы.

Вы запускаете скрипт в режиме локального или удаленного хоста? Если вы запускаете его на хосте без командлетов Office365, произойдет сбой.

Вы включили ведение журнала отладки в шаблоне? Он находится в разделе "Дополнительно" в верхней части представления редактирования шаблона. Журналы можно найти в ProgramData\SolarWinds\Logs\APM, запишите ваш templateID или его componentIDs, так как на них будут ссылаться журналы.

Другие вопросы по тегам