Get-SqlAgentJobHistory

获取 SQL 代理的目标实例中存在的作业历史记录。

语法

Get-SqlAgentJobHistory
   [-StartRunDate <DateTime>]
   [-EndRunDate <DateTime>]
   [-JobID <Guid>]
   [-JobName <String>]
   [-MinimumRetries <Int32>]
   [-MinimumRunDurationInSeconds <Int32>]
   [-OldestFirst]
   [-OutcomesType <CompletionResult>]
   [-SqlMessageID <Int32>]
   [-SqlSeverity <Int32>]
   [-Since <SinceType>]
   [[-Path] <String[]>]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [<CommonParameters>]
Get-SqlAgentJobHistory
   [-StartRunDate <DateTime>]
   [-EndRunDate <DateTime>]
   [-JobID <Guid>]
   [-JobName <String>]
   [-MinimumRetries <Int32>]
   [-MinimumRunDurationInSeconds <Int32>]
   [-OldestFirst]
   [-OutcomesType <CompletionResult>]
   [-SqlMessageID <Int32>]
   [-SqlSeverity <Int32>]
   [-Since <SinceType>]
   [[-ServerInstance] <String[]>]
   [-Credential <PSCredential>]
   [-ConnectionTimeout <Int32>]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [<CommonParameters>]
Get-SqlAgentJobHistory
   [-StartRunDate <DateTime>]
   [-EndRunDate <DateTime>]
   [-JobID <Guid>]
   [-JobName <String>]
   [-MinimumRetries <Int32>]
   [-MinimumRunDurationInSeconds <Int32>]
   [-OldestFirst]
   [-OutcomesType <CompletionResult>]
   [-SqlMessageID <Int32>]
   [-SqlSeverity <Int32>]
   [-Since <SinceType>]
   [-InputObject] <JobServer[]>
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [<CommonParameters>]

说明

Get-SqlAgentJobHistory cmdlet 获取 SQL 代理的目标实例中存在的 JobHistory 对象。

此 cmdlet 支持以下操作模式来获取 JobHistory 对象:

  • 指定 SQL 代理实例的路径。
  • 在输入中传递 SQL 代理的实例。
  • 在有效上下文中调用 cmdlet。

示例

示例 1:从指定的服务器实例获取整个作业历史记录

PS C:\> Get-SqlAgentJobHistory -ServerInstance "MyServerInstance" | Format-Table

InstanceID SqlMessageID Message
---------- ------------ -------
        34            0 The job succeeded.  The Job was invoked by Schedule 8 (syspolicy_purge_history_schedule).  T... 
        33            0 Executed as user: DOMAIN\Machine1$. The step did not generate any output.  Process Exit

此命令获取名为 MyServerInstance 的服务器实例中的整个作业历史记录,然后设置输出的格式。

示例 2:从指定的服务器实例获取作业历史记录

PS C:\> Get-SqlAgentJobHistory -ServerInstance "MyServerInstance" -JobID 187112d7-84e1-4b66-b093-e97201c441ed

JobID            : 187112d7-84e1-4b66-b093-e97201c441ed
JobName          : Job_73cc6990-6386-49f9-9826-96c318ad8afa
RunStatus        : 3

此命令获取名为“MyServerInstance”的服务器实例中 ID 为“187112d7-84e1-4b66-b093-e97201c441ed”的作业对象的作业历史记录。

示例 3:从指定服务器实例的持续时间获取作业历史记录

PS C:\> Get-SqlAgentJobHistory -ServerInstance "MyServerInstance" -Since Yesterday
InstanceID       : 4
SqlMessageID     : 0
Message          : The job was stopped prior to completion by User admin.  The Job was invoked by User
                   admin.  The last step to run was step 1 (JobStep_3e4cd4ba-3433-4311-a6a2-816884101504).

此命令返回自前一天在服务器实例中名为“MyServerInstance”的作业历史记录。

参数

-AccessToken

用于向 SQL Server 进行身份验证的访问令牌,作为用户/密码或 Windows 身份验证的替代方法。

例如,这可用于使用 Service PrincipalManaged Identity连接到 SQL Azure DBSQL Azure Managed Instance

要使用的参数可以是表示令牌的字符串,也可以是运行 Get-AzAccessToken -ResourceUrl https://database.windows.net返回的 PSAccessToken 对象。

此参数是模块 v22 中的新增参数。

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

