如何从Powershellscript获取日志文件
我想将Powershell脚本的所有输入和输出记录到日志文件中。我尝试了一个函数,但我必须在每一行中编写该函数。我已经测试了一个开始的成绩单,我不知道,但我认为这只是错误,它不工作真的很好。 如果我启动脚本以获取所有行的日志,是否有可能 例如:如何从Powershellscript获取日志文件,powershell,Powershell,我想将Powershell脚本的所有输入和输出记录到日志文件中。我尝试了一个函数,但我必须在每一行中编写该函数。我已经测试了一个开始的成绩单,我不知道,但我认为这只是错误,它不工作真的很好。 如果我启动脚本以获取所有行的日志,是否有可能 例如: $u=rene New-AdUser -Name $u ... Write-Hoste "New User ist Create $u" 在我的日志文件中应该包含: 17.01.2018 13:00 $u=rene 17.01.2018 13:00 N
$u=rene
New-AdUser -Name $u ...
Write-Hoste "New User ist Create $u"
在我的日志文件中应该包含:
17.01.2018 13:00 $u=rene
17.01.2018 13:00 New-AdUser -Name $u ...
17.01.2018 13:00 Write-Hoste "New User ist Create $u"
。。。以及其他所有内容(例如错误)如果要记录整个脚本,则可以执行以下操作
@(
$u=rene
New-AdUser -Name $u ...
Write-Hoste "New User ist Create $u"
... Rest of your script
) | Out-file -FilePath \\PathToYourLogFile\Logfile.txt"
这是一种方法。另一种方法是在脚本开头使用Start-Transcript
,然后使用Stop-Transcript
cmdlet结束脚本,并将输出重定向到文本文件。有关详细信息,请参阅和
我发现了一个为脚本创建每日日志的示例(如果您一天运行多次,它只会附加到您的脚本中)。该日志将与脚本位于同一文件夹中,它将清除所有超过15天的日志
$VerbosePreference = "Continue"
$LogPath = Split-Path $MyInvocation.MyCommand.Path
Get-ChildItem "$LogPath\*.log" | Where LastWriteTime -LT (Get-Date).AddDays(-15) | Remove-Item -Confirm:$false
$LogPathName = Join-Path -Path $LogPath -ChildPath "$($MyInvocation.MyCommand.Name)-$(Get-Date -Format 'MM-dd-yyyy').log"
Start-Transcript $LogPathName -Append
然后在脚本末尾,只需添加
Stop-Transcript
是相同的链接。
如果要记录特定的内容,则可以在特定和所需的位置使用
Out File
cmdlet。希望有帮助 如果我使用Transcript,如果他有错误,他只写一个日志,如果我创建了一个没有错误的新用户,那么他在日志中什么也不写。原始脚本更大,它需要在每一行添加输出文件,这是因为如果成功创建用户,则不会遇到错误。如果您也希望在日志中显示该消息,则需要向脚本中添加额外的自定义消息。类似于,write output“User created successfully!”
yes没错,但我将创建一个从开始到结束的日志。从create或success到error的所有消息。