begin { $global_parameters = @( @{ name = 'Bp Scus' Cloud_provider = 'Azure' subscription = 'ac782c49-b833-4ca1-b632-5eb85281cc26' ResourceGroupName = 'rg-BP-shared-scus01' StorageAccountName = 'roserbpsqlbackupscus' StorageContainerName = 'backupcontainer' }, @{ name = 'Bp Weu' Cloud_provider = 'Azure' subscription = 'ac782c49-b833-4ca1-b632-5eb85281cc26' ResourceGroupName = 'rg-BP-shared-weu01' StorageAccountName = 'roserbpsqlbackupweu' StorageContainerName = 'backupcontainer' }, @{ name = 'Total' Cloud_provider = 'Azure' subscription = '40c3c7b3-1bd7-446b-b6a3-45ac84246fb9' ResourceGroupName = 'rg-Tot-resources-weu01' StorageAccountName = 'rosertotalbackup' StorageContainerName = 'backupcontainer' }, @{ name = 'RoserCloud' Cloud_provider = 'AWS' subscription = '' ResourceGroupName = 'operations_west-europe' StorageAccountName = 'rosercloud-sql-backup' StorageContainerName = 'rosercloud-rpsql02' } ) #date variables $Today_date = Get-Date -Format "yyyyMMdd" $Yesterday_date = (get-Date).AddDays(-1).ToString('yyyyMMdd') #clear the screen cls #login into AZURE #Login-AzAccount | Out-Null Connect-AzAccount -TenantId 419c9123-a9c1-4908-9c5f-c2f34cc15973 | Out-Null } process { For ($occurences = 0; $occurences -lt $global_parameters.count; $occurences++) { #For ($occurences = 1; $occurences -lt 3; $occurences++) { if ($global_parameters[$occurences].Cloud_provider -eq "Azure") { Write-Host $global_parameters[$occurences].name -ForegroundColor Green $SubscriptionID = $global_parameters[$occurences].subscription $ResourceGroupName = $global_parameters[$occurences].ResourceGroupName $StorageAccountName = $global_parameters[$occurences].StorageAccountName $StorageContainerName = $global_parameters[$occurences].StorageContainerName $Blob = '*.bak' #verification of SubscriptionID and assign it if required if (-not $SubscriptionID) { $Subscription = Get-AzSubscription | Out-Gridview -passthru } else { $Subscription = Get-AzSubscription -SubscriptionId $SubscriptionID } Select-AzSubscription -Subscription $Subscription.SubscriptionId | Out-Null #verification of ResourceGroupName and assign it if required if (-not $ResourceGroupName) { $ResourceGroup = Get-AzResourceGroup | Out-Gridview -passthru } else { $ResourceGroup = Get-AzResourceGroup -ResourceGroupName $ResourceGroupName } #verification of StorageAccountName and assign it if required if (-not $StorageAccountName ) { $StorageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroup.ResourceGroupName | Out-GridView -PassThru } else { $StorageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName } $StorageAccountKey = Get-AzStorageAccountKey -Name $Storageaccount.StorageAccountName -ResourceGroupName $ResourceGroup.ResourceGroupName $Context = New-AzStorageContext -StorageAccountName $StorageAccount.StorageAccountName -StorageAccountKey $StorageAccountKey[0].Value #verification of StorageContainerName and assign it if required if (-not $StorageContainerName) { $StorageContainer = Get-AzStorageContainer -Context $Context | Out-GridView -PassThru } else { $StorageContainer = Get-AzStorageContainer -Context $Context -Name $StorageContainerName } #start the action of listing $ContainerContent = Get-AzStorageBlob -Context $Context -Container $StorageContainer.Name -Blob $blob #display ContainerContent $ContainerContent | Out-GridView -Title $global_parameters[$occurences].name #determine number of saves for today and yesterday and display them $result_today = $ContainerContent | Where-object { ($_.LastModified.DateTime -gt (Get-Date).Date) } $result_yesterday = $ContainerContent | Where-object { ($_.LastModified.DateTime -gt (Get-Date).AddDays(-1).Date) -and ($_.LastModified.DateTime -lt (Get-Date).Date) } Write-Host "number of saves today: "$result_today.count Write-Host "number of saves yesterday: "$result_yesterday.count } elseif ($global_parameters[$occurences].Cloud_provider -eq "AWS") { Write-Host $global_parameters[$occurences].name -ForegroundColor Green function Number_backups_s3 { param( [Parameter (Mandatory = $true)] [String]$string_day, [Parameter (Mandatory = $true)] [int]$date_wanted ) $prefix = $global_parameters[$occurences].StorageContainerName $s3_result = aws s3api list-objects --bucket $global_parameters[$occurences].StorageAccountName --prefix "$prefix/$date_wanted/" $s3_result_converted_from_json = $s3_result | ConvertFrom-Json Write-host "number of saves"$string_day$($s3_result_converted_from_json.Contents.count) } Number_backups_s3 -string_day "today: " -date_wanted $Today_date Number_backups_s3 -string_day "Yesterday: " -date_wanted $Yesterday_date } } } end { }