New-ScheduledJobOption

スケジュールされたジョブの詳細オプションを格納するオブジェクトを作成します。

構文

New-ScheduledJobOption
   [-RunElevated]
   [-HideInTaskScheduler]
   [-RestartOnIdleResume]
   [-MultipleInstancePolicy <TaskMultipleInstancePolicy>]
   [-DoNotAllowDemandStart]
   [-RequireNetwork]
   [-StopIfGoingOffIdle]
   [-WakeToRun]
   [-ContinueIfGoingOnBattery]
   [-StartIfOnBattery]
   [-IdleTimeout <TimeSpan>]
   [-IdleDuration <TimeSpan>]
   [-StartIfIdle]
   [<CommonParameters>]

説明

New-ScheduledJobOption コマンドレットは、スケジュールされたジョブの詳細オプションを格納するオブジェクトを作成します。

New-ScheduledJobOption から返された ScheduledJobOptions オブジェクトを使用して、新しいまたは既存のスケジュールされたジョブのジョブ オプションを設定できます。 または、ジョブ オプションを設定するには、Get-ScheduledJobOption コマンドレットを使用して、既存のスケジュールされたジョブのジョブ オプションを取得するか、ハッシュ テーブル値を使用してジョブ オプションを表します。

パラメーターがない場合、 New-ScheduledJobOption は、すべてのオプションの既定値を含むオブジェクトを生成します。 JobDefinition プロパティを除くすべてのプロパティを編集できるため、結果のオブジェクトをテンプレートとして使用し、企業の標準のオプション オブジェクトを作成することができます。

スケジュールされたジョブを作成し、スケジュールされたジョブのオプションを設定する際は、スケジュールされたジョブのすべてのオプションの既定値を確認してください。 スケジュールされたジョブは、設定されている実行条件をすべて満たした場合にのみ実行されます。

New-ScheduledJobOption は、Windows PowerShellに含まれる PSScheduledJob モジュール内のジョブ スケジューリング コマンドレットのコレクションの 1 つです。

スケジュールされたジョブの詳細については、PSScheduledJob モジュールの概要トピックを参照してください。 PSScheduledJob モジュールをインポートし、次 Get-Help about_Scheduled* のように入力するか、about_Scheduled_Jobsを参照してください。

このコマンドレットは、Windows PowerShell 3.0 で導入されました。

例 1: 既定値を使用してスケジュールされたジョブ オプション オブジェクトを作成する

PS C:\> New-ScheduledJobOption
StartIfOnBatteries     : False
StopIfGoingOnBatteries : True
WakeToRun              : False
StartIfNotIdle         : True
StopIfGoingOffIdle     : False
RestartOnIdleResume    : False
IdleDuration           : 00:10:00
IdleTimeout            : 01:00:00
ShowInTaskScheduler    : True
RunElevated            : False
RunWithoutNetwork      : True
DoNotAllowDemandStart  : False
MultipleInstancePolicy : Ignore
NewJobDefinition       :

このコマンドは、スケジュールされたジョブの、すべて既定値のオプション オブジェクトを作成します。

例 2: カスタム値を使用してスケジュールされたジョブ オプション オブジェクトを作成する

PS C:\> New-ScheduledJobOption -RequireNetwork -StartIfOnBattery
StartIfOnBatteries     : True
StopIfGoingOnBatteries : True
WakeToRun              : False
StartIfNotIdle         : True
StopIfGoingOffIdle     : False
RestartOnIdleResume    : False
IdleDuration           : 00:10:00
IdleTimeout            : 01:00:00
ShowInTaskScheduler    : True
RunElevated            : False
RunWithoutNetwork      : False
DoNotAllowDemandStart  : False
MultipleInstancePolicy : Ignore
NewJobDefinition       :

次のコマンドは、ネットワークを必要とし、コンピューターが AC 電源に接続されていない場合でもスケジュールされたジョブを実行するスケジュールされたジョブのオブジェクトを作成します。

