Private/ConvertTo-HashtableInternal.ps1
|
function ConvertTo-HashtableInternal { param([Parameter(ValueFromPipeline)]$InputObject) process { if ($null -eq $InputObject) { return $null } if ($InputObject -is [System.Collections.IEnumerable] -and $InputObject -isnot [string]) { $collection = @() foreach ($item in $InputObject) { $collection += ConvertTo-HashtableInternal $item } return $collection } if ($InputObject -is [PSCustomObject]) { $hash = @{} foreach ($property in $InputObject.PSObject.Properties) { $hash[$property.Name] = ConvertTo-HashtableInternal $property.Value } return $hash } return $InputObject } } |