【发布时间】:2019-05-08 10:03:39
【问题描述】:
我正在尝试使用 Get-WinEvent Powershell cmdlet 导出 Windows 日志。以下将为我提供我正在寻找的时间精度,但这只会让我获得时间戳。我需要将时间戳加入到包含机器名称、事件 ID 等的其他列中。
此代码为我提供准确的时间戳。
Get-WinEvent -LogName Application -MaxEvents 10 | Select-Object -Expand TimeCreated | ForEach-Object {
$date = [DateTime]$_
$date.ToString("yyyy-MM-dd HH:mm:ss")}
输出看起来像我想要的这样:
2018-12-06 08:52:28
2018-12-06 08:52:28
2018-12-06 08:51:32
2018-12-06 08:51:31
2018-12-06 08:51:31
2018-12-06 08:51:31
2018-12-06 08:51:31
2018-12-06 08:51:31
2018-12-06 08:51:31
2018-12-06 08:44:16
但我需要输出包含精确时间以及 MachineName、EventID、LevelDisplayName、Message 等内容。所以在下面的命令中,我想插入精确时间,而不是“TimeCreated”。
Get-WinEvent -LogName Application -MaxEvents 10 | Select-Object TimeCreated,Machinename,Id,LevelDisplayName,Message,Logname | ft
谢谢!
【问题讨论】:
-
不必要的命令
| Select-Object -Expand TimeCreated排除了所有其他属性,只需将其删除即可。要获得 TimeCreated 的确切格式,请使用计算属性(它就在那里,但可能会由于输出时未知的语言环境设置而被剥离)
标签: powershell timestamp get-eventlog get-winevent