NetScheduleJobAdd 関数 (lmat.h)

[NetScheduleJobAdd は、Windows 8時点で使用できなくなります。 代わりに、 タスク スケジューラ 2.0 インターフェイスを使用します

]

NetScheduleJobAdd 関数は、指定した将来の日時に実行するジョブを送信します。 この関数では、ジョブの送信先コンピューターでスケジュール サービスを開始する必要があります。

構文

NET_API_STATUS NET_API_FUNCTION NetScheduleJobAdd(
  [in, optional] LPCWSTR Servername,
  [in]           LPBYTE  Buffer,
  [out]          LPDWORD JobId
);

パラメーター

[in, optional] Servername

関数を実行するリモート サーバーの DNS または NetBIOS 名を指定する定数文字列へのポインター。 このパラメーターが NULL の場合は、ローカル コンピューターが使用されます。

[in] Buffer

送信するジョブを記述する AT_INFO 構造体へのポインター。 さまざまなジョブ プロパティを使用したジョブのスケジュール設定の詳細については、次の「解説」セクションと 「ネットワーク管理機能バッファー」を参照してください。

[out] JobId

新しく送信されたジョブのジョブ識別子を受け取るポインター。 このエントリは、関数が正常に返された場合にのみ有効です。

戻り値

関数が成功した場合、戻り値はNERR_Success。

関数が失敗した場合、戻り値はシステム エラー コードです。 エラー コードの一覧については、「 システム エラー コード」を参照してください。

注釈

通常、スケジュール ジョブが追加されているコンピューター上のローカル Administrators グループのメンバーのみが、この関数を正常に実行できます。 Servername パラメーターが指す文字列で渡されたサーバー名がリモート サーバーの場合、リモート サーバー上のローカル Administrators グループのメンバーのみが、この関数を正常に実行できます。

次のレジストリ値に最下位ビットが設定されている場合 (たとえば、0x00000001)、サーバーオペレーター グループに属するユーザーも、この関数を正常に実行できます。

HKLM\System\CurrentControlSet\Control\Lsa\SubmitControl

NetScheduleJobAdd 関数でサポートされているさまざまなプロパティを使用してジョブをスケジュールする方法の例を次に示します。

1 回実行するジョブをスケジュールするには:

  • AT_INFO構造体の DaysOfMonth メンバーを 0 に設定します。
  • AT_INFO構造体の DaysOfWeek メンバーを 0 に設定します。
  • AT_INFO構造体の JobTime メンバーを、ジョブの実行時刻に設定します。
このジョブは、Buffer パラメーターが指すAT_INFO構造体の JobTime メンバーによって指定された時刻に実行されます。 ジョブが実行されると、ジョブは削除されます。

複数回実行するジョブをスケジュールして削除するには:

  • AT_INFO構造体の DaysOfMonth メンバーに適切なビットを設定します。
  • AT_INFO構造体の DaysOfWeek メンバーに適切なビットを設定します。
  • AT_INFO構造体の JobTime メンバーを、ジョブの実行時刻に設定します。
メモAT_INFO構造体の DaysOfMonth メンバーと DaysOfWeek メンバーの両方を設定する必要はありません。
 
ジョブは、Buffer パラメーターによって指されるAT_INFO構造体の JobTime メンバーによって指定された時刻に、AT_INFO構造体の DaysOfMonth メンバーまたは DaysOfWeek メンバーに設定された各日に対して 1 回実行されます。 各ジョブが実行されると、対応するビットがクリアされます。 最後のビットがクリアされると、ジョブは削除されます。

定期的に実行されるジョブをスケジュールするには:

  • AT_INFO構造体の DaysOfMonth メンバーに適切なビットを設定します。
  • AT_INFO構造体の DaysOfWeek メンバーに適切なビットを設定します。
  • AT_INFO構造体の JobTime メンバーを、ジョブの実行時刻に設定します。
  • AT_INFO構造体の Flags メンバーにジョブ送信フラグ JOB_RUN_PERIODICALLY を設定します。
メモAT_INFO構造体の DaysOfMonth メンバーと DaysOfWeek メンバーの両方を設定する必要はありません。
 
ジョブは、Buffer パラメーターが指すAT_INFO構造体の JobTime メンバーによって指定された時刻に、AT_INFO構造体の DaysOfMonth または DaysOfWeek メンバーに設定された各日に定期的実行されます。 ジョブは、繰り返し実行された結果として削除されません。 ジョブを削除する唯一の方法は、 NetScheduleJobDel 関数の明示的な呼び出しです。

DaysOfWeekDaysOfMonth、および job プロパティのビットマスクの説明については、AT_INFO構造体を参照してください。

Windows 2000 では、以前の AT サービスとタスク スケジューラが組み合わされていました。 タスク スケジューラ サービスは、その分だけ正確でした。 したがって、NetScheduleJobAdd 関数は、ジョブの実行がスケジュールされている場合、AT_INFO構造体の JobTime メンバーで指定された時間と分のみを使用します。

Windows Vista 以降では、タスク スケジューラの精度が 2 番目に向上しました。 したがって、NetScheduleJobAdd 関数は、ジョブの実行がスケジュールされている場合に、AT_INFO構造体の JobTime メンバーで指定された時間、分、秒のみを使用します。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー lmat.h (Lmat.h を含む)
Library Netapi32.lib
[DLL] Netapi32.dll

こちらもご覧ください

AT_INFO

NetScheduleJobDel

NetScheduleJobEnum

NetScheduleJobGetInfo

ネットワーク管理機能

ネットワーク管理の概要

スケジュール関数