在事件查看器中,我在 CSV 导出中查找的字段名称是“帐户名称:”,但是,该字段不会显示在导出中,但如果运行“PowerShell 中的结果”脚本,则会显示。
PowerShell 中的结果:
Get-EventLog -LogName Security| Select-Object -Property * | Select -first 10
CSV 导出脚本:
Get-EventLog -LogName Security | Select-Object -Property * | Export-Csv -Path C:\Export.csv
我想要实现的是提取文件共享上的用户活动报告。
应用计算的属性:
多个 PowerShell cmdlet 转换、分组或处理输入对象 使用允许添加新的参数到输出对象中 这些输出对象的属性。您可以使用这些参数 根据输出对象生成新的计算属性 输入对象的值。计算属性定义为 包含指定新名称的键值对的哈希表 属性,计算值的表达式,可选 格式化信息。
特别是,您可以使用计算属性通过
Select-Object
cmdlet 将其他成员添加到对象输出中,例如如下:
#Requires -RunAsAdministrator
Get-EventLog -LogName Security |
Select-Object -Property @{
name = 'AccoutName';
expr = {($_.Message -split [System.Environment]::NewLine |
Select-String 'Account Name:' -SimpleMatch |
Select-Object -ExpandProperty Line
).Split( ':').Trim()[-1]
} }, * |
Select-Object -First 2 # optional to reduce output
但是,某些输出字段(例如
Data
或 ReplacementStrings
)Export-Csv
显示为 System.Byte[]
、System.String[]
,甚至 System.Object[]
等。请参阅本文:避免 System.Object[]
(或类似输出) )当使用Export-Csv
…