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>]
   [<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>]
   [<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>]
   [<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 身份验证的替代方法。

例如,这可用于连接到 SQL Azure DB 并使用 SQL Azure Managed InstanceService PrincipalManaged Identity

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

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

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionTimeout

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

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

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

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

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

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

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

Type:String
Accepted values:Mandatory, Optional, Strict
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EndRunDate

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

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostNameInCertificate

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

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

指定SQL Server管理对象 (SMO) 对象的数组,这些对象表示目标SQL Server 代理。

Type:JobServer[]
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-JobID

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

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-JobName

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MinimumRetries

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MinimumRunDurationInSeconds

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OldestFirst

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OutcomesType

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

此参数的可接受值为:

-- 失败 -- 成功 -- 重试 -- 已取消 -- 正在进行 -- 未知

Type:CompletionResult
Accepted values:Failed, Succeeded, Retry, Cancelled, InProgress, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

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

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ServerInstance

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

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Since

指定可以代替 StartRunDate 参数的缩写。

可以使用 EndRunDate 参数指定它。

如果使用此参数,则不能使用 StartRunDate 参数。

此参数的可接受值为:

  • 午夜 (获取午夜后生成的所有作业历史记录信息)
  • 昨天 (获取过去 24 小时内生成的所有作业历史记录信息)
  • LastWeek (获取上周生成的所有作业历史记录信息)
  • LastMonth (获取上个月生成的所有作业历史记录信息)
Type:SinceType
Accepted values:Midnight, Yesterday, LastWeek, LastMonth
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SqlMessageID

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SqlSeverity

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StartRunDate

指定作业筛选器约束,该约束将返回的值限制为作业开始的日期。

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TrustServerCertificate

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

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

System.String[]

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

输出

System.Object