Private/New-CounterConfigurationFromJson.ps1
function New-CounterConfigurationFromJson { [CmdletBinding()] [OutputType([CounterConfiguration[]])] param( [Parameter(Mandatory=$true)] [PSCustomObject] $JsonConfig, # Remote params [Parameter()] [bool] $isRemote, [Parameter()] [string] $computername, [Parameter()] [pscredential] $credential ) $PerformanceCounters = @() foreach ( $CounterConfig in $JsonConfig.counters ) { # Create CounterConfiguration Instance $CounterConfiguration = [CounterConfiguration]::new( $CounterConfig.counterID, $CounterConfig.counterSetType, $CounterConfig.counterInstance, $CounterConfig.title, $CounterConfig.type, $CounterConfig.format, $CounterConfig.unit, $CounterConfig.conversionFactor, $CounterConfig.conversionExponent, $CounterConfig.colorMap, $CounterConfig.graphConfiguration, $isRemote, $computername, $credential ) $PerformanceCounters += $CounterConfiguration } return $PerformanceCounters } |