Azure备份通知脚本

时间:2016-07-11 11:55:00

标签: powershell event-log

我只是一个基本的,我是Powershell的新手。试着让下面的陈述有效。

$date = (Get-Date).AddDays(-1)

$currentdate = Get-Date -Format d

$check = Get-WinEvent -FilterHashtable @{LogName="CloudBackup";StartTime=$date;ID=3} *>$null

if ($check -eq $true) {
  Write-Host "`nOK: Azure Backup was successful on $currentdate"
  exit 0
} else {
  Write-Host "`nCritical: Problem with Azure Backup - $currentdate"
  exit 2
}

特别if ($check -eq $true)似乎没有达到预期效果。由于$check正在检查事件日志中的事件ID 3,如果它在那里它应该返回true,如果不是false。不幸的是,它每次都只返回假。

有人可以提出建议吗?有没有更好的方法呢?

1 个答案:

答案 0 :(得分:0)

$check = Get-WinEvent ... *>$null

您的redirection正在取消所有输出,因此$check 始终的值为$null,即{{3}在布尔操作中。

您想要使用的是interpreted as $false $?,以检查最后一次PowerShell操作是否成功。

if ($?) {
  Write-Host "OK: Azure Backup was successful on $currentdate"
  exit 0
} else {
  Write-Host "Critical: Problem with Azure Backup - $currentdate"
  exit 2
}