次の方法で共有


New-JobTrigger

スケジュールされたジョブのジョブ トリガーを作成します。

構文

New-JobTrigger
   [-RandomDelay <TimeSpan>]
   -At <DateTime>
   [-Once]
   [-RepetitionInterval <TimeSpan>]
   [-RepetitionDuration <TimeSpan>]
   [-RepeatIndefinitely]
   [<CommonParameters>]
New-JobTrigger
   [-DaysInterval <Int32>]
   [-RandomDelay <TimeSpan>]
   -At <DateTime>
   [-Daily]
   [<CommonParameters>]
New-JobTrigger
   [-WeeksInterval <Int32>]
   [-RandomDelay <TimeSpan>]
   -At <DateTime>
   -DaysOfWeek <DayOfWeek[]>
   [-Weekly]
   [<CommonParameters>]
New-JobTrigger
   [-RandomDelay <TimeSpan>]
   [-AtStartup]
   [<CommonParameters>]
New-JobTrigger
   [-RandomDelay <TimeSpan>]
   [-User <String>]
   [-AtLogOn]
   [<CommonParameters>]

説明

New-JobTrigger コマンドレットは、スケジュールされたジョブを 1 回限りまたは定期的なスケジュールで開始するジョブ トリガー、またはイベントが発生したときに開始するジョブ トリガーを作成します。

New-JobTrigger が返す ScheduledJobTrigger オブジェクトを使用して、新規または既存のスケジュールされたジョブのジョブ トリガーを設定できます。 また、Get-JobTrigger コマンドレットを使用して既存のスケジュールされたジョブのジョブ トリガーを取得するか、ハッシュ テーブル値を使用してジョブ トリガーを表すことで、ジョブ トリガーを作成することもできます。

ジョブ トリガーを作成するときは、New-ScheduledJobOption コマンドレットで指定されたオプションの既定値を確認します。 これらのオプションは、タスク スケジューラの対応するオプションと同じ有効な値と既定値を持ち、スケジュールされたジョブのスケジュール設定とタイミングに影響します。

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

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

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

例 1: 1 回のスケジュール

PS C:\> New-JobTrigger -Once -At "1/20/2012 3:00 AM"

このコマンドでは、 New-JobTrigger コマンドレットを使用して、スケジュールされたジョブを 1 回だけ開始するジョブ トリガーを作成します。 At パラメーターの値は、Windows PowerShell が DateTime オブジェクトに変換する文字列です。 At パラメーターの値には、時刻だけでなく明示的な日付が含まれます。 日付を省略した場合、トリガーは現在の日付と午前 3 時の時刻で作成されます。これは、過去の時刻を表す可能性があります。

例 2: 毎日のスケジュール

PS C:\> New-JobTrigger -Daily -At "4:15 AM" -DaysInterval 3
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
0          Daily           9/21/2012 4:15:00 AM                           True

このコマンドは、スケジュールされたジョブを午前 4 時 15 分に 3 日ごとに開始するジョブ トリガーを作成します。

At パラメーターの値には日付が含まれていないため、現在の日付は、DateTime オブジェクトの日付値として使用されます。 日付と時刻が過去の場合、スケジュールされたジョブは次の出現時点で開始されます。これは、At パラメーター値から 3 日後

例 3: 週単位のスケジュール

PS C:\> New-JobTrigger -Weekly -DaysOfWeek Monday, Wednesday, Friday -At "23:00" -WeeksInterval 4
Id Frequency Time                  DaysOfWeek                  Enabled
-- --------- ----                  ----------                  -------
0  Weekly    9/21/2012 11:00:00 PM {Monday, Wednesday, Friday} True

このコマンドは、スケジュールされたジョブを 4 週間ごとに月曜日、水曜日、金曜日の 2300 時 (午後 11:00) に開始するジョブトリガーを作成します。

など、-DaysOfWeek 1, 5 パラメーター値を整数で入力することもできます。

例 4: ログオン スケジュール

PS C:\> New-JobTrigger -AtLogOn -User Domain01\Admin01

このコマンドは、ドメイン管理者がコンピューターにログオンするたびにスケジュールされたジョブを開始するジョブ トリガーを作成します。

例 5: ランダム遅延の使用

PS C:\> New-JobTrigger -Daily -At 1:00 -RandomDelay 00:20:00

このコマンドは、スケジュールされたジョブを毎日午前 1:00 に開始するジョブトリガーを作成します。 このコマンドでは、RandomDelay パラメーターを使用して、最大遅延時間を 20 分に設定します。 その結果、ジョブは毎日午前 1 時から午前 1 時 20 分の間に実行され、間隔は擬似ランダムに変化します。

サンプリング、負荷分散、およびその他の管理タスクにはランダムな遅延を使用できます。 遅延値を設定するときは、New-ScheduledJobOption コマンドレットの有効値と既定値を確認し、遅延をオプション設定と調整します。

例 6: 新しいスケジュールされたジョブのジョブ トリガーを作成する

