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