0

我有一个包含以下内容的文件 transcript-test.ps1

$log="TestLog{0:yyyyMMdd-HHmm}" -f (Get-Date) $logfile = 'C:\logs\'+$log+'.txt' Start-transcript -path $logfile -force Write-host "测试此消息是否被记录“停止成绩单

我尝试从“box1”运行脚本,日志文件包含以下内容

** * ** * ** * * Windows PowerShell 脚本开始时间:20110105114050 用户名:域\用户机器:BOX1(Microsoft Windows NT 5.2.3790 Service Pack 2) * ** * ** * ** *脚本开始,输出文件是 C:\logs\TestLog20110105-1140.txt

测试此消息是否被记录

** * ** * ** ** Windows PowerShell 脚本结束时间:20110105114050


当我使用以下脚本从另一台机器运行相同的脚本时,我在日志文件中看不到任何消息

调用命令 {powershell.exe -ExecutionPolicy Unrestricted -NoProfile -File C:\in ll\transcript-test.ps1} -computername box1 -credential $credential get-credential

日志文件内容:

** * ** * ** * * Windows PowerShell Transcript Start 开始时间:20110105114201 用户名:DOMAIN\user 机器:BOX1(Microsoft Windows NT 5.2.3790 Service Pack 2)


** * ** * ** ** Windows PowerShell 脚本结束时间:20110105114201


远程调用时是否有将脚本中的消息记录到日志文件?

谢谢!桑吉夫

4

2 回答 2

1

以下将在脚本中捕获您的本地和远程详细消息

$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
于 2016-04-29T15:10:01.620 回答
0

调用命令将您的代码执行到一个作业中,据我所知,这是一个没有控制台的线程,所以没有转录。对我来说,你得到的绝对是正常的。

于 2011-07-08T18:27:11.263 回答