Как подсчитать точки восстановления Veeam в PowerShell

Я написал небольшой скрипт для получения времени создания каждой точки восстановления за последние x дней:

$VMs = $ImportCSV  # Names of Virtual Machines 
$DateToCompare = 10
foreach ($vm in $VMs) {
    $allRestorePoints = Get-VBRRestorePoint -Name $vm.Name |
                        where {$_.CreationTime -gt $DateToCompare} |
                        Select-Object VMName, CreationTime 
}

Этот скрипт показывает все имена виртуальных машин и время создания точек восстановления в последнем $DateToCompare дней. Но как мне подсчитать точки восстановления для каждой виртуальной машины и экспортировать ее в CSV?

1 ответ

Решение

С кодом, который вы разместили, у вас будут только точки восстановления последней виртуальной машины в $VMs в переменной $allRestorePoints,

Чтобы получить количество точек восстановления для всех виртуальных машин, перечислите все точки восстановления для всех виртуальных машин и групп по имени виртуальной машины:

$restorePoints = $VMs | ForEach-Object {
    Get-VBRRestorePoint -Name $_.Name |
        Where-Object { $_.CreationTime -gt $DateToCompare }
} | Select-Object VMName, CreationTime

$restorePoints |
    Group-Object VMName |
    Select-Object Name, Count |
    Export-Csv 'C:\output.csv' -NoType
Другие вопросы по тегам