Arrays powershell返回1个单个元素而不是数组

Arrays powershell返回1个单个元素而不是数组,arrays,powershell,powershell-3.0,Arrays,Powershell,Powershell 3.0,为了解决这个问题,我在web上发布了不同的帖子,但我的代码仍然返回一个元素而不是数组。我的代码如下: Add-PSSnapin -Name VeeamPSSnapIn -WarningAction SilentlyContinue $sessionVMSummary = @() $bkJobs = get-vbrjob | foreach { $session = $_.findlastsession() if (($session -ne $NU

为了解决这个问题,我在web上发布了不同的帖子,但我的代码仍然返回一个元素而不是数组。我的代码如下:

Add-PSSnapin -Name VeeamPSSnapIn -WarningAction SilentlyContinue
    $sessionVMSummary = @()
    $bkJobs = get-vbrjob | foreach {
        $session = $_.findlastsession()
        if (($session -ne $NULL) -and ($_.isScheduleEnabled -eq $TRUE)) {
            # Get session details
            $sessionDocument = New-Object PSObject -Property @{
                "Name" = $session.JobName
                "Result" = $session.Result.toString()
                "ObjectStatus" = @()
            }
            [Veeam.Backup.Core.CBackupTaskSession]::GetByJobSession($session.id) | foreach {
                $Info = New-Object PSObject -Property @{
                    "Start Time" = $_.Progress.StartTime
                    "End Time" = $_.Progress.StopTime
                    "Duration" = $_.Progress.Duration
                }
                $sessionDocument.ObjectStatus += $Info
            }
            $sessionVMSummary += $sessionDocument
        }
    }

    return $sessionVMSummary
问题1:如何使$sessionVMSummary返回包含1个元素的数组? 问题2:如何从语法的角度提高代码的效率


谢谢

使用逗号运算符将您的数组包装到另一个数组中,例如:

return ,$sessionVMSummary

使用逗号运算符将数组包装到另一个数组中,例如:

return ,$sessionVMSummary

谢谢你,基思希尔。这将返回一个ArrayList,我需要[Object]。问题是ArrayList的ConvertToJSON只会返回一个对象而不是数组。。。奇怪的是,只需在ArrayList上调用
ToArray()
,例如
return,($sessionVMSummary.ToArray())
谢谢@KeithHill。这将返回一个ArrayList,我需要[Object]。问题是ArrayList的ConvertToJSON只会返回一个对象而不是数组。。。奇怪的是,只需在ArrayList上调用
ToArray()
,例如
return,($sessionVMSummary.ToArray())