为什么丢失了psobject元素的数据类型?

时间:2018-03-21 09:53:59

标签: powershell powershell-v3.0

我正在尝试在存储阵列上创建卷和volcoll等资源,然后在所有操作结束后,它们将被删除。设置创建将按队列顺序完成,删除将按堆栈顺序进行。

以下是我的代码

function Setup-ArrayResource
{
    $Array = [pscustomobject]@{
            Array = "ArrayV4"
            UserName = "admin"
            Password ="Password"

    }

    $Resources = [System.Collections.ArrayList]@()

    $volumes = @([pscustomobject]@{Name ="Vol1"; size = 100gb },
                 [pscustomobject]@{Name ="Vol2"; size = 200gb }
                 )


    $Resources.Add($volumes) | out-null  


    return [pscustomobject] @{
        Array= $Array
        Resources = $Resources
    }

}

function TearDown-Resources
{
    param(
        $Setup
    )

    $Array = $Setup.Array
    $Resources = $Setup.Resources

    #$Resources

    $REsources.Reverse()

    foreach($r in $Resources)
    {
        "Deleting $R"
    }
}

$SetupObj = Setup-ArrayResource

TearDown-Resources -Setup $SetupObj

结果预计如下

Deleting {Name =vol2 size = 214748364800 }
Deleting {Name =vol1 size = 107374182400}

但没有任何东西显示出来。

它只显示为Deleting

当我调试它时,ResourceQueue集合不再是collections.Arraylist。它被认为是psobject。似乎ResourceQueue的数据类型在被分配给Setupobject时会丢失。

这是设计行为吗?如果是这样如何从Setup-Arrayresources获取resourcequeue和Groupconfig而不丢失它的数据类型?

0 个答案:

没有答案