title: How do I format the output of my PSObject?
body: <p>I have several websites with each being hosted on their own virtual machine. I am putting together a "living document" that will keep a CSV file updated with certain information for each site.</p>
  
  <p>I have each element compiled and I am getting the information that I want.  However, my objects when exported are displaying not as I would like within the CSV file.</p>
  
  <p>I am getting the <code>System.Object[]</code> for the <code>$module</code> property and then I am getting the <code>@{property1=value1; property2=value2}</code> for <code>$siteversion</code>. I've tried using a few different approaches to change these results but I am seeing no change.</p>
  
  <pre><code>$scriptBlock = [scriptblock]::Create({    
  Import-Module WebAdministration
  
  ###Getting Client Name###
  $licensePath = 'D:\websites\website_Prod\website\license.xml'
  $license = (Get-Content $licensePath) -as [XML]
  $license = $license.software_License
  $license = $license.License
  $clientName = $license.Name    
  
  ###Getting Local Path###
  $localPath = Get-WebApplication website | Select -ExpandProperty PhysicalPath    
  
  ###Getting the URL###
  $URL = Get-ChildItem -path IIS:SSLBindings | Where-Object {$_.Sites -eq "website"}
  $URL = $URL.Host 
  
  ###Getting Security Model###
  $webConfigFilePath = 'D:\websites\website_Prod\website\web.config'
  $webConfigFile = (Get-Content $webConfigFilePath) -as [XML]
  $appSettings = $webConfigFile.configuration.appsettings
  $appSettings = $appSettings.add
  $securityModel = $appSettings | Where-Object {$_.Key -eq "AuthenMode"} | Select-Object -ExpandProperty Value
  
  ###Getting Service Types###    
  $licensePath = 'D:\websites\website_Prod\website\license.xml'
  $license = (Get-Content $licensePath) -as [xml]
  $license = $license.software_License
  $license = $license.License
  $module = $license.Module
  $module = $module | Select -ExpandProperty ModuleName        
  
  ###Getting Certificate Expiration###
  $sslBinding = Get-ChildItem -Path IIS:SSLBindings
  $cert = $sslBinding | ForEach-Object -Process {Get-ChildItem -path Cert:\localMachine\My | Where-Object -Property Thumbprint -eq -Value $_.Thumbprint}
  $expiration = $cert.NotAfter    
  
  ###Getting Site Name###
  $siteNames = Get-ChildItem -Path D:\Websites | Where-Object {$_.Name -notlike "SFTP" -and $_.Name -notlike "wwwroot"} | Select-Object Name
  
  ###Getting Site Versions###
  $siteVersions = @()    
      Foreach($site in $siteNames){
          $app = Get-ChildItem d:\websites | Where-Object {$_.Name -eq $site.Name}
          $app = $app.FullName
          $app = $app + '\website\bin'        
          $dll = Get-ChildItem $app | Where-Object {$_.Name -eq "website.Core.DLL"}
          $version = $dll.VersionInfo | Select-Object -ExpandProperty FileVersion
          $version
          $versionObject = New-Object -TypeName PSObject
          $versionObject | Add-Member -MemberType NoteProperty -Name SiteName -Value $Site.Name
          $versionObject | Add-Member -MemberType NoteProperty -Name Version -Value $version
          $siteVersions += $versionObject        
  
      }#Foreach($site in $siteNames)
  
  $siteInfo = New-Object -TypeName PSObject
  $siteInfo | Add-Member -MemberType NoteProperty -Name ClientName -Value $clientName    
  $siteInfo | Add-Member -MemberType NoteProperty -Name Site -Value $siteVersion     
  $siteInfo | Add-Member -MemberType NoteProperty -Name ServiceTypes -Value $module
  $siteInfo | Add-Member -MemberType NoteProperty -Name URL -Value $URL
  $siteInfo | Add-Member -MemberType NoteProperty -Name LocalPath -Value $localPath
  $siteInfo | Add-Member -MemberType NoteProperty -Name SecurityModel -Value $securityModel
  $siteInfo | Add-Member -MemberType NoteProperty -Name SSLCertExperiation -Value $expiration
  
  $siteInfo | export-csv d:\tmp\test.csv -notypeinformation
  })#ScriptBlock
  $data = Invoke-Command -ComputerName server -ScriptBlock $scriptBlock
  </code></pre>