Powershell - проблема с Start-transcript с использованием удаленного взаимодействия - PullRequest
0 голосов
/ 05 января 2011

У меня есть файл transcript-test.ps1 с содержимым ниже

$ log = "TestLog {0: yyyyMMdd-HHmm}" -f (Get-Date) $ logfile = 'C:\ logs \ '+ $ log +'. txt 'Start-transcript -path $ logfile -force Write-host "Чтобы проверить, регистрируется ли это сообщение" Stop-transcript

Я пытаюсь запустить скриптfrom позволяет сказать "box1", и файл журнала содержит следующее содержимое

********** Время запуска стенограммы Windows PowerShell Время начала: 20110105114050 Имя пользователя: домен \ пользователь Компьютер: BOX1 (Microsoft Windows NT 5.2.3790 с пакетом обновления 2) ********** Стенограмма запущена, выходной файл C: \ logs \ TestLog20110105-1140.txt

Чтобы проверить, регистрируется ли это сообщение

********** Время окончания транскрипта Windows PowerShell Время окончания: 20110105114050


Когда я запускаю тот же скрипт издругой компьютер, использующий приведенный ниже сценарий. Я не вижу никаких сообщений в файле журнала.

Invoke-команда {powershell.exe -ExecutionPolicy Неограниченно} -computername box1 -credential $ credential get-credential

Содержимое файла журнала:

********** Время запуска стенограммы Windows PowerShell Время запуска: 20110105114201 Имя пользователя: ДОМЕН \ пользователь Компьютер: BOX1 (Microsoft Windows NT 5.2.3790 с пакетом обновления 2 (SP2))


**********Время окончания транскрипта Windows PowerShell: 20110105114201


Есть ли способ записать сообщения из сценария в файл журнала при удаленном вызове?

Спасибо!Санджив

Ответы [ 2 ]

0 голосов
/ 29 апреля 2016

Следующее будет записывать ваши локальные и удаленные подробные сообщения в стенограмме

$VerbosePreference = "continue"
Start-Transcript -path c:\temp\transcript.txt 

Write-Verbose "here 1"

$job = Invoke-Command cbwfdev01 -ScriptBlock {

    $ErrorActionPreference = "Stop";
    $VerbosePreference = "continue";

    Write-Verbose "there 1";
    Write-Verbose "there 2";
    Write-Verbose "there 3";

} -AsJob 

Wait-Job $job | Out-Null

$VerboseMessages = $job.ChildJobs[0].verbose.readall()

ForEach ($oneMessage In $VerboseMessages) {Write-Verbose $oneMessage}

Write-Verbose "here 2"

Stop-Transcript
0 голосов
/ 08 июля 2011

Invoke-команда запускает ваш код в задание, что, насколько я понимаю, поток без консоли, поэтому без транскрипции.Для меня то, что ты получил, абсолютно нормально.

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