You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Veeam Backup & Replication 11:PowerShell获取任务处理/传输速度属性咨询

Veeam Backup & Replication 11 PowerShell 任务筛选:按处理/传输速度过滤

我正在使用Veeam Backup & Replication 11,当前用以下PowerShell脚本筛选已启用计划且执行成功的任务:

Get-VBRJob | Where-Object {$_.IsScheduleEnabled -eq "$true" -and $_.GetLastResult() -eq "Success"}

现在想进一步按处理速度筛选任务,但尝试多个属性都无效:添加-and $_.Info.Processing没有输出,尝试$_.GetLastResult().DataProcessingSpeed也失败了。请告知可用于获取处理速度的函数/属性,同时提供获取源VM与目标存储库间数据传输速度的属性。

附测试脚本片段:

Connect-VBRServer -Server "Backup-server-IP"

#Fetching Success Jobs
$SuccessJobs = Get-VBRJob | Where-Object { $_.IsScheduleEnabled -eq "$true" -and $_.GetLastResult() -eq "Success" -and $_.GetLastResult().DataProcessingSpeed -lt 200}

以及GetLastResult()返回对象的成员信息:

Name        MemberType Definition                                                                                                   
----        ---------- ----------                                                                                                   
CompareTo   Method     int CompareTo(System.Object target), int IComparable.CompareTo(System.Object obj)                            
Equals      Method     bool Equals(System.Object obj)                                                                                
GetHashCode Method     int GetHashCode()                                                                                            
GetType     Method     type GetType()                                                                                               
GetTypeCode Method     System.TypeCode GetTypeCode(), System.TypeCode IConvertible.GetTypeCode()                                    
HasFlag     Method     bool HasFlag(System.Enum flag)                                                                                
ToBoolean   Method     bool IConvertible.ToBoolean(System.IFormatProvider provider)                                                 
ToByte      Method     byte IConvertible.ToByte(System.IFormatProvider provider)                                                    
ToChar      Method     char IConvertible.ToChar(System.IFormatProvider provider)                                                    
ToDateTime  Method     datetime IConvertible.ToDateTime(System.IFormatProvider provider)                                            
ToDecimal   Method     decimal IConvertible.ToDecimal(System.IFormatProvider provider)                                              
ToDouble    Method     double IConvertible.ToDouble(System.IFormatProvider provider)                                                
ToInt16     Method     int16 IConvertible.ToInt16(System.IFormatProvider provider)                                                  
ToInt32     Method     int IConvertible.ToInt32(System.IFormatProvider provider)                                                    
ToInt64     Method     long IConvertible.ToInt64(System.IFormatProvider provider)                                                   
ToSByte     Method     sbyte IConvertible.ToSByte(System.IFormatProvider provider)                                                  
ToSingle    Method     float IConvertible.ToSingle(System.IFormatProvider provider)                                                 
ToString    Method     string ToString(), string ToString(string format, System.IFormatProvider provider), string ToString(string...
ToType      Method     System.Object IConvertible.ToType(type conversionType, System.IFormatProvider provider)                        
ToUInt16    Method     uint16 IConvertible.ToUInt16(System.IFormatProvider provider)                                                
ToUInt32    Method     uint32 IConvertible.ToUInt32(System.IFormatProvider provider)                                                
ToUInt64    Method     uint64 IConvertible.ToUInt64(System.IFormatProvider provider)                                                
value__     Property   int value__ {get;set;}                                                                                       

问题核心说明

GetLastResult()返回的是任务执行状态枚举值(如Success、Failed),并非包含任务统计数据的对象,因此直接访问DataProcessingSpeed必然无效。要获取处理/传输速度,需从任务的会话记录中提取。

可用属性与方法

1. 处理速度(Data Processing Speed)

通过任务的最新会话对象(Get-VBRJobSession)获取,对应属性:

  • $session.DataProcessingRate:单位为MB/s
  • $session.Progress.DataProcessingRate:与上述属性等价,属于会话进度对象的成员

2. 源VM到目标存储库的传输速度(Data Transfer Speed)

同样从会话对象中提取:

  • $session.DataTransferRate:单位为MB/s
  • $session.Progress.DataTransferRate:与上述属性等价

修正后的筛选脚本

以下脚本会筛选出已启用计划、执行成功且最新会话处理速度低于200MB/s的任务:

Connect-VBRServer -Server "Backup-server-IP"

# 获取符合基础条件的任务
$candidateJobs = Get-VBRJob | Where-Object {
    $_.IsScheduleEnabled -eq $true -and
    $_.GetLastResult() -eq "Success"
}

# 遍历任务,提取最新会话并按处理速度筛选
$filteredJobs = foreach ($job in $candidateJobs) {
    # 获取任务的最新成功会话
    $latestSession = Get-VBRJobSession -Job $job | 
                     Where-Object { $_.Result -eq "Success" } |
                     Sort-Object EndTime -Descending |
                     Select-Object -First 1
    
    if ($latestSession -and $latestSession.DataProcessingRate -lt 200) {
        # 输出任务及对应会话的速度信息
        [PSCustomObject]@{
            JobName = $job.Name
            ProcessingSpeed_MBps = $latestSession.DataProcessingRate
            TransferSpeed_MBps = $latestSession.DataTransferRate
            LastRunTime = $latestSession.EndTime
        }
    }
}

# 查看结果
$filteredJobs

补充说明

  • 若需获取所有历史会话的速度数据,可去掉Select-Object -First 1,遍历所有成功会话
  • DataProcessingRate和DataTransferRate默认单位为MB/s,无需额外转换
  • 部分任务类型(如复制、备份到磁带)的会话属性可能略有差异,可通过$latestSession | Get-Member查看完整成员

内容的提问来源于stack exchange,提问作者user16753150

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 22:57:41