The first command uses the **New-JobTrigger** cmdlet to create a job trigger that starts a job every Monday, Wednesday, and Friday at 12:01 AM. The command saves the job trigger in the $T variable.
PS C:\> $T = New-JobTrigger -Weekly -DaysOfWeek 1,3,5 -At 12:01AM


The second command uses the Register-ScheduledJob cmdlet to create a scheduled job that starts a job every Monday, Wednesday, and Friday at 12:01 AM. The value of the *Trigger* parameter is the trigger that is stored in the $T variable.
PS C:\> Register-ScheduledJob -Name Test-HelpFiles -FilePath C:\Scripts\Test-HelpFiles.ps1 -Trigger $T

これらのコマンドは、ジョブトリガーを使用して、新しいスケジュールされたジョブを作成します。

例 7: スケジュールされたジョブにジョブ トリガーを追加する

PS C:\> Add-JobTrigger -Name SynchronizeApps -Trigger (New-JobTrigger -Daily -At 3:10AM)

この例では、既存のスケジュールされたジョブにジョブ トリガーを追加する方法を示します。 スケジュールされたジョブに複数のジョブ トリガーを追加できます。

このコマンドでは、Add-JobTrigger コマンドレットを使用して、ジョブ トリガーを SynchronizeApps スケジュールされたジョブに追加します。 Trigger パラメーターの値は、毎日午前 3 時 10 分にジョブを実行する New-JobTrigger コマンドです。

コマンドが完了すると、SynchronizeApps は、ジョブ トリガーで指定された時間に実行されるスケジュールされたジョブになります。

例 8: 繰り返しジョブ トリガーを作成する

PS C:\> New-JobTrigger -Once -At "09/12/2013 1:00:00" -RepetitionInterval (New-TimeSpan -Hours 1) -RepetitionDuration (New-Timespan -Hours 48)

このコマンドは、2013 年 9 月 12 日午前 1 時から 48 時間 60 分ごとにジョブを実行するジョブ トリガーを作成します。

例 9: 繰り返しジョブ トリガーを停止する

PS C:\> Get-JobTrigger -Name SecurityCheck | Set-JobTrigger -RepetitionInterval 0:00 -RepetitionDuration 0:00

このコマンドは、ジョブ・トリガーの有効期限が切れるまで 60 分ごとに実行されるようにトリガーされる SecurityCheck ジョブを強制的に停止します。

ジョブが繰り返されないようにするために、コマンドは Get-JobTrigger を使用して SecurityCheck ジョブのジョブ トリガーを取得し、Set-JobTrigger コマンドレットを使用してジョブ トリガーの繰り返し間隔と繰り返し時間をゼロ (0) に変更します。

例 10: 時間単位のジョブ トリガーを作成する

PS C:\> New-JobTrigger -Once -At "9/21/2012 0am" -RepetitionInterval (New-TimeSpan -Hour 12) -RepetitionDuration ([TimeSpan]::MaxValue)

次のコマンドは、12 時間ごとに無期限にスケジュールされたジョブを実行するジョブ トリガーを作成します。 スケジュールは明日 (2012 年 9 月 21 日) 午前 0 時 (午前 0 時) に開始されます。

パラメーター

-At

指定した日時にジョブを開始します。 Get-Date コマンドレットが返す DateTime オブジェクト、または "April 19, 2012 15:00"、"12/31"、"3am" などの日付と時刻に変換できる文字列を入力します。 年などの日付の要素を指定しない場合、トリガーの日付には現在の日付の対応する要素があります。

Once パラメーターを使用する場合は、At パラメーターの値を将来の日時に設定します。 DateTime オブジェクトの既定の日付は現在の日付であるため、明示的な日付を指定せずに現在の時刻より前の時刻を指定した場合、ジョブ トリガーは過去の時刻に対して作成されます。

DateTime オブジェクトと、DateTime オブジェクトに変換される文字列は、コントロール パネルの [地域と言語] でローカル コンピューターに対して選択された日付と時刻の形式と互換性を持つよう自動的に調整されます。

型:DateTime
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-AtLogOn

指定したユーザーがコンピューターにログオンしたときに、スケジュールされたジョブを開始します。 ユーザーを指定するには、User パラメーターを使用します。

型:SwitchParameter
配置:0
規定値:False
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-AtStartup

Windows の起動時にスケジュールされたジョブを開始します。

型:SwitchParameter
配置:0
規定値:False
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Daily

定期的な毎日のジョブ スケジュールを指定します。 スケジュールの詳細を指定するには、Daily パラメーター セットの他のパラメーターを使用します。

型:SwitchParameter
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DaysInterval

1 日のスケジュールで出現する間隔の日数を指定します。 たとえば、値 3 を指定すると、スケジュールされたジョブは 1 日目、4 日目、7 日目などに開始されます。 既定値は 1 です。

型:Int32
配置:Named
規定値:1
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DaysOfWeek

毎週スケジュールされたジョブを実行する曜日を指定します。 「Monday」などの曜日名、または0-6の整数を入力します。0は日曜日を表します。 このパラメーターは、Weekly パラメーター セットで必須です。

