PowerShell:ConvertFrom Json将多个对象导出到csv
正如您可能从标题中了解到的,我是PowerShell的新手,甚至很难描述我的问题。所以请原谅我的术语 场景 我正在使用PowerShell查询Office 365的审核日志。cmdletPowerShell:ConvertFrom Json将多个对象导出到csv,powershell,logging,office365,audit,Powershell,Logging,Office365,Audit,正如您可能从标题中了解到的,我是PowerShell的新手,甚至很难描述我的问题。所以请原谅我的术语 场景 我正在使用PowerShell查询Office 365的审核日志。cmdletSearch UnifiedAuditLog返回“多组对象”(?),其中一组具有其他对象的数组(?)。如果我没有弄错的话,输出是JSON 下面是一个返回内容的示例(我将其称为一组对象): 现在,我希望将AuditData行的一些内容导出为csv(通常包含比此处复制的数据多得多的数据)。这适用于一组“对象”(如上所
Search UnifiedAuditLog
返回“多组对象”(?),其中一组具有其他对象的数组(?)。如果我没有弄错的话,输出是JSON
下面是一个返回内容的示例(我将其称为一组对象):
现在,我希望将AuditData
行的一些内容导出为csv(通常包含比此处复制的数据多得多的数据)。这适用于一组“对象”(如上所述)。为此,我使用:
$LogOutput = Search-UnifiedAuditLog -StartDate 2/20/2017 -EndDate 2/23/2017 -ResultSize 1
$ConvertedOutput = ConvertFrom-Json -InputObject $LogOutput.AuditData
$ConvertedOutput | Select-Object CreationTime,UserId,ClientIP | Export-Csv -Path "C:\users\some.user\desktop\users.csv
ResultSize
返回1,而不是多个“对象集”。如果我删除ResultSize
,则从Json转换的将不起作用
所以问题是:
我是否可以通过all循环“对象集”并从json转换,并在csv上逐行导出?结果是这样的:
UserId,Activity,UserIP
this@user.com, loggedIn, 10.10.10.10
that@user.org, accessedFile, 11.11.11.11
如果您能给出一个教学方面的答案,我们将不胜感激。非常感谢 不要使用-ResultSize
,尝试使用搜索UnifiedAuditLog |选择对象-ExpandProperty AuditData | ConvertFrom Json
这将仅使AuditData
属性从Json
转发到ConvertFrom Json
,并忽略Search unifieduditlog
中对象的其余部分,而不是-ResultSize
,尝试使用Search unifieduditlog | Select Object-ExpandProperty AuditData | convertfromjson
@Eris你真是个天才!这正是我需要的。现在有一个csv文件,其中包含所有已审核事件,包括烘焙到AuditData对象中的所有详细信息。我试图将你的评论作为一个答案,但意识到我不能这样做。
UserId,Activity,UserIP
this@user.com, loggedIn, 10.10.10.10
that@user.org, accessedFile, 11.11.11.11