Интеграция 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, так как на них будут ссылаться журналы.