Contesti di sicurezza per le attività
Le attività vengono registrate ed eseguite in un contesto di sicurezza specifico. Gli utenti possono creare applicazioni che registrano, aggiornano, eliminano o eseguono attività, ma l'utente deve fornire le credenziali corrette quando un'attività viene registrata e l'applicazione deve essere in esecuzione in un processo con i privilegi corretti.
Specifica delle credenziali
È possibile specificare il contesto di sicurezza per un'attività specificando le credenziali nei metodi ITaskFolder::RegisterTask o ITaskFolder::RegisterTaskDefinition (TaskFolder.RegisterTask o TaskFolder.RegisterTaskDefinition per lo scripting) o assegnando un'entità alla proprietà Principal di ITaskDefinition (TaskDefinition.Principal per lo scripting). Se viene creata un'entità per una definizione di attività e quindi la definizione dell'attività viene registrata usando il metodo RegisterTaskDefinition con credenziali diverse specificate nei parametri del metodo, le credenziali specificate nel metodo RegisterTaskDefinition sovrascriveranno le credenziali nell'entità. Se viene creata un'entità per una definizione di attività tramite XML e quindi il codice XML per l'attività viene registrato usando il metodo RegisterTask con credenziali diverse specificate nei parametri del metodo, le credenziali specificate nel metodo RegisterTask sovrascriveranno le credenziali nell'entità.
Specificare un account utente o un gruppo quando si registra un'attività o si specifica il principio per un'attività. Il contesto di sicurezza dell'account utente o del gruppo viene usato per il contesto di sicurezza dell'attività. In questi metodi e proprietà si definisce anche il tipo di accesso. Il tipo di accesso è definito da una delle costanti nell'enumerazione TASK_LOGON_TYPE .
Le attività registrate con il flag TASK_LOGON_PASSWORD o TASK_LOGON_S4U verranno avviate solo se l'utente specificato dispone dell'accesso come privilegio batch abilitato. Amministrazione istrators e gli utenti del gruppo Backup Operators hanno questo privilegio abilitato per impostazione predefinita.
Quando si chiama il metodo ITaskService::Connessione (TaskService.Connessione per lo scripting), qualsiasi chiamata di metodo successiva al servizio Utilità di pianificazione userà le credenziali passate al metodo Connessione. Questo aspetto è importante da considerare quando si registrano attività con un tipo di accesso interattivo. Quando si registra un'attività con il tipo di accesso uguale a TASK_LOGON_INTERACTIVE_TOKEN e l'attività non dispone di credenziali specificate nella proprietà Principal della definizione dell'attività, specificata nei parametri di RegisterTaskDefinition o specificata nel codice XML passato a RegisterTask, l'attività verrà registrata con le credenziali dell'utente che ha chiamato il Connessione Metodo.
Sicurezza dell'account utente (UAC) per le attività
Controllo dell'account utente consente agli utenti di esercitare funzionalità generali, ad esempio l'esecuzione di programmi e il salvataggio e la modifica dei dati senza esporre privilegi amministrativi. Per impostazione predefinita, un'attività viene eseguita con privilegi di basso livello quando controllo dell'account utente è attivato. Le attività possono specificare che verranno eseguite con privilegi elevati o con privilegi limitati impostando un livello di privilegio dall'enumerazione TASK_RUNLEVEL_TYPE per la proprietà RunLevel di IPrincipal (Principal.RunLevel per lo scripting). Il valore della proprietà RunLevel determina il livello di privilegio a cui verranno eseguite le azioni di un'attività. Se le azioni di un'attività devono avere privilegi elevati per l'esecuzione, è necessario impostare la proprietà RunLevel su TASK_RUNLEVEL_HIGHEST. Se un'attività viene registrata usando il gruppo Amministrazione istrators per il contesto di sicurezza dell'attività, è necessario impostare anche la proprietà RunLevel su TASK_RUNLEVEL_HIGHEST se si desidera eseguire l'attività. Se un'attività viene registrata usando l'account Builtin\Amministrazione istrator o gli account del sistema locale o del servizio locale, la proprietà RunLevel verrà ignorata. Il valore della proprietà verrà ignorato anche se controllo dell'account utente è disattivato. Il valore della proprietà RunLevel non influisce sulle autorizzazioni necessarie per eseguire o eliminare un'attività.
Nota
Dopo l'aggiornamento di un sistema operativo da Windows XP a Windows Vista, le attività registrate usando l'account Builtin\Amministrazione istrator in Windows XP avranno la proprietà RunLevel impostata su TASK_RUNLEVEL_LUA. Ciò potrebbe causare l'esito negativo di alcune attività. È possibile aggiornare questa proprietà manualmente per assicurarsi che tutte le attività vengano eseguite.
Da un processo con privilegi limitati non è possibile registrare un'attività con la proprietà RunLevel uguale a TASK_RUNLEVEL_HIGHEST, ma è possibile registrare un'attività con la proprietà RunLevel uguale a TASK_RUNLEVEL_LUA. Le azioni dell'attività verranno eseguite con privilegi limitati. Non è consentito registrare l'attività come Builtin/Amministrazione istrator, Local System o per un gruppo.
Da un processo con privilegi elevati è possibile registrare un'attività con la proprietà RunLevel uguale a TASK_RUNLEVEL_HIGHEST o TASK_RUNLEVEL_LUA. L'attività verrà eseguita con un livello di privilegio deciso dalla proprietà RunLevel, a meno che non si usi l'account Amministrazione istrator, nel qual caso l'attività viene eseguita con privilegi elevati.
Da un processo con privilegi elevati è possibile registrare un'attività utilità di pianificazione 1.0. Il servizio Utilità di pianificazione imposta il livello di esecuzione dell'attività su TASK_RUNLEVEL_HIGHEST e l'attività verrà eseguita con privilegi elevati.
Da un processo con privilegi limitati è anche possibile registrare un'attività utilità di pianificazione 1.0. Il servizio Utilità di pianificazione imposta il livello di esecuzione dell'attività su TASK_RUNLEVEL_LUA e l'attività verrà eseguita con privilegi limitati. Se questa attività viene aggiornata da un processo con privilegi elevati, il livello di esecuzione dell'attività rimarrà TASK_RUNLEVEL_LUA.
Sicurezza per la registrazione delle attività
Quando si registra un'attività da un account membro del gruppo Amministrazione istrators, è sufficiente specificare una password durante la registrazione dell'attività nelle situazioni seguenti:
- Se si registra l'attività da eseguire nel contesto di sicurezza dell'account o di un account utente diverso e si usa il flag TASK_LOGON_PASSWORD nel metodo RegisterTask o RegisterTaskDefinition.
- Se si registra l'attività da eseguire nel contesto di sicurezza di un account utente diverso e si usa il flag TASK_LOGON_S4U nel metodo RegisterTask o RegisterTaskDefinition.
Non è possibile usare un gruppo di utenti come contesto di sicurezza di un'attività quando si registra l'attività usando il flag TASK_LOGON_S4U o il flag TASK_LOGON_PASSWORD nel metodo RegisterTask o RegisterTaskDefinition.
Quando si registra un'attività da un account utente che non è membro del gruppo Amministrazione istrators, non è necessario specificare una password quando si registra l'attività se si registra l'attività da eseguire nel contesto di sicurezza dell'account e si usa il tipo di accesso S4U o interattivo. In caso contrario, è necessario specificare una password durante la registrazione dell'attività. Inoltre, non è possibile registrare l'attività usando l'account del servizio locale o usando un gruppo per il contesto di sicurezza dell'attività.
Sicurezza per le attività di lettura, aggiornamento, eliminazione ed esecuzione
Per impostazione predefinita, un utente che crea un'attività può leggere, aggiornare, eliminare ed eseguire l'attività. Un utente deve disporre dell'autorizzazione di scrittura di file per un file di attività per aggiornare un'attività, l'autorizzazione di lettura file per un file di attività per leggere un'attività, eliminare l'autorizzazione per eliminare un'attività e l'autorizzazione di esecuzione di file per un'attività per eseguire un'attività usando i metodi IRegisteredTask::Run o RunEx (RegisteredTask.Run ed RunEx per lo scripting). I membri del gruppo Amministrazione istrators o l'account SYSTEM possono leggere, aggiornare, eliminare ed eseguire qualsiasi attività. I membri del gruppo Users, l'account LocalService e l'account NetworkService possono solo leggere, aggiornare, eliminare ed eseguire le attività create. Questo comportamento predefinito viene modificato quando viene modificato l'elenco DACL del file di attività, nel qual caso l'elenco DI CONTROLLO di accesso definisce quali utenti dispongono di autorizzazioni di scrittura, lettura, esecuzione ed eliminazione di file. Per impostare le autorizzazioni per un file di attività, usare il metodo IRegisteredTask.SetSecurityDescriptor (RegisteredTask.SetSecurityDescriptor per lo scripting) o impostare il descrittore di sicurezza quando si registra l'attività usando i metodi RegisterTask o RegisterTaskDefinition.
Un utente deve disporre dell'autorizzazione WriteDAC oltre alle autorizzazioni di lettura/scrittura per aggiornare un'attività se l'aggiornamento dell'attività richiede una modifica all'elenco di controllo di accesso condiviso per l'attività.
Argomenti correlati