Condividi tramite


Metodo IScheduledWorkItem::SetAccountInformation (mstask.h)

[[Questa API può essere modificata o non disponibile nelle versioni successive del sistema operativo o del prodotto. Usare invece le interfacce dell'utilità di pianificazione 2.0 . ]

Imposta il nome dell'account e la password usati per eseguire l'elemento di lavoro.

Sintassi

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

Parametri

[in] pwszAccountName

Stringa contenente il nome con terminazione null dell'account utente in cui verrà eseguito l'elemento di lavoro. Per specificare l'account di sistema locale, usare la stringa vuota, L"". Non usare alcuna altra stringa per specificare l'account di sistema locale. Per altre informazioni, vedere la sezione Osservazioni.

[in] pwszPassword

Stringa contenente la password per l'account specificato in pwszAccountName.

Impostare questo parametro su NULL se è specificato l'account di sistema locale. Se si imposta il flag TASK_FLAG_RUN_ONLY_IF_LOGGED_ON, è anche possibile impostare pwszPassword su NULL per gli account utente locali o di dominio. Usare il metodo IScheduledWorkItem::SetFlags per impostare il flag.

L'utilità di pianificazione archivia le informazioni sull'account una sola volta per tutte le attività che usano lo stesso account. Se la password dell'account viene aggiornata per un'attività, tutte le attività che usano lo stesso account useranno la password aggiornata.

Al termine dell'uso della password, cancellare le informazioni sulla password chiamando la funzione SecureZeroMemory . Per altre informazioni sulla protezione delle password, vedere Gestione delle password.

Valore restituito

Il metodo SetAccountInformation restituisce uno dei valori seguenti. Si noti che gli errori di questa chiamata possono essere restituiti anche dalla chiamata successiva a IPersistFile::Save.

Codice restituito Descrizione
S_OK
L'operazione è stata completata.
E_ACCESSDENIED
Il chiamante non dispone dell'autorizzazione per eseguire l'operazione. Per altre informazioni, vedere la sezione Osservazioni.
E_INVALIDARG
Gli argomenti non sono validi.
E_OUTOFMEMORY
Memoria insufficiente.
SCHED_E_NO_SECURITY_SERVICES
I servizi di sicurezza sono disponibili solo in Windows Server 2003, Windows XP e Windows 2000.
SCHED_E_UNSUPPORTED_ACCOUNT_OPTION
Il parametro pwszPassword è stato impostato su NULL, ma il flag di TASK_FLAG_RUN_ONLY_IF_LOGGED_ON non è stato impostato.
SCHED_E_ACCOUNT_INFORMATION_NOT_SET
Il parametro pwszPassword non è corretto. In Windows Server 2003 l'utilità di pianificazione convalida la password al momento della creazione del processo (durante una chiamata a IPersistFile::Save). Tenere presente che se si verifica questo errore, il file di processo verrà comunque creato.

Commenti

Questo metodo è per Windows Server 2003, Windows XP e Windows 2000.

Se pwszAccountName specifica l'account di sistema locale, il chiamante deve essere un amministratore nel computer locale o un'applicazione in esecuzione nell'account di sistema locale. In caso contrario, questo metodo avrà esito negativo.

La password specificata in pwszPassword viene usata per accedere all'account quando viene eseguito l'elemento di lavoro. Una password errata genera un errore quando viene eseguito l'elemento di lavoro. In Windows Server 2003, tuttavia, Utilità di pianificazione convalida la password al momento della creazione del processo (durante una chiamata a IPersistFile::Save).

In genere, le password hanno una data di scadenza. Se si pianificano le attività eseguite in modo indefinito, è necessario aggiornare l'attività per riflettere la nuova password.

Si noti che gli errori possono essere restituiti dalla chiamata iniziale a SetAccountInformation o dalla chiamata successiva a IPersistFile::Save.

Il servizio Utilità di pianificazione deve essere in esecuzione per la riuscita di questa chiamata. SetAccountInformation genera una chiamata di routine remota (RPC) al servizio Utilità di pianificazione, ma la chiamata RPC non viene eseguita finché non viene chiamato IPersistFile::Save.

Il codice restituito E_ACCESSDENIED viene restituito in base alle condizioni seguenti:

  • Il chiamante non ha accesso in scrittura al file che rappresenta l'elemento di lavoro pianificato.
  • L'account locale è stato specificato (pwszAccountName è stato impostato su L"), ma il chiamante non è un amministratore nel computer locale né un'applicazione in esecuzione nell'account di sistema locale.
  • Una password NULL è stata specificata in pwszPassword, ma il chiamante non è un amministratore nel computer locale, né è in esecuzione nell'account di sistema locale.
  • L'applicazione è in esecuzione con un nome utente diverso rispetto all'utente denominato specificato nel parametro pwszAccountName .
Dopo aver impostato le informazioni sull'account per un elemento di lavoro, assicurarsi di chiamare IPersistFile::Save per salvare l'oggetto elemento di lavoro modificato su disco.

Esempio

Per altre informazioni e un esempio di come impostare le informazioni sull'account di un'attività, vedere Esempio di codice C/C++: Impostazione delle informazioni sull'account attività.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione mstask.h
Libreria Mstask.lib
DLL Mstask.dll

Vedi anche

IScheduledWorkItem

IScheduledWorkItem::GetAccountInformation

IScheduledWorkItem::SetFlags