Read-SqlXEvent

从 XEL 文件或实时 SQL XEvent 会话读取 SQL Server XEvent。

语法

Read-SqlXEvent
    [-FileName] <String>
    [-ProgressAction <ActionPreference>]
    [<CommonParameters>]
Read-SqlXEvent
    -ConnectionString <String>
    -SessionName <String>
    [-ProgressAction <ActionPreference>]
    [<CommonParameters>]

说明

Read-SqlXEvent 从文件或实时 SQL XEvent 会话中读取 SQL Server XEvent。 XEvent 会话由 CREATE EVENT SESSION Transact-SQL API 创建。 SQL XEvent 文件通常具有 .XEL 或 .sqlaudit 扩展并包含 XEvents 流。 XEvents 的结构在会话配置中定义。 SQL 实时流通过 SQL TDS 协议提供,需要对生成它们的服务器进行身份验证。

New in v22: if you are using the -ConnectionString parameter, you may get an error like "The certificate chain was issued by an authority that is not trusted." This is because the new SQL driver changed its default to something more secure. Either make sure you configure your server properly, or install/trust the certificate; alternatively (not recommended), you can pass Encrypt=Optional or TrustServerCertificate=true in the connection string to go back to the behavior that existed in v21 of the module.

示例

示例 1:读取和分析 sqlaudit 文件。 返回的每个对象将包含单个审核记录中的所有信息。

Read-SqlXEvent -FileName C:\audits\Audit-20190529-132659.sqlaudit

# The output would look like this:
#
# Name      : audit_event
# UUID      : c6479a6f-f1bd-4759-9881-fcb493821aff
# Timestamp : 6/13/2019 7:49:42 AM +00:00
# Fields    : {[audit_schema_version, 1], [event_time, 6/13/2019 7:49:42 AM +00:00], [sequence_number, 1], [action_id,
#             1129534785]...}
# Actions   : {}
#
# Name      : audit_event
# UUID      : c6479a6f-f1bd-4759-9881-fcb493821aff
# Timestamp : 6/13/2019 12:42:28 PM +00:00
# Fields    : {[audit_schema_version, 1], [event_time, 6/13/2019 12:42:28 PM +00:00], [sequence_number, 1], [action_id,
#             1129534785]...}
# Actions   : {}
# ...

示例 2:从连接到 Windows 身份验证的同一台计算机上运行的 SQL Server 读取和分析 XEvent 的实时流。 返回的每个对象将包含单个 XEvent 记录中的所有信息。

Read-SQLXEvent -ConnectionString "Server=.;Database=master;Trusted_Connection=True" -SessionName telemetry_xevents

# The output would look like this:
#
# Name      : auto_stats
# UUID      : 9237e17a-a73d-4832-8936-f319e19e219b
# Timestamp : 11/14/2022 5:31:12 AM +00:00
# Fields    : {[database_id, 1], [object_id, 74], [index_id, 1], [job_id, 0]…}
# Actions   : {}
# 
# Name      : auto_stats
# UUID      : 9237e17a-a73d-4832-8936-f319e19e219b
# Timestamp : 11/14/2022 5:31:12 AM +00:00
# Fields    : {[database_id, 1], [object_id, 74], [index_id, 17], [job_id, 0]…}
# Actions   : {}
# ...

参数

-ConnectionString

SQL Server 连接字符串。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-FileName

要读取的 XEvent 文件的文件名。

类型:String
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-ProgressAction

确定 PowerShell 如何响应脚本、cmdlet 或提供程序生成的进度更新,例如由 Write-Progress cmdlet 生成的进度栏。 Write-Progress cmdlet 创建显示命令状态的进度栏。

类型:ActionPreference
别名:proga
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SessionName

CREATE EVENT SESSION Transact-SQL 定义的 SQL Server XEvent 会话名称。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

输入

System.String

输出

Microsoft.SqlServer.XEvent.XELite.IXEvent