title: Write-Output inside Invoke-Command scriptblock
body: <p>Below is a script I'm working on to get all SQL-jobs into a CSV-file.
  The script itself is working great but I have trouble with the error-handling.
  I can't figure out how to get the Out-File inside the Catch-block to print to the file on my local machine instead of the remote machine I'm running the Invoke-Command to.
  How do I accomplish this?</p>
  
  <p>Thanks</p>
  
  <p>PS. The script is written out fully as much as possible for non experienced co-workers convenience</p>
  
  <pre><code>$sqlServers = @("TEST1","TEST2")
  
  $filePath = [Environment]::GetFolderPath("Desktop")
  
  $dateToday = Get-Date -Format “yyMMdd HH:mm"
  $dateTodayFile = Get-Date -Format “yyMMdd"
  
  Write-Output "$dateToday $sqlServers" |
      Out-File "$filePath\Log$dateTodayFile.txt" -Append
  
  $output = Invoke-Command -ComputerName $sqlServers -ScriptBlock{
  
      Try
      {
          Import-Module sqlserver -ErrorAction Stop
      }
      Catch
      {
          Write-Output "$dateToday ERROR $env:computername" |
              Out-File "$filePath\Log$dateTodayFile.txt" -Append
          Exit
      }
      $instances = $env:computername | Foreach-Object {Get-ChildItem -Path "SQLSERVER:\SQL\$_"}
  
      ForEach ($instance in $instances){
  
          Try
          {
          $instanceName = $instance.InstanceName
          Get-SqlAgentJob -ServerInstance "$env:computername\$instanceName" -ErrorAction Stop |
              Where-Object {$_.IsEnabled -eq "True" -and $_.LastRunDate -gt [DateTime]::Today.AddDays(-2) -and $_.OwnerLoginName -match "TEST"} |
                  Select-Object @{Name=‘Job name‘;Expression={$_.Name}},
                      @{Name=‘Description‘;Expression={$_.Description}},
                      @{Name=‘Instance‘;Expression={$_.Parent -Replace '[][]'}},
                      @{Name=‘Run outcome‘;Expression={$_.LastRunOutcome}},
                      @{Name=‘Run date‘;Expression={$_.LastRunDate}},
                      @{Name=‘Run duration‘;Expression={$_.LastRunDuration}},
                      @{Name=‘Job creator‘;Expression={$_.OwnerLoginName}},
                      @{Name=‘Runs on a schedule‘;Expression={$_.HasSchedule}},
                      @{Name='Schedule Type';Expression={$_.JobSchedules -join ','}}
          }
          Catch
          {
              Write-Output "$dateToday ERROR $env:computername\$instanceName" |
                  Out-File "$filePath\Log$dateTodayFile.txt" -Append
              Exit
          }
      }
  }
  $output | Select-Object -Property * -ExcludeProperty PSComputerName,RunSpaceID,PSShowComputerName |
      Sort-Object "Job name" |
          Export-Csv $filePath\SQLJobInvent$dateTodayFile.csv -NoTypeInformation -Delimiter ";" -Encoding UTF8
  
  Write-Output "$dateToday $filePath" |
      Out-File "$filePath\Log$dateTodayFile.txt" -Append
  Write-Output "----------------------------------------" |
      Out-File "$filePath\Log$dateTodayFile.txt" -Append
  </code></pre>