出力は、 RequireNetwork パラメーターが RunWithoutNetwork プロパティの値を$Falseに変更し、 StartIfOnBattery パラメーターが StartIfOnBatteries プロパティの値を$Trueに変更したことを示しています。

例 3: 新しいスケジュールされたジョブのオプションを設定する

The first command creates a **ScheduledJobOptions** object with the *RunElevated* parameter. It saves the object in the $RunAsAdmin variable.
PS C:\> $RunAsAdmin = New-ScheduledJobOption -RunElevated

The second command uses the Register-ScheduledJob cmdlet to create a new scheduled job. The value of the *ScheduledJobOption* parameter is the option object in the value of the $RunAsAdmin variable.
PS C:\> Register-ScheduledJob -Name Backup -FilePath D:\Scripts\Backup.ps1 -Trigger $Mondays -ScheduledJobOption $RunAsAdmin

The third command uses the Get-ScheduledJobOption cmdlet to get the job options of the Backup scheduled job.The cmdlet output shows that the RunElevated property is set to $True and the JobDefinition property of the job option object is now populated with the scheduled job object for the Backup scheduled job.
PS C:\> Get-ScheduledJobOption -Name Backup
StartIfOnBatteries     : False
StopIfGoingOnBatteries : True
WakeToRun              : False
StartIfNotIdle         : True
StopIfGoingOffIdle     : False
RestartOnIdleResume    : False
IdleDuration           : 00:10:00
IdleTimeout            : 01:00:00
ShowInTaskScheduler    : True
RunElevated            : True
RunWithoutNetwork      : True
DoNotAllowDemandStart  : False
MultipleInstancePolicy : IgnoreNew
JobDefinition          : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

この例では、New-ScheduledJobOption から返された ScheduledJobOptions オブジェクトを使用して、スケジュールされた新しいジョブのオプションを設定する方法を示します。

例 4: スケジュールされたジョブ オプション オブジェクトのプロパティを並べ替える

PS C:\> $Options = New-ScheduledJobOption -WakeToRun
PS C:\> $Options.PSObject.Properties | Sort-Object -Property Name | Format-Table -Property Name, Value -Autosize
Name                       Value
----                       -----
DoNotAllowDemandStart      False
IdleDuration            00:10:00
IdleTimeout             01:00:00
JobDefinition
MultipleInstancePolicy IgnoreNew
RestartOnIdleResume        False
RunElevated                False
RunWithoutNetwork           True
ShowInTaskScheduler         True
StartIfNotIdle              True
StartIfOnBatteries         False
StopIfGoingOffIdle         False
StopIfGoingOnBatteries      True
WakeToRun                   True

この例では、ScheduledJobOptions オブジェクトのプロパティを見やすいようにアルファベット順で並べ替える方法を示します。

最初のコマンドは、New-ScheduledJobOption コマンドレットを使用して、ScheduledJobOptions オブジェクトを作成します。 このコマンドでは、WakeToRun パラメーターを使用して、結果のオブジェクトを $Options 変数に保存します。

$Optionsのプロパティをオブジェクトとして取得するために、2 番目のコマンドでは、すべてのWindows PowerShell オブジェクトの PSObject プロパティとその Properties プロパティを使用します。 次に、プロパティ オブジェクトを Sort-Object コマンドレットにパイプし、プロパティをアルファベット順に名前で並べ替え、Format-Table コマンドレットにパイプ処理します。これにより、テーブル内のプロパティの名前と値が表示されます。

この形式を使用すると、 $Optionsで ScheduledJobOptions オブジェクトの WakeToRun プロパティを見つけ、その値が$Falseから$Trueに変更されたことを確認しやすくなります。

パラメーター

-ContinueIfGoingOnBattery

ジョブの実行中に、コンピューターがバッテリ電源に切り替わっても (AC 電源から切断されても)、スケジュールされたジョブを停止しません。 既定では、コンピューターが AC 電源から切断されると、スケジュールされたジョブは停止します。

ContinueIfGoingOnBattery パラメーターは、スケジュールされたジョブの StopIfGoingOnBatteries プロパティの値を$Trueに設定します。

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-DoNotAllowDemandStart

