I need to make a report with Powershell-AWS Sdk for AWS Backup.
Actually i have the current report:
I want to add column on the left with Name Instance TAG for each raw match with VolumeId for more friendly use and read more easly if Instance is backup or not.
Thanks.
# AWS Credentials
Set-AWSCredential -ProfileName XXXX
Set-DefaultAWSRegion -Region XXXXX
$date = (get-date -Format "MM-dd-yyyy" (Get-Date).AddDays(-1)) #Last day
$Body = @"
<style>
body {
background-color: #CAD2D3;
}
</style>
<h1><img src="https://i.ibb.co/cvHLWfN/transparent-aws-logo.png" alt="transparent-aws-logo" width="189" height="69" border="0" /> <span style="color: #000000;"><strong>AWS BACKUP STATUS</strong></span></h1>
<p>The following report was run on $(get-date).</p>
"@
$Header = @"
<style>
TABLE {border-width: 2px; border-style: solid; border-color: black; border-collapse: collapse;}
TH {border-width: 2px; padding: 3px; border-style: solid; border-color: black; background-color: #6495ED;}
TD {border-width: 2px; padding: 3px; border-style: solid; border-color: black;}
</style>
"@
Get-BAKBackupJobList -ByCreatedAfter $date | Select-Object -Property @{Label = 'VolumeId'; Expression = { $_.ResourceArn.substring($_.ResourceArn.length - 21) } }, @{Label = 'BackupSizeInGB'; Expression = { [int]($_.BackupSizeInBytes / 1GB) } }, BackupJobId, CreationDate, CompletionDate, State |
ConvertTo-Html -Head $Header -Body $Body | ForEach-Object {
$PSItem -replace "<td>COMPLETED</td>", "<td style='background-color:#7CFC00'>COMPLETED</td>" } | out-file "E:\Report\AWSBackup\Report_AWSBackup-$date.html"
BastosAWS.
Update:
I find what I would like by created PSCustomObject: It's working!
Code:
# AWS Credentials
Set-AWSCredential -ProfileName XXXX
Set-DefaultAWSRegion -Region XXXXX
$date = (get-date -Format "MM-dd-yyyy" (Get-Date).AddDays(-1)) #Last day
$Body = @"
<style>
body {
background-color: #CAD2D3;
}
</style>
<h1><img src="https://i.ibb.co/cvHLWfN/transparent-aws-logo.png" alt="transparent-aws-logo" width="189" height="69" border="0" /> <span style="color: #000000;"><strong>AWS BACKUP STATUS</strong></span></h1>
<p>The following report was run on $(get-date).</p>
"@
$Header = @"
<style>
TABLE {border-width: 2px; border-style: solid; border-color: black; border-collapse: collapse;}
TH {border-width: 2px; padding: 3px; border-style: solid; border-color: black; background-color: #6495ED;}
TD {border-width: 2px; padding: 3px; border-style: solid; border-color: black;}
</style>
"@
$var = Get-BAKBackupJobList -ByBackupVaultName daily-ec2-ami | Select-Object -Property @{Label = 'InstanceId'; Expression = { $_.ResourceArn.substring($_.ResourceArn.length - 19) } }, @{Label = 'BackupSizeInGB'; Expression = { [int]($_.BackupSizeInBytes / 1GB) } }, BackupJobId, CreationDate, CompletionDate, State
$vmobjects = @()
foreach ($row in $var)
{
$ec2id = $row.InstanceId
$object = [PSCustomObject][Ordered] @{
Name = Get-EC2Tag | ? { $_.ResourceID -eq "$ec2id"} | ? { $_.key -eq "Name" } | select -expand Value
Application = Get-EC2Tag | ? { $_.ResourceID -eq "$ec2id"} | ? { $_.key -eq "Application" } | select -expand Value
InstanceId = $row.InstanceId
BackupSizeInGB = $row.BackupSizeInGB
CreationDate = $row.CreationDate
CompletionDate = $row.CreationDate
State = $row.State
}
$vmobjects += $object
}
$vmobjects | ConvertTo-Html -Head $Header -Body $Body | ForEach-Object {
$PSItem -replace "<td>COMPLETED</td>", "<td style='background-color:#7CFC00'>COMPLETED</td>" } | out-file "E:\Report\AWSBackup\Report_AWSBackup-$date.html
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.