Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Powershellscript获取日志文件_Powershell - Fatal编程技术网

如何从Powershellscript获取日志文件

如何从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

我想将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 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的所有消息。