private/Write-Iterate.ps1
<#
.Synopsis Iterate parameter params CREATED BY: Vadim Melamed, EMAIL: vmelamed5@gmail.com .DESCRIPTION Helper function to iterate parameter params #> function Write-Iterate{ [OutputType([bool])] [CmdletBinding()] Param( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,Position=0)] [psobject]$inputval, [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,Position=1)] [int]$counter, [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,Position=2)] [String]$targetLog ) Begin{ } Process{ foreach($key in $inputval.Keys){ $keyval = $inputval.$key if($keyval.Keys){ $timestamp = Get-Date -Format "(MM-dd-yyyy HH:mm:ss)" $outputstr = "$timestamp : " $tempcount = 0 while($tempcount -lt $counter){ $outputstr += "`t" $tempcount += 1 } $outputstr += "$key = @{" write-output $outputstr | Add-Content $targetLog $counter = Write-Iterate -inputval $keyval -counter ($counter + 1) -targetLog $targetLog $counter -= 1 $timestamp = Get-Date -Format "(MM-dd-yyyy HH:mm:ss)" $outputstr = "$timestamp : " $tempcount = 0 while($tempcount -lt $counter){ $outputstr += "`t" $tempcount += 1 } $outputstr += "}" write-output $outputstr | Add-Content $targetLog } else{ $timestamp = Get-Date -Format "(MM-dd-yyyy HH:mm:ss)" $outputstr = "$timestamp : " $tempcount = 0 while($tempcount -lt $counter){ $outputstr += "`t" $tempcount += 1 } $outputstr += "$key = $keyval" write-output $outputstr | Add-Content $targetLog } } return $counter } End{ } } |