Bagikan melalui


Metode ITaskFolder::RegisterTaskDefinition (taskschd.h)

Mendaftarkan (membuat) tugas di lokasi tertentu menggunakan antarmuka ITaskDefinition untuk menentukan tugas.

Sintaksis

HRESULT RegisterTaskDefinition(
  [in]           BSTR            path,
  [in]           ITaskDefinition *pDefinition,
  [in]           LONG            flags,
  [in]           VARIANT         userId,
  [in]           VARIANT         password,
  [in]           TASK_LOGON_TYPE logonType,
  [in, optional] VARIANT         sddl,
  [out]          IRegisteredTask **ppTask
);

Parameter

[in] path

Nama tugas. Jika nilai ini NULL, tugas akan didaftarkan di folder tugas akar dan nama tugas akan menjadi nilai GUID yang dibuat oleh layanan Task Scheduler.

Nama tugas tidak dapat dimulai atau diakhir dengan karakter spasi. Karakter '.' tidak dapat digunakan untuk menentukan folder tugas saat ini dan '..' karakter tidak dapat digunakan untuk menentukan folder tugas induk di jalur.

[in] pDefinition

Definisi tugas terdaftar.

[in] flags

Konstanta TASK_CREATION.

Nilai Arti
TASK_VALIDATE_ONLY
0x1
Task Scheduler memverifikasi sintaks XML yang menjelaskan tugas, tetapi tidak mendaftarkan tugas. Konstanta ini tidak dapat dikombinasikan dengan nilai TASK_CREATE, TASK_UPDATE, atau TASK_CREATE_OR_UPDATE.
TASK_CREATE
0x2
Penjadwal Tugas mendaftarkan tugas sebagai tugas baru.
TASK_UPDATE
0x4
Penjadwal Tugas mendaftarkan tugas sebagai versi terbaru dari tugas yang sudah ada. Ketika tugas dengan pemicu pendaftaran diperbarui, tugas akan dijalankan setelah pembaruan terjadi.
TASK_CREATE_OR_UPDATE
0x6
Penjadwal Tugas mendaftarkan tugas sebagai tugas baru atau sebagai versi yang diperbarui jika tugas sudah ada. Setara dengan TASK_CREATE | TASK_UPDATE.
TASK_DISABLE
0x8
Penjadwal Tugas menonaktifkan tugas yang ada.
TASK_DONT_ADD_PRINCIPAL_ACE
0x10
Penjadwal Tugas dicegah untuk menambahkan entri izinkan kontrol akses (ACE) untuk prinsip konteks. Ketika fungsi ITaskFolder::RegisterTaskDefinition dipanggil dengan bendera ini untuk memperbarui tugas, layanan Task Scheduler tidak menambahkan ACE untuk prinsip konteks baru dan tidak menghapus ACE dari prinsipal konteks lama.
TASK_IGNORE_REGISTRATION_TRIGGERS
0x20
Penjadwal Tugas membuat tugas, tetapi mengabaikan pemicu pendaftaran dalam tugas. Dengan mengabaikan pemicu pendaftaran, tugas tidak akan dijalankan ketika terdaftar kecuali pemicu berbasis waktu menyebabkannya dijalankan pada pendaftaran.

[in] userId

Kredensial pengguna yang digunakan untuk mendaftarkan tugas. Jika ada, kredensial ini lebih diprioritaskan daripada kredensial yang ditentukan dalam objek definisi tugas yang ditujukkan oleh parameter pDefinition .

Catatan Jika tugas didefinisikan sebagai tugas Task Scheduler 1.0, maka jangan gunakan nama grup (bukan nama pengguna tertentu) dalam parameter userId ini. Tugas didefinisikan sebagai tugas Task Scheduler 1.0 saat properti Kompatibilitas diatur ke TASK_COMPATIBILITY_V1 dalam pengaturan tugas.
 

[in] password

Kata sandi untuk userId yang digunakan untuk mendaftarkan tugas. Ketika jenis masuk TASK_LOGON_SERVICE_ACCOUNT digunakan, kata sandi harus berupa nilai VARIAN kosong seperti VT_NULL atau VT_EMPTY.

[in] logonType

Menentukan teknik masuk apa yang digunakan untuk menjalankan tugas terdaftar.

