我想将我的Powershell脚本的所有输入和输出记录到日志文件中。我尝试过一个函数,但是我必须在每行编写函数。我用Start-transcript测试它,我不知道,但我认为它仅适用于错误,它不能很好地工作。 有可能,如果我开始我的脚本来获取Log all lines?
例如:
$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"
......以及其他所有内容(例如错误)
答案 0 :(得分:1)
如果你想记录整个脚本,那么你可以做这样的事情
{
"action": Object {
"params": Object {},
"routeName": "ScreenB",
"type": "Navigation/NAVIGATE",
},
"params": Object {},
"routeName": "AllScreens_StackNavigator",
"type": "Navigation/NAVIGATE",
}
这是一种做法。另一种方法是在脚本开头使用@(
$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
cmdlet结束脚本并将输出重定向到文本文件。有关详细信息,请参阅start-transcript和stop-transcript。
我找到了一个示例,它将为您的脚本创建每日日志(如果您每天多次运行它,它只会附加到您拥有的内容)。该日志将与您的脚本位于同一文件夹中,并且它将清除超过15天的任何日志。
Stop-Transcript
然后在脚本结束时,只需添加
$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
Here是相同的链接。
如果要记录特定内容,则可以在特定和所需位置使用Stop-Transcript
cmdlet。希望有所帮助!