Bagikan melalui


Metode IScheduledWorkItem::SetAccountInformation (mstask.h)

[[API ini dapat diubah atau tidak tersedia dalam versi sistem operasi atau produk berikutnya. Silakan gunakan Antarmuka Penjadwal Tugas 2.0 sebagai gantinya.] ]

Menyetel nama akun dan kata sandi yang digunakan untuk menjalankan item kerja.

Sintaks

HRESULT SetAccountInformation(
  [in] LPCWSTR pwszAccountName,
  [in] LPCWSTR pwszPassword
);

Parameter

[in] pwszAccountName

String yang berisi nama akun pengguna yang dihentikan null di mana item kerja akan berjalan. Untuk menentukan akun sistem lokal, gunakan string kosong, L"". Jangan gunakan string lain untuk menentukan akun sistem lokal. Untuk informasi selengkapnya, lihat Keterangan.

[in] pwszPassword

String yang berisi kata sandi untuk akun yang ditentukan dalam pwszAccountName.

Atur parameter ini ke NULL jika akun sistem lokal ditentukan. Jika Anda mengatur bendera TASK_FLAG_RUN_ONLY_IF_LOGGED_ON, Anda juga dapat mengatur pwszPassword ke NULL untuk akun pengguna lokal atau domain. Gunakan metode IScheduledWorkItem::SetFlags untuk mengatur bendera.

Penjadwal Tugas menyimpan informasi akun hanya sekali untuk semua tugas yang menggunakan akun yang sama. Jika kata sandi akun diperbarui untuk satu tugas, maka semua tugas yang menggunakan akun yang sama akan menggunakan kata sandi yang diperbarui.

Setelah Anda selesai menggunakan kata sandi, hapus informasi kata sandi dengan memanggil fungsi SecureZeroMemory . Untuk informasi selengkapnya tentang melindungi kata sandi, lihat Menangani Kata Sandi.

Nilai kembali

Metode SetAccountInformation mengembalikan salah satu nilai berikut. Perhatikan bahwa kesalahan dari panggilan ini juga dapat dikembalikan oleh panggilan berikutnya ke IPersistFile::Save.

Menampilkan kode Deskripsi
S_OK
Operasi berhasil.
E_ACCESSDENIED
Pemanggil tidak memiliki izin untuk melakukan operasi. Untuk informasi selengkapnya, lihat Keterangan.
E_INVALIDARG
Argumen tidak valid.
E_OUTOFMEMORY
Tidak tersedia cukup memori.
SCHED_E_NO_SECURITY_SERVICES
Layanan keamanan hanya tersedia di Windows Server 2003, Windows XP, dan Windows 2000.
SCHED_E_UNSUPPORTED_ACCOUNT_OPTION
Parameter pwszPassword diatur ke NULL, tetapi bendera TASK_FLAG_RUN_ONLY_IF_LOGGED_ON tidak diatur.
SCHED_E_ACCOUNT_INFORMATION_NOT_SET
Parameter pwszPassword salah. Di Windows Server 2003, Task Scheduler memvalidasi kata sandi pada saat pekerjaan dibuat (selama panggilan ke IPersistFile::Save). Ketahuilah bahwa jika kesalahan ini terjadi, file pekerjaan akan tetap dibuat.

Keterangan

Metode ini untuk Windows Server 2003, Windows XP, dan Windows 2000.

Jika pwszAccountName menentukan akun sistem lokal, pemanggil harus menjadi administrator di komputer lokal atau aplikasi yang berjalan di akun sistem lokal. Jika tidak, metode ini akan gagal.

Kata sandi yang ditentukan dalam pwszPassword digunakan untuk masuk ke akun saat item kerja dijalankan. Kata sandi yang salah akan mengakibatkan kesalahan saat item kerja dijalankan. Namun, di Windows Server 2003, Task Scheduler memvalidasi kata sandi pada saat pekerjaan dibuat (selama panggilan ke IPersistFile::Save).

Biasanya, kata sandi memiliki tanggal kedaluwarsa. Jika Anda menjadwalkan tugas yang berjalan tanpa batas waktu, Anda harus memperbarui tugas untuk mencerminkan kata sandi baru.

Perhatikan bahwa kesalahan dapat dikembalikan oleh panggilan awal ke SetAccountInformation atau panggilan berikutnya ke IPersistFile::Save.

Layanan Penjadwal Tugas harus berjalan agar panggilan ini berhasil. (SetAccountInformation menghasilkan panggilan prosedur jarak jauh (RPC) ke layanan Penjadwal Tugas, tetapi panggilan RPC tidak dilakukan sampai IPersistFile::Simpan dipanggil.)

Kode pengembalian E_ACCESSDENIED dikembalikan dalam kondisi berikut:

  • Pemanggil tidak memiliki akses tulis ke file yang mewakili item kerja terjadwal.
  • Akun lokal ditentukan (pwszAccountName diatur ke L""), tetapi pemanggil bukan administrator di komputer lokal atau aplikasi yang berjalan di akun sistem lokal.
  • Kata sandi NULL ditentukan dalam pwszPassword, tetapi pemanggil bukan administrator di komputer lokal, juga tidak berjalan di akun sistem lokal.
  • Aplikasi ini berjalan di bawah nama pengguna yang berbeda dari pengguna bernama yang ditentukan dalam parameter pwszAccountName .
Setelah mengatur informasi akun untuk item kerja, pastikan untuk memanggil IPersistFile::Simpan untuk menyimpan objek item kerja yang dimodifikasi ke disk.

Contoh

Untuk informasi selengkapnya dan contoh cara mengatur informasi akun tugas, lihat Contoh Kode C/C++: Mengatur Informasi Akun Tugas.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header mstask.h
Pustaka Mstask.lib
DLL Mstask.dll

Lihat juga

IScheduledWorkItem

IScheduledWorkItem::GetAccountInformation

IScheduledWorkItem::SetFlags