トリガーされた場合にのみ、ジョブを開始します。 ユーザーは、タスク スケジューラの実行機能などを使用して、手動でジョブを開始することはできません。

このパラメーターは、タスク スケジューラにのみ影響します。 ユーザーが Start-Job コマンドレットを使用してジョブを開始することを妨げるものではありません。

DoNotAllowDemandStart パラメーターは、スケジュールされたジョブの DoNotAllowDemandStart プロパティの値を$Trueに設定します。

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-HideInTaskScheduler

タスク スケジューラにジョブを表示しません。 この値は、ジョブが実行されるコンピューターにのみ影響します。 既定では、スケジュールされたタスクはタスク スケジューラに表示されます。

タスクが非表示の場合でも、ユーザーはタスク スケジューラで [非表示タスクの表示] オプションを選択してタスクを表示できます。

HideInTaskScheduler パラメーターは、スケジュールされたジョブの ShowInTaskScheduler プロパティの値を$Falseに設定します。

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-IdleDuration

コンピューターのアイドル状態がどれだけ続いたらジョブを開始するかを指定します。 既定値は 10 分です。 IdleTimeout の値を過ぎる前に、コンピューターが指定された時間アイドル状態にならないと、(次のスケジュールされた時刻が設定されていれば、それまで) スケジュールされたジョブは実行されません。

New-TimeSpan コマンドレットによって生成された TimeSpan オブジェクトを入力するか、TimeSpan オブジェクトに<自動的に変換される時間>:<分>:<秒>形式の値を入力します。

この値を有効にするには、StartIfIdle パラメーターを使用します。 既定では、スケジュールされたジョブの StartIfNotIdle プロパティは$Trueに設定され、Windows PowerShellは IdleDurationIdleTimeout の値を無視します。

Type:TimeSpan
Position:Named
Default value:10 minutes (00:10:00)
Accept pipeline input:False
Accept wildcard characters:False
-IdleTimeout

コンピューターがアイドル状態になるまでのスケジュールされたジョブの待機時間を指定します。 コンピューターが IdleDuration パラメーターで指定された時間アイドル状態になる前に、このタイムアウトを過ぎた場合、(次のスケジュールされた時刻が設定されていれば、それまで) ジョブは実行されません。 既定値は 1 時間です。

New-TimeSpan コマンドレットによって生成された TimeSpan オブジェクトを入力するか、TimeSpan オブジェクトに<自動的に変換される時間>:<分>:<秒>形式の値を入力します。

この値を有効にするには、StartIfIdle パラメーターを使用します。 既定では、スケジュールされたジョブの StartIfNotIdle プロパティは$Trueに設定され、Windows PowerShellは IdleDurationIdleTimeout の値を無視します。

Type:TimeSpan
Position:Named
Default value:1 hour (1:00:00)
Accept pipeline input:False
Accept wildcard characters:False
-MultipleInstancePolicy

スケジュールされたジョブのインスタンスの実行中にそのジョブの別のインスタンスを開始する要求に対するシステムの応答方法を決定します。 既定値は IgnoreNew です。 このパラメーターの有効値は、次のとおりです。

  • IgnoreNew。 新しいジョブ インスタンスを無視します。
  • パラレル。 新しいジョブ インスタンスをすぐに開始します。
  • キュー: 現在のジョブ インスタンスが完了したら、すぐに新しいインスタンスを開始します。
  • StopExisting。 ジョブの現在のインスタンスが停止し、新しいインスタンスが開始されます。

ジョブを実行するには、ジョブ スケジュールのすべての条件を満たす必要があります。 たとえば、 RequireNetworkIdleDurationIdleTimeout パラメーターによって設定された条件が満たされていない場合、このパラメーターの値に関係なく、ジョブ インスタンスは開始されません。

Type:TaskMultipleInstancePolicy
Accepted values:None, IgnoreNew, Parallel, Queue, StopExisting
Position:Named
Default value:IgnoreNew
Accept pipeline input:False
Accept wildcard characters:False
-RequireNetwork

