title: How to output from a Powershell hashtable to a output file
body: <p>I am trying to get the .NetFramwork version from all the windows servers. I am using powershell script. I can get the output displayed but unable to get the output from the hashtable to a output file. Also how would I get rid of the "..." from VersionDetails : {1.0.3705, 1.1.4322, 2.0.50727, 3.0...} and show the full content.</p>
  
  <p>Any help will be greatly appreciated</p>
  
  <p>here is the code I am using:</p>
  
  <pre><code>$username = "username"
  $password = "Password"
  $secstr = New-Object -TypeName System.Security.SecureString
  $password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
  $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr
  $query = "select name from win32_directory where name like 'c:\\windows\\microsoft.net\\framework\\v%'"
  
  $ComputerNames = Get-Content "d:\Scripts\serverList.txt"
  
  foreach ($ComputerName in $ComputerNames)
     {
  write-host "ComputerName = $ComputerName"
  $ComputerName | ForEach-Object {
  $res = Get-WmiObject -query $query -Credential $cred -ComputerName $ComputerName | ForEach-Object {
  Split-Path $_.name -Leaf } | # returns directories
      Where-Object { $_ -like 'v*' } | # only include those that start with v
          ForEach-Object { [system.version]( $_ -replace "^v" ) }     
  # remove "v" from the string and convert to version object
  
  # Create hashtable with computername and version details
  $prop = @{
      ComputerName = $ComputerName
      #V1_Present = &amp;{ if ( $res | Where-Object { $_.Major -eq 1 -and $_.Minor -eq 0 } ) { $true } }
      #V1_1Present = &amp;{ if ( $res | Where-Object { $_.Major -eq 1 -and $_.Minor -eq 1 } ) { $true } }
      V2_Present = &amp;{ if ( $res | Where-Object { $_.Major -eq 2 -and $_.Minor -eq 0 } ) { $true } }
          V3_Present = &amp;{ if ( $res | Where-Object { $_.Major -eq 3 -and $_.Minor -eq 0 } ) { $true } }
      V3_5Present = &amp;{ if ( $res | Where-Object { $_.Major -eq 3 -and $_.Minor -eq 5 } ) { $true } }
      V4_Present = &amp;{ if ( $res | Where-Object { $_.Major -eq 4 -and $_.Minor -eq 0 } ) { $true } }
      VersionDetails  = $res
  }
  # Create and output PSobject using hashtable
  New-Object PSObject -Property $prop
  }
  
  =========================================================
  Output dispalys
  PS D:\Scripts&gt; .\GetDotNetFrameworkver.ps1
  in for loop ComputerName = XXXXXXX
  V4_Present     : True
  V3_5Present    : True
  V2_Present     : True
  V3_Present     : True
  ComputerName   : XXXXX
  VersionDetails : {1.0.3705, 1.1.4322, 2.0.50727, 3.0...}
  </code></pre>