Nilai Arti
TASK_LOGON_NONE
0
Metode masuk tidak ditentukan. Digunakan untuk kredensial non-NT.
TASK_LOGON_PASSWORD
1
Gunakan kata sandi untuk pengelogan pada pengguna. Kata sandi harus disediakan pada waktu pendaftaran.
TASK_LOGON_S4U
2
Gunakan token interaktif yang ada untuk menjalankan tugas. Pengguna harus masuk menggunakan layanan untuk masuk pengguna (S4U). Ketika masuk S4U digunakan, tidak ada kata sandi yang disimpan oleh sistem dan tidak ada akses ke jaringan atau ke file terenkripsi.
TASK_LOGON_INTERACTIVE_TOKEN
3
Pengguna harus sudah masuk. Tugas hanya akan dijalankan dalam sesi interaktif yang ada.
TASK_LOGON_GROUP
4
Aktivasi grup. Bidang groupId menentukan grup.
TASK_LOGON_SERVICE_ACCOUNT
5
Menunjukkan bahwa akun Sistem Lokal, Layanan Lokal, atau Layanan Jaringan sedang digunakan sebagai konteks keamanan untuk menjalankan tugas.
TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD
6
Pertama gunakan token interaktif. Jika pengguna tidak masuk (tidak ada token interaktif yang tersedia), maka kata sandi digunakan. Kata sandi harus ditentukan ketika tugas didaftarkan. Bendera ini tidak disarankan untuk tugas baru karena kurang dapat diandalkan daripada TASK_LOGON_PASSWORD.

[in, optional] sddl

Pendeskripsi keamanan yang terkait dengan tugas terdaftar. Anda dapat menentukan daftar kontrol akses (ACL) di deskriptor keamanan untuk tugas untuk mengizinkan atau menolak akses pengguna dan grup tertentu ke tugas.

Catatan Jika akun Sistem Lokal ditolak akses ke tugas, maka layanan Penjadwal Tugas dapat menghasilkan hasil yang tidak terduga.
 

[out] ppTask

Antarmuka IRegisteredTask yang mewakili tugas baru.

Berikan referensi ke nullIRegisteredTask penunjuk antarmuka. Mereferensikan pointer NULL non-dapat menyebabkan kebocoran memori karena pointer akan ditimpa.

Mengembalikan nilai

Metode ini dapat mengembalikan salah satu nilai ini.

Mengembalikan kode/nilai Deskripsi
S_OK
0x0
Operasi berhasil diselesaikan.
E_ACCESS_DENIED
0x80070005
Akses ditolak untuk tersambung ke layanan Penjadwal Tugas.
E_OUTOFMEMORY
0x8007000e
Aplikasi tidak memiliki cukup memori untuk menyelesaikan operasi atau pengguna atau kata sandi memiliki setidaknya satu null dan satu nilai null non-.
SCHED_S_BATCH_LOGON_PROBLEM
0x0004131C
Tugas didaftarkan, tetapi mungkin gagal dimulai. Hak istimewa masuk batch perlu diaktifkan untuk perwakilan tugas.
SCHED_S_SOME_TRIGGERS_FAILED
0x0004131B
Tugas terdaftar, tetapi tidak semua pemicu yang ditentukan akan memulai tugas.

Komentar

Untuk tugas, yang berisi tindakan kotak pesan, kotak pesan akan ditampilkan jika tugas diaktifkan dan tugas memiliki jenis masuk interaktif. Untuk mengatur jenis masuk tugas menjadi interaktif, tentukan TASK_LOGON_INTERACTIVE_TOKEN atau TASK_LOGON_GROUP di properti LogonType dari prinsipal tugas, atau dalam parameter logonType ITaskFolder::RegisterTask atau ITaskFolder::RegisterTaskDefinition.

Hanya anggota grup Administrator yang dapat membuat tugas dengan pemicu boot.

Anda dapat berhasil mendaftarkan tugas dengan grup yang ditentukan dalam parameter userId dan TASK_LOGON_INTERACTIVE_TOKEN yang ditentukan dalam parameter logonType ITaskFolder::RegisterTask atau ITaskFolder::RegisterTaskDefinition, tetapi tugas tidak akan berjalan.

Meneruskan nilai TASK_VALIDATE_ONLY dan TASK_IGNORE_REGISTRATION_TRIGGERS bersama-sama ke parameter bendera adalah argumen yang tidak valid.

Metode ITaskFolder::RegisterTaskDefinition mengembalikan kesalahan 80070534 ketika dipanggil oleh akun Sistem dengan parameter pengguna sama dengan NULL , parameter kata sandi sama denganNULL , dan parameter logonType sama dengan TASK_LOGON_SERVICE_ACCOUNT.

Jika tugas menentukan jaringan yang tidak ada di pengaturan NetworkSettings tugas, metode ITaskFolder::RegisterTaskDefinition akan mengembalikan kesalahan 0x8000ffff ketika tugas didaftarkan.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Platform Target Windows
Header taskschd.h
Pustaka Taskschd.lib
DLL Taskschd.dll

Lihat juga

IRegisteredTask

ITaskFolder

Penjadwal Tugas