Я пытаюсь создать автоматизированную систему электронной почты, когда мои API-интерфейсы PowerBI rest обнаруживают ошибку в PowerShell. По сути, мой PowerBI RestAPI иногда выдает следующую ошибку:
И всякий раз, когда он выдает эту ошибку, я хочу, чтобы мой сценарий PowerShell отправлял мне Эл. адрес. В настоящее время я тестирую следующий код, но он совсем не работает. В идеале, когда ошибка возникает для приведенного ниже кода, он должен печатать «Ошибка». Вместо этого он просто выводит ошибку и останавливается. Мне интересно, есть ли у кого-нибудь опыт обработки ошибок с помощью API-интерфейсов PowerBI rest.
$User = "email@hotmail.com"
$PW = "mypw"
$SecPasswd = ConvertTo-SecureString $PW -AsPlainText -Force
$myCred = New-Object System.Management.Automation.PSCredential($User,$SecPasswd)
Connect-PowerBIServiceAccount -Credential $myCred
# 2. Refresh Dataset
try{
Invoke-PowerBIRestMethod -Url "datasets/2-cdaf123fa5/refreshes" -Method Post -Body '{"notifyOption": "MailOnFailure"}'
}
# 3. Check if there is an error
catch {
$emailSmtpServer = "smtp.gmail.com"
$emailSmtpServerPort = "587"
$emailSmtpUser = "email@gmail.com"
$emailSmtpPass = "password"
$emailFrom = "email@gmail.com"
$emailTo = "email@gmail.com"
$emailMessage = New-Object System.Net.Mail.MailMessage( $emailFrom , $emailTo )
$emailMessage.Subject = "subject"
$emailMessage.Body = "body"
$SMTPClient = New-Object System.Net.Mail.SmtpClient( $emailSmtpServer , $emailSmtpServerPort )
$SMTPClient.EnableSsl = $True
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential( $emailSmtpUser , $emailSmtpPass );
$SMTPClient.Send( $emailMessage )
}