Powershell - 使用远程处理的启动记录问题

发布于 2024-10-10 16:12:53 字数 1482 浏览 3 评论 0原文

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

$log="TestLog{0:yyyyMMdd-HHmm}" -f (获取日期)$logfile = 'C:\logs\'+$log+'.txt' 开始记录-path $logfile -force Write-host“测试此消息是否被记录” 停止转录

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

********* * Windows PowerShell 脚本 开始 开始 时间:20110105114050 用户名: 域\用户机器:BOX1 (Microsoft Windows NT 5.2.3790 服务 包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 脚本 开始 开始 时间:20110105114201 用户名: 域\用户机器:BOX1 (Microsoft Windows NT 5.2.3790 服务 包 2)

<小时>

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

<小时>

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

谢谢! 桑吉耶夫

I have a file transcript-test.ps1 with below contents

$log="TestLog{0:yyyyMMdd-HHmm}" -f
(Get-Date) $logfile =
'C:\logs\'+$log+'.txt'
Start-transcript -path $logfile -force
Write-host "To test if this message gets logged"
Stop-transcript

I try to run the script from lets say "box1" and the log file contains the below contents

********** Windows PowerShell Transcript Start Start
time: 20110105114050 Username :
domain\user Machine : BOX1
(Microsoft Windows NT 5.2.3790 Service
Pack 2)
********** Transcript started, output file is
C:\logs\TestLog20110105-1140.txt

To test if this message gets logged

********** Windows PowerShell Transcript End End time:
20110105114050


When I run the same script from another machine using below script I don't see any messages in the log file

Invoke-command {powershell.exe
-ExecutionPolicy Unrestricted -NoProfile -File C:\in ll\transcript-test.ps1} -computername
box1 -credential $credential get-credential

Contents of log file :

********** Windows PowerShell Transcript Start Start
time: 20110105114201 Username :
DOMAIN\user Machine : BOX1
(Microsoft Windows NT 5.2.3790 Service
Pack 2)


********** Windows PowerShell Transcript End End time:
20110105114201


Is there anyway to log the messages from the script to log file when invoked remotely ?

Thanks!
Sanjeev

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暖阳 2024-10-17 16:12:53

以下内容将捕获记录中的本地和远程详细消息

$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

The following will capture your local and remote verbose messages in the transcript

$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
執念 2024-10-17 16:12:53

Invoke-command 将代码执行到作业中,据我所知,这是一个没有控制台的线程,因此没有转录。对我来说,你得到的东西绝对是正常的。

Invoke-command execute your code into a job, which is as far as I understant a thread with no console, so no transcription. For me what you got is absolutly normal.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文