当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Get-Job (Microsoft.PowerShell.Core)

作者:精品下载站 日期:2024-12-14 02:15:58 浏览:15 分类:玩电脑

Get-Job (Microsoft.PowerShell.Core)


Get-Job

模块 :Microsoft.PowerShell.Core

获取当前会话中运行的 PowerShell 后台作业。

句法

Get-Job
   [-IncludeChildJob]
   [-ChildJobState <JobState>]
   [-HasMoreData <Boolean>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Newest <Int32>]
   [[-Id] <Int32[]>]
   [<CommonParameters>]
Get-Job
   [-IncludeChildJob]
   [-ChildJobState <JobState>]
   [-HasMoreData <Boolean>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Newest <Int32>]
   [-InstanceId] <Guid[]>
   [<CommonParameters>]
Get-Job
   [-IncludeChildJob]
   [-ChildJobState <JobState>]
   [-HasMoreData <Boolean>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Newest <Int32>]
   [-Name] <String[]>
   [<CommonParameters>]
Get-Job
   [-IncludeChildJob]
   [-ChildJobState <JobState>]
   [-HasMoreData <Boolean>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Newest <Int32>]
   [-State] <JobState>
   [<CommonParameters>]
Get-Job
   [-IncludeChildJob]
   [-ChildJobState <JobState>]
   [-HasMoreData <Boolean>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Newest <Int32>]
   [-Command <String[]>]
   [<CommonParameters>]
Get-Job
   [-Filter] <Hashtable>
   [<CommonParameters>]

描述

Get-Job cmdlet 获取表示当前会话中启动的后台作业的对象。您可以使用 Get-Job 获取通过使用 Start-Job cmdlet 或使用任何 cmdlet 的 AsJob 参数启动的作业。

如果没有参数,Get-Job 命令会获取当前会话中的所有作业。您可以使用Get-Job的参数来获取特定的作业。

Get-Job 返回的作业对象包含有关作业的有用信息,但不包含作业结果。要获取结果,请使用 Receive-Job cmdlet。

Windows PowerShell 后台作业是在后台运行而不与当前会话交互的命令。通常,您使用后台作业来运行需要很长时间才能完成的复杂命令。有关 Windows PowerShell 中后台作业的详细信息,请参阅 about_Jobs。

从 Windows PowerShell 3.0 开始,Get-Job cmdlet 还获取自定义作业类型,例如工作流作业和计划作业的实例。要查找作业的作业类型,请使用作业的 PSJobTypeName 属性。

要使 Get-Job 能够获取自定义作业类型,请在运行 Get-Job 命令之前将支持自定义作业类型的模块导入到会话中,方法是使用Import-Module cmdlet 或通过使用或获取模块中的 cmdlet。有关特定自定义作业类型的信息,请参阅自定义作业类型功能的文档。

示例

示例 1:获取当前会话中启动的所有后台作业

此命令获取当前会话中启动的所有后台作业。它不包括在其他会话中创建的作业,即使作业在本地计算机上运行也是如此。

Get-Job

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
1      Job1            BackgroundJob   Completed     True            localhost             $env:COMPUTERNAME

示例 2:使用实例 ID 停止作业

这些命令展示了如何获取作业的实例 ID,然后使用它来停止作业。与作业名称不唯一不同,实例 ID 是唯一的。

第一个命令使用 Get-Job cmdlet 来获取作业。它使用名称参数来标识作业。该命令将 Get-Job 返回的作业对象存储在 $j 变量中。在此示例中,只有一项具有指定名称的作业。第二个命令获取 $j 变量中对象的 InstanceId 属性,并将其存储在 $ID 变量中。第三个命令显示 $ID 变量的值。第四条命令使用 Stop-Job cmdlet 来停止作业。它使用 InstanceId 参数来标识作业,并使用 $ID 变量来表示作业的实例 ID。

$j = Get-Job -Name Job1
$ID = $j.InstanceID
$ID

Guid
----
03c3232e-1d23-453b-a6f4-ed73c9e29d55

Stop-Job -InstanceId $ID

示例 3:获取包含特定命令的作业

此命令获取系统上包含 Get-Process 命令的作业。该命令使用 Get-JobCommand 参数来限制检索的作业。该命令使用通配符 (*) 来获取在命令字符串中任意位置包含 Get-Process 命令的作业。

