Powershell 与 Office365 的集成

Powershell integration with 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"

SolarWinds Powershell 监视器限制为 10 个返回的指标对(消息和统计信息),如果返回的警报超过 10 个,它将中断。当您返回 5 条消息时,它们在 foreach($a in $alerts) 循环中看起来是相同的,它们不会有唯一的名称,这也可能给您带来问题。

您运行 脚本是在本地主机还是远程主机执行模式?如果您在没有 Office365 commandlet 的主机上 运行 它,它将失败。

您是否在模板中启用了调试日志记录?它位于模板编辑视图顶部的高级下。日志可以在 ProgramData\SolarWinds\Logs\APM 中找到,请记下您的模板 ID 或其组件 ID,因为日志将被它们引用。