По моему личному мнению, я рекомендую вам использовать для этого модуль Runbook автоматизации Azure.
1.Создать учетную запись автоматизации (необходимо создать учетную запись запуска от имени) и runbook (тип powershell).
2. Перейдите к учетной записи автоматизации на портале-> Модули -> Просмотреть галерею -> импортировать модуль AzureAD
.
3.Следуйте по этой ссылке наназначьте роль каталога субъекту службы, сгенерированному учетной записью запуска от имени (я не уверен, какой роли будет достаточно для Get-AzureADApplication
, вы можете попробовать Global Administrator
напрямую).
4.В вашей книге выполнения,используйте сценарий, как показано ниже, для входа в систему с принципалом службы.Затем запустите образец в вашем вопросе, чтобы получить дату истечения срока действия, напишите несколько операторов if else, чтобы сравнить их с текущим временем и судить, затем используйте от Send-MailMessage
до , чтобы отправить почтовое сообщение .Затем сохраните и опубликуйте свой Runbook.
$connectionName = "AzureRunAsConnection"
try
{
# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName
"Logging in to Azure..."
Connect-AzureAD `
-TenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
}
catch {
if (!$servicePrincipalConnection)
{
$ErrorMessage = "Connection $connectionName not found."
throw $ErrorMessage
} else{
Write-Error -Message $_.Exception
throw $_.Exception
}
}
5. Перейдите к Runbook на портале -> Расписания -> создать и связать расписание повторений с вашим Runbook, возможно, каждый час или каждый день, детали зависят отвы.