param(
$password,
$applicationid,
$TenantId
)
import-module az
function getbackupstatus {
$principalPassword = ConvertTo-SecureString $password -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($applicationid, $principalPassword)
$null = connect-AZAccount -Credential $psCred -ServicePrincipal -TenantId $TenantId
$Subscriptions = Get-Azsubscription
if ($SubscriptionName)
{
$Subscriptions = $Subscriptions | where { $_.SubscriptionName -EQ $SubscriptionName }
}
elseif ($SubscriptionId)
{
$Subscriptions = $Subscriptions | where { $_.SubscriptionId -EQ $SubscriptionId }
}
$jobsAllArray = @()
$i=0
foreach ( $Subscription in $Subscriptions )
{
$SubscriptionId = $Subscription.SubscriptionId
$i++
$rcvaults=Get-AzRecoveryServicesVault
foreach ($rcvault in $rcvaults)
{
get-azrecoveryservicesvault -name $rcvault.Name | set-azrecoveryservicesvaultcontext ;
$JobStatus=Get-AzRecoveryServicesBackupJob -From (Get-Date).AddDays(-1).ToUniversalTime() |Select Status;
}
$global:CompletedJobs= $JobStatus| Where({$_.Status -eq 'Completed'})
$global:InprogressJobs= $JobStatus| Where({$_.Status -eq 'InProgress'})
$global:FailedJobs= $JobStatus| Where({$_.Status -eq 'Failed'})
}
}
getbackupstatus
If(($Failedjobs.status.count -eq 0) -and ($CompletedJobs.status.count -gt 0)) {
$result = "
Completed jobs
$($CompletedJobs.status.count)
Failed jobs
$($FailedJobs.status.count)
Running jobs
$($InprogressJobs.status.count)
Backup succesvol
"
}
else{
$result = "
1
Backup failed, failed jobs: $($failedjobs.status.count)
"
}
Write-Host $result