我正在尝试按Get-CorpChart-LightEdition
脚本创建图表,我发现图表创建非常好。
我在哈希表中有数据。现在根据上面脚本的要求,我需要传递数组中的值。
$ModelCount Hash table
$l_array is Array
$l_array = $ModelCount | out-string -stream
当我打印数组$l_array
时,它显示的是这样的数据。
Name Value
---- -----
CF-31JLCAXFN 1
OptiPlex GX620 1
HP ProDesk 600 G1 SFF 1
Latitude E6430 2
LIFEBOOK S761 1
CF-19AHNAXFN 2
OptiPlex 790 5
Precision WorkStation T7500 2
Precision T3610 2
Precision T3600 17
Latitude E5530 non-vPro 1
Precision WorkStation T7400 1
Dell Precision M3800 3
OptiPlex XE2 2
Precision WorkStation T3500 1
VMware Virtual Platform 1
Virtual Machine 8
Venue 11 Pro 7130 vPro 1
CELSIUS R650 1
Precision T1500 2
HP Compaq Elite 8300 CMT 1
Surface Pro 3 2
Latitude E6230 1
Latitude E7240 1
P5Q DELUXE 1
Precision M4600 1
OptiPlex XE 3
Latitude E6320 1
4
CELSIUS W380 1
OptiPlex 7010 13
这是我用来生成图表的命令。
. "D:\Automation\Get-Corpchart-LightEdition.ps1" -data $l_array -obj_key "Name" -obj_value "Value" -filepath "c:\barchart1.png" -type Bar -title_text "Total devices with model" -chartarea_Xtitle "Count" -chartarea_Ytitle "Models"
当我执行脚本时,我收到错误。
Get-Corpchart-LightEdition.ps1:无法验证参数的参数 '数据'。参数为null或空。提供一个不是的论据 null或empty然后再次尝试该命令。
任何建议我做错了什么?
修改:
$l_array.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String[] System.Array
答案 0 :(得分:1)
回答来自PetSerAl:
获取哈希表的Enumerator
并使用@()
将其显式转换为数组:
. "D:\Automation\Get-Corpchart-LightEdition.ps1" -data @($ModelCount.GetEnumerator()) -obj_key "Name" -obj_value "Value" -filepath "c:\barchart1.png" -type Bar -title_text "Total devices with model" -chartarea_Xtitle "Count" -chartarea_Ytitle "Models"