我正在尝试在存储阵列上创建卷和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而不丢失它的数据类型?