从所有订阅的恢复保管库获取所有 Azure 备份

问题描述 投票:0回答:2

我正在尝试使用 powershell 生成 CSV 报告,以显示所有 Azure 订阅的所有恢复保管库中的所有备份项目。

 ForEach ($Subscription in $Subscriptions) {
             $RCvaults = get-azrecoveryservicesvault
                  ForEach ($RCvault in $RCvaults) {
                            get-AzRecoveryServicesBackupJob
    }
 }

但是,我似乎只获得了一台虚拟机的备份信息。另外,我不太清楚如何导出到 CSV。我是 Powershell 新手,任何帮助将不胜感激

azure powershell for-loop
2个回答
0
投票

类似这样的事情。

$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
    }
}

0
投票

我采纳了 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 "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\|||||||////////////////////////////////////"
© www.soinside.com 2019 - 2024. All rights reserved.