start-transcript вызывает сбой скрипта в фоновом режиме - PullRequest
3 голосов
/ 01 октября 2010

Я создаю сценарий powershell в качестве фонового задания, используя start-job, который затем записывает его вывод, используя start-transcript.Ниже приведен код обоих:

a

start-job  -filepath ./b.ps1 -ArgumentList 'test.txt'
wait-job *

b

param([parameter(Mandatory = $true)][string]$logfile)
Set-PSDebug -Strict
$ErrorActionPreference = 'Stop'
start-transcript $logfile

выход./a.ps1

Id              Name            State      HasMoreData     Location             Command                  
--              ----            -----      -----------     --------             -------                  
1               Job1            Running    True            localhost            param...                 
1               Job1            Failed     False           localhost            param...                 
2               Job2            Failed     False           localhost            param...   

Вывод ./b.ps1 -log c: \ test.txt

Transcript started, output file is test.txt
Transcript stopped, output file is C:\test.txt

У меня также естьпровел некоторое тестирование, установив строки «echo here», чтобы убедиться, что линия воспроизводится.

1 Ответ

7 голосов
/ 01 октября 2010

Видимо Start-Transcript не поддерживается в фоновых заданиях. Если вы выполните Receive-Job для просмотра выходных данных скрипта, вы, скорее всего, увидите такую ​​ошибку:

This host does not support transcription.
    + CategoryInfo          : NotImplemented: (:) [Start-Transcript], PSNotSupportedException
    + FullyQualifiedErrorId : NotSupported,Microsoft.PowerShell.Commands.StartTranscriptCommand

КСТАТИ в PowerShell 2.0 Я рекомендую вам переключиться с Set-PSDebug -strict на Set-StrictMode -Version 2.0 - он будет ловить больше потенциальных ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...