-ConnectionTimeout

指定在超时失败之前等待服务器连接的秒数。 超时值必须是介于 0 和 65534 之间的整数值。 如果指定了 0,则连接尝试不会超时。

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

-Credential

指定一个 PSCredential 对象,该对象用于指定有权执行此操作的 SQL Server 登录名的凭据。

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

-Encrypt

连接到 SQL Server 时要使用的加密类型。

此值映射到 Microsoft.Data.SqlClient 驱动程序的 SqlConnection 对象的 Encrypt 属性 SqlConnectionEncryptOption

在模块的 v22 中,默认为 Optional(为了与 v21 兼容)。 在模块的 v23+ 中,默认值为“必需”,这可能会为现有脚本创建中断性变更。

此参数是模块 v22 中的新增参数。

类型:String
接受的值:Mandatory, Optional, Strict
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-EndRunDate

指定一个作业筛选器约束,该约束将返回的值限制为作业完成日期。

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

-HostNameInCertificate

用于验证 SQL Server TLS/SSL 证书的主机名。 如果为强制加密启用了 SQL Server 实例,并且想要使用主机名/shortname 连接到实例,则必须传递此参数。 如果省略此参数,则必须将完全限定域名(FQDN)传递给 -ServerInstance 才能连接到为强制加密启用的 SQL Server 实例。

此参数是模块 v22 中的新增参数。

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

-InputObject

指定表示所针对 SQL Server 代理的 SQL Server 管理对象(SMO)对象的数组。

类型:JobServer[]
Position:1
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-JobID

指定一个作业筛选器约束,该约束将返回的值限制为作业 ID 值指定的作业。

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

-JobName

指定一个作业筛选器约束,该约束将返回的值限制为作业名称指定的作业。

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

-MinimumRetries

指定作业筛选器约束,该约束将返回的值限制为已失败并重试的作业的最小次数。

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

-MinimumRunDurationInSeconds

指定作业筛选器约束,该约束将返回的值限制为指定的最短时间长度(以秒为单位)完成的作业。

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

-OldestFirst

指示此 cmdlet 按最早优先顺序列出作业。 如果未指定此参数,则 cmdlet 使用最新的优先顺序。

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

-OutcomesType

指定作业筛选器约束,该约束将返回的值限制为在完成时具有指定结果的作业。

此参数的可接受值为:

-- 失败 -- 成功 -- 重试 -- 已取消 -- InProgress -- 未知

类型:CompletionResult
接受的值:Failed, Succeeded, Retry, Cancelled, InProgress, Unknown
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Path

将 SQL Server 代理的路径指定为运行操作的数组。 如果未为此参数指定值,cmdlet 将使用当前工作位置。

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

-ProgressAction

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

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

-ServerInstance

将 SQL Server 实例的名称指定为运行 SQL 代理的数组。 对于默认实例,仅指定计算机名称:MyComputer。 对于命名实例,请使用 ComputerName\InstanceName 格式。

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

-Since

指定一个缩写,可以代替 StartRunDate 参数。

可以使用 EndRunDate 参数指定它。

如果使用此参数,则无法使用 StartRunDate 参数。

此参数的可接受值为:

  • 午夜(获取午夜后生成的所有作业历史记录信息)
  • 昨天(获取过去 24 小时内生成的所有作业历史记录信息)
  • LastWeek (获取上周生成的所有作业历史记录信息)
  • LastMonth (获取上个月生成的所有作业历史记录信息)
类型:SinceType
接受的值:Midnight, Yesterday, LastWeek, LastMonth
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SqlMessageID

指定作业筛选器约束,该约束将返回的值限制为在运行时生成指定消息的作业。

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

-SqlSeverity

指定作业筛选器约束,该约束将返回的值限制为在运行时生成指定严重性错误的作业。

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

-StartRunDate

指定一个作业筛选器约束,该约束将返回的值限制为作业启动日期。

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

-TrustServerCertificate

指示通道是否在绕过证书链以验证信任的同时进行加密。

在模块的 v22 中,默认为 $true(为了与 v21 兼容)。 在模块的 v23+ 中,默认值将为“$false”,这可能会为现有脚本创建中断性变更。

此参数是模块 v22 中的新增参数。

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

输入

System.String[]

Microsoft.SqlServer.Management.Smo.Agent.JobServer[]

输出

System.Object