Disable-ScheduledJob
停用排程的工作。
語法
Disable-ScheduledJob
[-InputObject] <ScheduledJobDefinition>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Disable-ScheduledJob
[-Id] <Int32>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Disable-ScheduledJob
[-Name] <String>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Disable-ScheduledJob Cmdlet 會暫時停用排程的工作。 停用會保留所有作業屬性,而且不會停用作業觸發程式,但會防止排程工作在觸發時自動啟動。 您可以使用 Start-Job Cmdlet 啟動已停用的排程工作,或使用已停用的排程工作做為範本。
若要停用排程工作,Disable-ScheduledJob Cmdlet 會將排程作業的 Enabled 属性設定為 False ($false)。 若要重新啟用排程工作,請使用 Enable-ScheduledJob Cmdlet。
Disable-ScheduledJob 是 Windows PowerShell 中 PSScheduledJob 模組中作業排程 Cmdlet 的其中一個集合。
如需排程工作的詳細資訊,請參閱 PSScheduledJob 模組中的 About 主題。
匯入 PSScheduledJob 模組,然後輸入:Get-Help about_Scheduled*
或查看about_Scheduled_Jobs。
此 Cmdlet 已在 Windows PowerShell 3.0 中引進。
範例
範例 1:停用排程工作
PS C:\> Disable-ScheduledJob -ID 2 -Passthru
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
2 Inventory {1, 2} \\Srv01\Scripts\Get-FullInventory.ps1 False
此命令會停用本機計算機上標識碼為 2 的排程工作。 輸出會顯示命令的效果。
範例 2:停用所有排程工作
PS C:\> Get-ScheduledJob | Disable-ScheduledJob -Passthru
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
1 ArchiveProje... {} C:\Scripts\Archive-DxProjects.ps1 False
2 Inventory {1, 2} \\Srv01\Scripts\Get-FullInventory.ps1 False
4 Test-HelpFiles {1} .\Test-HelpFiles.ps1 False
5 TestJob {1, 2} .\Run-AllTests.ps1 False
此命令會停用本機計算機上的所有排程工作。 它會使用 Get-ScheduledJob Cmdlet 來取得所有排程的工作,以及 Disable-ScheduledJob Cmdlet 來停用它們。
您可以使用 Enable-ScheduledJob Cmdlet 重新啟用排程工作,並使用 Start-Job Cmdlet 執行已停用的排程工作。
Disable-ScheduledJob 如果您停用已停用的排程工作,則不會產生警告或錯誤,因此您可以在沒有條件的情況下停用所有排程工作。
範例 3:停用選取的排程工作
PS C:\> Get-ScheduledJob | Where-Object {!$_.Credential} | Disable-ScheduledJob
此命令會停用排程工作不包含認證。 沒有認證的作業會以建立認證的用戶許可權執行。
此命令會使用 Get-ScheduledJob Cmdlet 來取得電腦上所有排程的工作。
管線運算符會將排程的工作傳送至 Where-Object Cmdlet,此 Cmdlet 會選取沒有認證的排程作業。
命令會使用 not (!) 運算符,並參考排程作業的 Credential 屬性。
另一個管線運算符會將選取的排程工作傳送至 disable-ScheduledJob Cmdlet
範例 4:停用遠端電腦上的排程工作
PS C:\> Invoke-Command -ComputerName Srv01, Srv10 -ScriptBlock {Disable-ScheduledJob -Name TestJob}
此命令會在兩部遠端電腦上停用 TestJob 排程工作:Srv01 和 Srv10。
此命令會使用 Invoke-Command Cmdlet 在 Srv01 和 Srv10 計算機上執行 Disable-ScheduledJob 命令。 此命令會使用 Disable-ScheduledJobName 參數來選取每部電腦上的 TestJob 排程工作。
範例 5:依其全域標識符停用排程工作
The first command demonstrates one way of finding the GlobalID of a scheduled job. The command uses the Get-ScheduledJob cmdlet to get the scheduled jobs on the computer. A pipeline operator (|) sends the scheduled jobs to the Format-Table cmdlet, which displays the Name, GlobalID, and Command properties of each job in a table.
PS C:\> Get-ScheduledJob | Format-Table -Property Name, GlobalID, Command -Autosize
Name GlobalId Command
---- -------- -------
ArchiveProjects1 a26a0b3d-b4e6-44d3-8b95-8706ef621f7c C:\Scripts\Archive-DxProjects.ps1
Inventory 3ac37e5d-84c0-4a8f-9661-7e88ebb8f914 \\Srv01\Scripts\Get-FullInventory.ps1
Backup-Scripts 4d0cc6be-c082-48d1-baec-1bd8278f3c81 Copy-Item C:\CurrentScripts\*.ps1 -Destination C:\BackupScripts
Test-HelpFiles d77020ca-f20d-42be-86c8-fc64df97db90 .\Test-HelpFiles.ps1
Test-HelpFiles 2f1606d2-c6cf-4bef-8b1c-ae36a9cc9934 .\Test-DomainHelpFiles.ps1
The second command uses the Get-ScheduledJob cmdlet to get the scheduled jobs on the computer. A pipeline operator (|) sends the scheduled jobs to the Where-Object cmdlet, which selects the scheduled job with the specified global ID. Another pipeline operator sends the job to the **Disable-ScheduledJob** cmdlet, which disables it.
PS C:\> Get-ScheduledJob | Where-Object {$_.GlobalID = d77020ca-f20d-42be-86c8-fc64df97db90} | Disable-ScheduledJob
此範例示範如何使用其全域標識碼來停用排程工作。 排程作業的 GlobalID 屬性值是唯一識別碼 (GUID)。 需要有效位數時,請使用 GlobalID 值,例如當您停用多部電腦上的排程工作時。
參數
-Confirm
在執行 Cmdlet 之前,提示您進行確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Id
停用具有指定識別碼 (ID) 的排程工作。 輸入排程工作的識別碼。
類型: | Int32 |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-InputObject
指定要停用的排程工作。 輸入變數,其中包含 ScheduledJobDefinition 物件,或輸入 ScheduledJobDefinition 物件的命令或表達式,例如 Get-ScheduledJob 命令。 您也可以使用管線將 ScheduledJobDefinition 物件傳送至 Disable-ScheduledJob。
類型: | ScheduledJobDefinition |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Name
停用具有指定名稱的排程工作。 輸入排程工作的名稱。 支援通配符。
類型: | String |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-PassThru
會傳回 物件,代表您正在使用的專案。 根據預設,此 Cmdlet 不會產生任何輸出。
類型: | SwitchParameter |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-WhatIf
顯示 Cmdlet 執行時會發生什麼事。 Cmdlet 未執行。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
您可以使用管線將排程工作傳送至 Disable-ScheduledJob。
輸出
None or Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition
如果您使用 Passthru 參數,Disable-ScheduledJob 會傳回已停用的排程工作。 否則,此 Cmdlet 不會產生任何輸出。
備註
- Disable-ScheduledJob 如果您使用它來停用已停用的排程工作,則不會產生警告或錯誤。
相關連結
- about_Scheduled_Jobs
- Add-JobTrigger
- Disable-JobTrigger
- Disable-ScheduledJob
- Enable-JobTrigger
- Enable-ScheduledJob
- Get-JobTrigger
- Get-ScheduledJob
- Get-ScheduledJobOption
- New-JobTrigger
- New-ScheduledJobOption
- Register-ScheduledJob
- Remove-JobTrigger
- Set-JobTrigger
- Set-ScheduledJob
- Set-ScheduledJobOption
- Unregister-ScheduledJob