Powershell:在 ConvertTo-HTML 中显示数组成员

标签 powershell

我有一组带有 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/

相关文章:

windows - 为什么这个try/catch block 神奇地吞噬了异常?

regex - Powershell:将文件的一部分读入变量

c# - 如何在 C# 中添加 Powershell 管理单元

powershell - 在Powershell中导入Jar类

powershell - 新模块可以返回一个 psobject 吗?

powershell - 在Powershell中,[string []]是什么类型的数据类型,何时使用?

powershell - 在从机上运行 powershell 命令 - Jenkins

powershell - 如何在 PowerShell 提示符下(不在脚本中)初始化多行数组?

powershell - Get-ADUser 过滤器比较

windows - 使用 GPO 创建 SymLink