我正在尝试使用 powershell 生成 CSV 报告,以显示所有 Azure 订阅的所有恢复保管库中的所有备份项目。
ForEach ($Subscription in $Subscriptions) {
$RCvaults = get-azrecoveryservicesvault
ForEach ($RCvault in $RCvaults) {
get-AzRecoveryServicesBackupJob
}
}
但是,我似乎只获得了一台虚拟机的备份信息。另外,我不太清楚如何导出到 CSV。我是 Powershell 新手,任何帮助将不胜感激
类似这样的事情。
$subscriptions = Get-AzSubscription
ForEach ($Subscription in $Subscriptions) {
Set-AzContext -SubscriptionId $Subscription.Id
$RCvaults = get-azrecoveryservicesvault
ForEach ($RCvault in $RCvaults)
{
Set-AzRecoveryServicesVaultContext -Vault $RCvault
Get-AzRecoveryServicesBackupJob
}
}
我采纳了 Daniel Björk 的回复并添加了一些内容。
Clear-Host
$timestamp = get-date -format yyyyMMddHHmmss
$subfolder = if (($PSVersionTable.PSEdition) -eq "Core") { if ( $True -eq $iswindows ) { "\Documents\" } Else { "" } } Else { "\Documents\" }
$mydocuments = $home + $subfolder
$fileName = "Azure-backup-Inventory-" + [string]$timestamp + ".csv"
$filePath = Join-Path $mydocuments $fileName
$Out = @()
$subscriptions = Get-AzSubscription
ForEach ($Subscription in $Subscriptions) {
Set-AzContext -SubscriptionId $Subscription.Id | Out-Null
$sub_id = $Subscription.id
$sub_name = $Subscription.Name
$RCvaults = get-azrecoveryservicesvault
ForEach ($RCvault in $RCvaults)
{
Set-AzRecoveryServicesVaultContext -Vault $RCvault
$out += Get-AzRecoveryServicesBackupJob | Select-Object @{Name = "Subscription_ID";e={$sub_id}}, @{Name = "Subscription_Name";e={$sub_name}}, *
}
}
$out | Export-Csv -NoTypeInformation -Path $filepath
Write-Output "Exported to: $filePath"
Write-Output "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\|||||||////////////////////////////////////"