PowerShell Job.Progress 包含多个对象

PowerShell Job.Progress contains multiple objects

我目前正在使用 PowerShell 为 Hyper-V 开发备份管理器。

我 运行 在开始这样的导出工作时遇到问题:

$job = (export-vm -name "Windows 10" -path F:\VM_Backup\ -asjob)

现在在查询工作进度时,我发现我的 Progress 里面有两个对象 属性:

> $job.progress

ActivityId        : 0
ParentActivityId  : -1
Activity          : Export wird ausgeführt
StatusDescription : Gelöscht
CurrentOperation  :
PercentComplete   : 1
SecondsRemaining  : -1
RecordType        : Processing

ActivityId        : 0
ParentActivityId  : -1
Activity          : Export wird ausgeführt
StatusDescription : Gelöscht
CurrentOperation  :
PercentComplete   : 37
SecondsRemaining  : -1
RecordType        : Processing

虽然第二次进度更新取得了真正的进展(增加百分比),但第一个始终保持如上。

我以前从未见过这种行为,这对我来说真的没有任何意义。我如何(以编程方式)select "right" 作业?

根据设计,.Progress property 收集作业写入的所有进度消息 - 它不仅反映 最新的 状态。

最近写的 消息是最后添加到 .Progress 集合的消息,因此您可以使用索引 [-1] 检索它。

$job.Progress[-1]

注意:对于 Start-Job 创建的作业,您必须访问 .Progress 属性(唯一)child 作业相反:$job.ChildJobs[0].Progress[-1] - 参见 about_Job_Details.