Get-Job -Command "*Get-Process*"

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
3      Job3            BackgroundJob   Running       True            localhost            Get-Process

示例4:使用管道获取包含特定命令的作业

与前面示例中的命令类似,此命令获取系统上包含 Get-Process 命令的作业。该命令使用管道运算符 (|) 将带有 NoteProperty Command 的 PSCustomObject 发送到 Get-Job cmdlet。它相当于前面的命令。

[pscustomobject]@{Command='*Get-Process*'} | Get-Job

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
3      Job3            BackgroundJob   Running       True            localhost            Get-Process

示例5:获取尚未开始的作业

此命令仅获取那些已创建但尚未启动的作业。这包括计划在未来运行的作业和尚未计划的作业。

Get-Job -State NotStarted

示例 6:获取尚未分配名称的作业

此命令获取作业名称以 job 开头的所有作业。由于 job 财产。有关详细信息,请输入 Get-Help Receive-Job

HasMoreData 属性特定于当前会话。如果自定义作业类型的结果保存在会话外部(例如计划作业类型,它将作业结果保存在磁盘上),您可以在不同的会话中使用 Receive-Job cmdlet 来获取即使 HasMoreData 的值为 $False,作业也会再次结果。有关详细信息,请参阅自定义作业类型的帮助主题。

此参数是在 Windows PowerShell 3.0 中引入的。

类型 :

布尔值

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Id

指定此 cmdlet 获取的作业 ID 数组。

ID 是一个整数,唯一标识当前会话中的作业。它比实例 ID 更容易记住和输入,但它仅在当前会话中是唯一的。您可以键入一个或多个 ID,并用逗号分隔。要查找作业的 ID,请键入不带参数的 Get-Job

类型 :

Int32[]

位置:

0

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-IncludeChildJob

指示此 cmdlet 除了父作业之外还返回子作业。

此参数对于调查工作流作业(Get-Job 返回容器父作业)和作业失败特别有用,因为失败的原因保存在子作业的属性中。

此参数是在 Windows PowerShell 3.0 中引入的。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-InstanceId

指定此 cmdlet 获取的作业的实例 ID 数组。默认为所有作业。

实例 ID 是唯一标识计算机上作业的 GUID。要查找作业的实例 ID,请使用 Get-Job

类型 :

指导[]

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-Name

指定此 cmdlet 获取的作业的实例友好名称数组。输入作业名称,或使用通配符输入作业名称模式。默认情况下,Get-Job 获取当前会话中的所有作业。

类型 :

String[]

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

True

-Newest

指定要获取的作业数量。此 cmdlet 获取最近结束的作业。

Newest 参数不会按结束时间顺序对最新作业进行排序或返回。要对输出进行排序,请使用 Sort-Object cmdlet。

此参数是在 Windows PowerShell 3.0 中引入的。

类型 :

整数32

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-State

指定作业状态。此 cmdlet 仅获取指定状态的作业。该参数可接受的值为:

  • NotStarted
  • 跑步
  • 完全的
  • 失败的
  • 已停止
  • 被阻止
  • 暂停
  • 已断开连接
  • 暂停
  • 停止

默认情况下,Get-Job 获取当前会话中的所有作业。

有关作业状态的更多信息,请参阅 JobState 枚举。

类型 :

JobState

接受的值:

未启动、正在运行、已完成、失败、已停止、已阻止、已挂起、已断开连接、挂起、正在停止、AtBreakpoint

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

输入

您无法将对象通过管道传输到此 cmdlet。

输出

System.Management.Automation.RemotingJob

此 cmdlet 返回表示会话中作业的对象。

笔记

PowerShell 包含以下 Get-Job 别名:

  • 所有平台:

      gjb

    作业的PSJobTypeName属性指示作业的作业类型。属性值由作业类型作者确定。以下列表显示了常见的作业类型。

    • 后台作业。使用 Start-Job 启动本地作业。
    • 远程作业。使用 Invoke-Command cmdlet 的 AsJob 参数在 PSSession 中启动作业。
    • PSWorkflowJob。作业通过工作流的AsJob通用参数启动。

    您需要 登录账户 后才能发表评论

    取消回复欢迎 发表评论:

    关灯