日の名前は、ジョブ トリガーの整数値に変換されます。 コマンドで曜日名を引用符で囲む場合は、各曜日名を別々の引用符で囲みます (例: "Monday"、"Tuesday")。 複数の日の名前を単一引用符のペアで囲む場合、対応する整数値が合計されます。 たとえば、"Monday, Tuesday" (1, 2) は "Wednesday" (3) という値になります。

型:DayOfWeek[]
指定可能な値:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Once

非定期的なスケジュール (1 回限り) またはカスタムの繰り返しスケジュールを指定します。 繰り返しスケジュールを作成するには、RepeatDuration パラメーターと RepeatInterval パラメーターで Once パラメーターを使用します。

型:SwitchParameter
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RandomDelay

スケジュールされた開始時刻に開始するランダム遅延を有効にし、最大遅延値を設定します。 遅延の長さは、開始ごとに擬似ランダムに設定され、遅延なしからこのパラメーターの値で指定された時間まで変化します。 デフォルト値の 0 (00:00:00) は、ランダム遅延を無効にします。

New-TimeSpan コマンドレットによって返されるオブジェクトなどの timespan オブジェクトを入力するか、 <hours>:<minutes>:<seconds> 形式で値を入力します。この形式は、 自動的に TimeSpan オブジェクトに変換されます。

型:TimeSpan
配置:Named
規定値:00:00:00
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RepeatIndefinitely

Windows PowerShell 4.0 以降で使用できるこのパラメーターを使用すると、スケジュールされたジョブを無期限に繰り返し実行するために、の RepeatedDuration パラメーターに TimeSpan.MaxValue 値を指定する必要がなくなります。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RepetitionDuration

指定した時間が経過するまでジョブを繰り返します。 繰り返し頻度は、の繰り返し間隔 パラメーターの値によって決まります。 たとえば、の RepetitionInterval の値が 5 分で、の繰り返し期間 の値が 2 時間の場合、ジョブは 5 分ごとに 2 時間トリガーされます。

New-TimeSpan コマンドレットから返されるオブジェクトや、"1:05:30" などの timespan オブジェクトに変換できる文字列などの timespan オブジェクトを入力します。

ジョブを無期限に実行するには、代わりに RepeatIn 無期限 パラメーター 追加します。

ジョブ トリガーの繰り返し期間が経過する前にジョブを停止するには、Set-JobTrigger コマンドレットを使用して RepetitionDuration 値をゼロ (0) に設定します。

このパラメーターは、コマンドで OnceAt 、および RepetitionInterval パラメーターが使用されている場合にのみ有効です。

型:TimeSpan
配置:Named
規定値:0
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RepetitionInterval

指定した時間間隔でジョブを繰り返します。 たとえば、このパラメーターの値が 2 時間の場合、ジョブは 2 時間ごとにトリガーされます。 デフォルト値の 0 では、ジョブは繰り返されません。

New-TimeSpan コマンドレットから返されるオブジェクトや、"1:05:30" などの timespan オブジェクトに変換できる文字列などの timespan オブジェクトを入力します。

このパラメーターは、コマンドで OnceAt、および RepetitionDuration パラメーターが使用されている場合にのみ有効です。

型:TimeSpan
配置:Named
規定値:0
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-User

スケジュールされたジョブの開始 AtLogon をトリガーするユーザーを指定します。 ユーザーの名前を <UserName> または <Domain\Username> の形式で入力するか、すべてのユーザーを表すアスタリスク (*) を入力します。 既定値はすべてのユーザーです。

型:String
配置:Named
規定値:All users
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Weekly

定期的な毎週のジョブ スケジュールを指定します。 「週次」パラメーター・セット内の他のパラメーターを使用して、スケジュールの詳細を指定します。

型:SwitchParameter
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-WeeksInterval

週単位のジョブ スケジュールで出現する間隔を週数で指定します。 たとえば、値 3 を指定すると、スケジュールされたジョブは第 1 週、第 4 週、第 7 週などに開始されます。 既定値は 1 です。

型:Int32
配置:Named
規定値:1
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

None

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

出力

ScheduledJobTrigger

メモ

  • ジョブ トリガーはディスクに保存されません。 ただし、スケジュールされたジョブはディスクに保存され、Get-JobTrigger を使用してスケジュールされた任意のジョブのジョブ トリガーを取得できます。

  • New-JobTrigger は、過去の日付の 1 回限りのトリガーなど、スケジュールされたジョブを実行しないジョブトリガーの作成を妨げません。

  • Register-ScheduledJob コマンドレットは、 New-JobTrigger または Get-JobTrigger コマンドレットによって返されるオブジェクトなどの ScheduledJobTrigger オブジェクト、またはトリガー値を含むハッシュ テーブルを受け入れます。

    ハッシュ テーブルを送信するには、次のキーを使用します。

    @{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am" (または任意の有効な時間文字列)。 DaysOfWeek="Monday", "Wednesday" (または曜日の名前の任意の組み合わせ) Interval=2 (または任意の有効な周波数間隔)。 RandomDelay="30minutes" (または任意の有効な timespan 文字列) User="Domain1\User01 (または、 AtLogon の頻度値でのみ使用される任意の有効なユーザー) }