PowerShell查询AzureADSignInLogs如何展示System.Object类型属性
可以直接在Format-Table中通过计算属性实现嵌套属性的取值展示,不需要额外使用其他方法。
你只需要在Format-Table的列参数中新增一个哈希表结构的计算属性,指定列名和取值逻辑即可,修改后的代码如下:
Get-AzureADAuditSignInLogs | Where-Object{$_.ClientAppUsed -like 'Exchange ActiveSync'} | Format-Table CreatedDateTime, UserPrincipalName, AppDisplayName, ClientAppUsed, @{Name = 'ErrorCode'; Expression = {$_.Status.ErrorCode}}
补充说明
- 计算属性的哈希表中,
Name字段定义你要在表格中显示的列名,Expression字段定义属性的取值规则,直接通过层级调用$_.Status.ErrorCode就能拿到你需要的嵌套字段值,PowerShell会自动适配该字段的类型完成输出。 - 如果你后续还需要展示
Status下的其他字段(比如FailureReason),用同样的规则新增计算属性即可。 - 也可以提前用
Select-Object扩展字段后再做格式化,写法更灵活,还可以把扩展后的结果赋值给变量做后续处理,示例如下:
# 用简写语法(Name可简写成N,Expression可简写成E) Get-AzureADAuditSignInLogs | Where-Object{$_.ClientAppUsed -like 'Exchange ActiveSync'} | Select-Object CreatedDateTime, UserPrincipalName, AppDisplayName, ClientAppUsed, @{N='ErrorCode';E={$_.Status.ErrorCode}} | Format-Table
内容的提问来源于stack exchange,提问作者Secretsec
相关产品推荐
相关产品推荐

