Product: PowerShell Universal
Version: 1.5.19
New to PSU and having an issue presenting some information with New-UDTable.
I have a module that queries MS GraphAPI for Microsoft Sku details which outputs the below
ActiveUnits NoteProperty int ActiveUnits=1000000
ConsumedUnits NoteProperty int ConsumedUnits=4
Date NoteProperty datetime Date=15/06/2021 09:34:51
Services NoteProperty string[] Services=System.String[]
SKUId NoteProperty string SKUId=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
SKUName NoteProperty string SKUName=STREAM
SuspendedUnits NoteProperty int SuspendedUnits=0
TenantId NoteProperty string TenantId=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
WarningUnits NoteProperty int WarningUnits=0
I have this outputing to a dashboard which is mostly working except any fields with the value of 0 are being blanked out
$UDTable = New-UDTable -Data $SKU -Title 'Tenant SKU List' -ShowPagination -ShowSelection -Export -ShowSearch -showSort
$UDtable.Data[0]
SuspendedUnits :
WarningUnits :
TenantId : xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
SKUId : xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Services : System.String[]
SKUName : Stream
ConsumedUnits : 4
ActiveUnits : 1000000
The workaround I have at the moment is to run a select-object expression to convert this to a string before the New-UDTable but trying to see if there is another way
$Sku | select-object SKUName,ActiveUnits,ConsumedUnits,@{Name='ActiveUnits';Expression={$_.ActiveUnits.toString() }},@{Name='Services';Expression={$_.Services -join ', '}}
adam
June 15, 2021, 12:31pm
2
This seems like an enhancement we need to make. I’m surprised this is the first I’ve heard about it. I’ll open an issue for this.
Did hit another odd one with a different set of data, which out puts an appliance version number as a string.
If the UDTable has a column named ‘Version’ no data is displayed, change the column to ‘OSVersion’ data is displayed.
I have tried my workaround above but this issue presents differently as the new-udtable in PS7 does show the data it’s only in the web portal that the data is missing.
Back at my machine now so I can get the code
$healthDetails = Get-CiscoESAHealth @paramGetCiscoESAHealth | Select-Object ESA,Version
$columns = @(
New-UDTableColumn -Property ESA -Title ESA -IncludeInExport -IncludeInSearch -DefaultSortColumn
New-UDTableColumn -Property Version -Title OSVersion -IncludeInExport -IncludeInSearch
)
Show-UDModal -Content {
New-UDTable -Data $healthDetails -Title 'HealthDetails' -ShowPagination -ShowSelection -Export -ShowSearch -Columns $columns
}
}
Having to split the post as I can only do 1 image at a time as a new user
But just renaming the property to OSVersion
$healthDetails = Get-CiscoESAHealth @paramGetCiscoESAHealth | Select-Object ESA,@{name='OSVersion';expression={$_.Version}}
$columns = @(
New-UDTableColumn -Property ESA -Title ESA -IncludeInExport -IncludeInSearch -DefaultSortColumn
New-UDTableColumn -Property OSVersion -Title OSVersion -IncludeInExport -IncludeInSearch
)
Show-UDModal -Content {
New-UDTable -Data $healthDetails -Title 'HealthDetails' -ShowPagination -ShowSelection -Export -ShowSearch -Columns $columns
}
}
Doing some additional digging in the web developer panel (Admittedly I know nothing about this) I see the field name is missing
adam
June 16, 2021, 12:22pm
7
That’s very weird. I don’t know why it would fail to select the version property if the property is called version.
What is the output when you do a get member on that array of objects?
$healthDetails = Get-CiscoESAHealth @paramGetCiscoESAHealth | Select-Object ESA,Version
$healthDetails | Get-Member
Nothing special, I had thought initially I had defined the data type as [version] but its just a plain old string.
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
ActiveRecipients NoteProperty long ActiveRecipients=7845
CPU NoteProperty string CPU=13%
ESA NoteProperty string ESA=Hostname.domain.com
InboundConnections NoteProperty long InboundConnections=7
Memory NoteProperty string Memory=16%
OutboundConnections NoteProperty long OutboundConnections=2
ResourceConservation NoteProperty long ResourceConservation=0
Status NoteProperty string Status=Online
Timestamp NoteProperty datetime Timestamp=15/06/2021 15:40:35
Uptime NoteProperty timespan Uptime=21.02:45:18
Version NoteProperty string Version=13.x.x-123
WorkQueue NoteProperty long WorkQueue=0