我有一组带有 NoteProperties 的对象。这些属性之一是数组。 当我使用 ConvertTo-HTML 时,我希望有一种简单的方法来显示此 noteproperty 的成员,而不仅仅是 '[System.Object]'。
例如,我有一个名为“Computername”的属性和一个名为“Disks”的属性,它实际上是该计算机所有磁盘的数组。 ConvertTo-HTML 的输出如下所示:
Computername Disks
fs System.Object[]
dc1 System.Object[]
有没有一种简单的方法来显示“磁盘”的成员而无需手动创建 html 输出?
编辑:
一个磁盘对象实际上有 3 个值(名称、容量和可用空间)也必须显示。
$collection[0].Disks 在 powershell 提示符下的输出可能如下所示(取决于磁盘数等):
PS > $collection[0].Disks
Bezeichnung Kapazität (MB) Freier Speicher (MB)
----------- -------------- --------------------
C:\ 40963 23040 (56 %)
D:\ 184324 39024 (21 %)
E:\ 204805 103373 (50 %)
我在考虑类似树的东西,它首先显示计算机名,然后是该计算机所有磁盘的表。像(可能更漂亮;)):
Computername
fs
Bezeichnung Kapazität (MB) Freier Speicher (MB)
----------- -------------- --------------------
C:\ 40963 23040 (56 %)
D:\ 184324 39024 (21 %)
E:\ 204805 103373 (50 %)
dc1
最佳答案
在这种情况下,我通常的做法是将数据扩展为更适合表格的格式,而不是花费大量时间自定义 HTML。
$collection |
select ComputerName -ExpandProperty Disks |
ConvertTo-Html -Fragment -Property ComputerName,Name,Capacity,'Free Space'
这会扩展每台计算机的磁盘列表,以便每一个都出现在表中计算机名称旁边的单独一行中。
ComputerName Name Capacity Free Space
------------ ---- -------- ----------
fs C:\ 109324 60986
fs D:\ 289313 281692
dc1 C:\ 290473 12626
dc1 D:\ 283195 125983
dc1 E:\ 105652 13898
关于Powershell:在 ConvertTo-HTML 中显示数组成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6533985/