ネットワーク接続が利用可能な場合にのみ、スケジュールされたジョブを実行します。

このパラメーターを指定し、スケジュールされた開始時刻にネットワークが利用できない場合は、(次のスケジュールされた開始時刻が設定されていれば、それまで) ジョブは実行されません。

RequireNetwork パラメーターは、スケジュールされたジョブの RunWithoutNetwork プロパティの値を$Falseに設定します。

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-RestartOnIdleResume

コンピューターがアイドル状態になると、スケジュールされたジョブを再開します。 このパラメーターは、コンピューターがアクティブになる (アイドル状態でなくなる) と実行中のスケジュールされたジョブを中断する StopIfGoingOffIdle パラメーターと連動しています。

RestartOnIdleResume パラメーターは、スケジュールされたジョブの RestartOnIdleResume プロパティの値を$Trueに設定します。

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-RunElevated

ジョブが実行されるコンピューター上の Administrators グループのメンバーのアクセス許可で、スケジュールされたジョブを実行します。

スケジュールされたジョブを管理者のアクセス許可で実行できるようにするには、Register-ScheduledJobの Credential パラメーターを使用して、ジョブの明示的な資格情報を指定します。

RunElevated パラメーターは、スケジュールされたジョブの RunElevated プロパティの値を$Trueに設定します。

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-StartIfIdle

IdleTimeout パラメーターに指定された時間を過ぎる前に、コンピューターが IdleDuration パラメーターに指定された時間アイドル状態になった場合に、スケジュールされたジョブを開始します。

既定では、IdleDuration パラメーターと IdleTimeout パラメーターは無視され、コンピューターがビジー状態でも、ジョブはスケジュールされた開始時刻に開始されます。

このパラメーターを指定し、スケジュールされた開始時刻にコンピューターがビジー状態の場合 (アイドル状態でない場合) は、(次のスケジュールされた開始時刻が設定されていれば、それまで) ジョブは実行されません。

StartIfIdle パラメーターは、スケジュールされたジョブの StartIfNotIdle プロパティの値を$Falseに設定します。

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-StartIfOnBattery

スケジュールされた開始時刻にコンピューターがバッテリで動作していても、スケジュールされたジョブを開始します。 既定値は$Falseです。

StartIfOnBattery パラメーターは、スケジュールされたジョブの StartIfOnBatteries プロパティの値を$Trueに設定します。

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-StopIfGoingOffIdle

ジョブの実行中に、コンピューターがアクティブになる (アイドル状態でなくなる) と、実行中のスケジュールされたジョブを中断します。

既定では、コンピューターがアクティブになったときに中断されたスケジュールされたジョブは、コンピューターが再びアイドル状態になると再開されます。 この既定の動作を変更するには、RestartOnIdleResume パラメーターを使用します。

StopIfGoingOffIdle パラメーターは、スケジュールされたジョブの StopIfGoingOffIdle プロパティの値を$Trueに設定します。

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-WakeToRun

スケジュールされた開始時刻にコンピューターの休止状態またはスリープ状態を解除して、ジョブを実行できるようにします。 既定では、スケジュールされた開始時刻にコンピューターが休止状態またはスリープ状態の場合、ジョブは実行されません。

WakeToRun パラメーターは、スケジュールされたジョブの WakeToRun プロパティの値を$Trueに設定します。

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

入力

None

パイプを使用してこのコマンドレットに入力を渡すことはできません。

出力

Microsoft.PowerShell.ScheduledJob.ScheduledJobOptions

メモ

  • New-ScheduledJobOption によって作成される ScheduledJobOptions オブジェクトは、Register-ScheduledJob コマンドレットの ScheduledJobOption パラメーターの値として使用できます。 ただし、ScheduledJobOption パラメーターは、ScheduledJobOptions オブジェクトのプロパティとその値を指定するハッシュ テーブル値を受け取ることもできます。次に例を示します。

    @{ShowInTaskScheduler=$False; RunElevated=$True; IdleDuration="00:05"}