Sdílet prostřednictvím


Kontexty zabezpečení pro úkoly

Úlohy se registrují a spouští v konkrétním kontextu zabezpečení. Uživatelé můžou vytvářet aplikace, které úspěšně registrují, aktualizují, odstraní nebo spouštějí úlohy, ale uživatel musí zadat správné přihlašovací údaje při registraci úkolu a aplikace musí být spuštěna v procesu se správnými oprávněními.

Zadání přihlašovacích údajů

Kontext zabezpečení pro úlohu můžete zadat zadáním přihlašovacích údajů v ITaskFolder::RegisterTask nebo ITaskFolder::RegisterTaskDefinition (TaskFolder.RegisterTask nebo Metody TaskFolder.RegisterTaskDefinition pro skriptování) nebo přiřazením objektu zabezpečení k Principal Vlastnost ITaskDefinition (TaskDefinition.Principal pro skriptování). Pokud se pro definici úlohy vytvoří objekt zabezpečení a pak se definice úlohy zaregistruje pomocí metody RegisterTaskDefinition s různými přihlašovacími údaji zadanými v parametrech metody, pak přihlašovací údaje zadané v RegisterTaskDefinition metoda přepíše přihlašovací údaje v objektu zabezpečení. Pokud se pro definici úlohy vytvoří objekt zabezpečení pomocí kódu XML a pak se kód XML úlohy zaregistruje pomocí metody RegisterTask s různými přihlašovacími údaji zadanými v parametrech metody, pak přihlašovací údaje zadané v metodě RegisterTask přepíší přihlašovací údaje v objektu zabezpečení.

Při registraci úkolu nebo určení principu úkolu zadáte uživatelský účet nebo skupinu. Kontext zabezpečení uživatelského účtu nebo skupiny se používá pro kontext zabezpečení úlohy. V těchto metodách a vlastnostech definujete také typ přihlášení. Typ přihlášení je definován jednou z konstant v TASK_LOGON_TYPE výčtu.

Úlohy zaregistrované pomocí příznaku TASK_LOGON_PASSWORD nebo TASK_LOGON_S4U se spustí jenom v případě, že má zadaný uživatel povolené oprávnění Přihlásit se jako batch. Správci a uživatelé skupiny Backup Operators mají ve výchozím nastavení toto oprávnění povolené.

Při volání metody ITaskService::Connect (TaskService.Connect pro skriptování) budou všechna následná volání metody do služby Plánovač úloh používat přihlašovací údaje, které byly předány metodě Connect. To je důležité vzít v úvahu při registraci úloh s interaktivním typem přihlášení. Když zaregistrujete úlohu s typem přihlášení, který se rovná TASK_LOGON_INTERACTIVE_TOKEN a úloha nemá přihlašovací údaje zadané ve vlastnosti Objekt zabezpečení definice úlohy, zadané v parametrech RegisterTaskDefinition, nebo zadané v xml, který je předán RegisterTask, , úloha se zaregistruje pomocí přihlašovacích údajů uživatele, který volal metodu Connect.

Zabezpečení řízení uživatelských účtů (UAC) pro úlohy

řízení uživatelských účtů (UAC) umožňuje uživatelům vykonávat obecné funkce, jako je spouštění programů a ukládání a úpravy dat, aniž by museli vystavit oprávnění správce. Ve výchozím nastavení se úloha spustí s oprávněními nízké úrovně, když je zapnutý řízení uživatelských účtů. Úlohy mohou určit, že se budou spouštět se zvýšenými oprávněními nebo nízkými oprávněními nastavením úrovně oprávnění z TASK_RUNLEVEL_TYPE výčtu pro vlastnost RunLevel IPrincipal (Principal.RunLevel pro skriptování). Hodnota vlastnosti RunLevel určuje úroveň oprávnění, na které se budou spouštět akce úlohy. Pokud akce úkolu musí mít ke spuštění zvýšená oprávnění, musíte nastavit vlastnost RunLevel na TASK_RUNLEVEL_HIGHEST. Pokud je úloha zaregistrovaná pomocí skupiny Administrators pro kontext zabezpečení úlohy, musíte také nastavit vlastnost RunLevel na TASK_RUNLEVEL_HIGHEST, pokud chcete úlohu spustit. Pokud je úloha zaregistrovaná pomocí účtu Builtin\Administrator nebo účtů Local System nebo Local Service, bude vlastnost RunLevel ignorována. Hodnota vlastnosti bude ignorována také v případě, že je vypnuté řízení uživatelských účtů (UAC). Hodnota vlastnosti RunLevel nemá vliv na oprávnění potřebná ke spuštění nebo odstranění úlohy.

Poznámka

Po upgradu operačního systému ze systému Windows XP na systém Windows Vista budou úlohy zaregistrované pomocí účtu Builtin\Administrator v systému Windows XP mít vlastnost SpustitLevel nastavena na TASK_RUNLEVEL_LUA. To může způsobit selhání některých úkolů. Tuto vlastnost můžete aktualizovat ručně, aby se zajistilo, že se všechny úlohy spustí.

 

Z procesu nízkého oprávnění nelze zaregistrovat úlohu s RunLevel vlastnost rovná TASK_RUNLEVEL_HIGHEST, ale můžete zaregistrovat úlohu s RunLevel vlastnost rovna TASK_RUNLEVEL_LUA. Akce úlohy se spustí s nízkými oprávněními. Nemáte povoleno registrovat úlohu jako Builtin/Administrator, Local System nebo pro skupinu.

Z procesu se zvýšenými oprávněními můžete úlohu zaregistrovat pomocí vlastnosti RunLevel rovna TASK_RUNLEVEL_HIGHEST nebo TASK_RUNLEVEL_LUA. Úloha bude spuštěna s úrovní oprávnění, kterou rozhodl RunLevel vlastnost, pokud nepoužíváte účet správce, v takovém případě se úloha spustí se zvýšenými oprávněními.

Z procesu se zvýšenými oprávněními můžete zaregistrovat úlohu Plánovače úloh 1.0. Služba Plánovač úloh nastaví úroveň spuštění úlohy na TASK_RUNLEVEL_HIGHEST a úloha se spustí se zvýšenými oprávněními.

Z procesu nízkého oprávnění můžete také zaregistrovat úlohu Plánovače úloh 1.0. Služba Plánovač úloh nastaví úroveň spuštění úlohy na TASK_RUNLEVEL_LUA a úloha se spustí s nízkými oprávněními. Pokud se tato úloha aktualizuje z procesu se zvýšenými oprávněními, úroveň spuštění úkolu zůstane TASK_RUNLEVEL_LUA.

Zabezpečení pro registraci úloh

Když úlohu zaregistrujete z účtu, který je členem skupiny Administrators, stačí zadat heslo pouze při registraci úkolu v následujících situacích:

  • Pokud úlohu zaregistrujete pro spuštění v kontextu zabezpečení vašeho účtu nebo jiného uživatelského účtu a použijete příznak TASK_LOGON_PASSWORD v metodě RegisterTask nebo RegisterTaskDefin ition.
  • Pokud zaregistrujete úlohu, která se má spustit v kontextu zabezpečení jiného účtu uživatele, a použijete příznak TASK_LOGON_S4U v RegisterTask nebo Metodu RegisterTaskDefinition.

Skupinu uživatelů nelze použít jako kontext zabezpečení úkolu při registraci úlohy pomocí příznaku TASK_LOGON_S4U nebo příznaku TASK_LOGON_PASSWORD v metodě RegisterTask nebo RegisterTaskDefin ition.

Když úlohu zaregistrujete z uživatelského účtu, který není členem skupiny Administrators, nemusíte při registraci úkolu zadávat heslo, pokud úlohu zaregistrujete, aby se spustila v kontextu zabezpečení vašeho účtu a používáte typ S4U nebo interaktivního přihlášení. V opačném případě musíte při registraci úkolu zadat heslo. Kromě toho nelze úlohu zaregistrovat pomocí účtu místní služby nebo pomocí skupiny pro kontext zabezpečení úkolu.

Zabezpečení pro čtení, aktualizaci, odstraňování a spouštění úloh

Ve výchozím nastavení může uživatel, který vytváří úlohu, číst, aktualizovat, odstranit a spustit úlohu. Uživatel musí mít oprávnění k zápisu souboru úkolu k aktualizaci úlohy, oprávnění ke čtení souboru úkolu, ke čtení úkolu, odstranění oprávnění k odstranění úlohy a spuštění souboru u úlohy, aby mohl spustit úlohu pomocí IRegisteredTask::Spustit nebo Metody RunEx (RegisteredTask.Run a RunEx pro skriptování). Členové skupiny Administrators nebo účtu SYSTEM můžou číst, aktualizovat, odstraňovat a spouštět všechny úlohy. Členové skupiny Users, účet LocalService a účet NetworkService mohou číst, aktualizovat, odstranit a spouštět úlohy, které vytvořily. Toto výchozí chování se změní při změně seznamu DACL souboru úkolu, v takovém případě seznam DACL definuje, kteří uživatelé mají oprávnění k zápisu, čtení, spuštění a odstranění souboru. Pokud chcete nastavit oprávnění pro soubor úkolu, použijte metodu IRegisteredTask.SetSecurityDescriptor (RegisteredTask.SetSecurityDescriptor pro skriptování) nebo při registraci úlohy pomocí metody RegisterTask nebo RegisterTaskDefinition metody.

Uživatel musí mít oprávnění WriteDAC kromě oprávnění ke čtení a zápisu, aby mohl aktualizovat úlohu, pokud aktualizace úkolu vyžaduje změnu seznamu DACL pro úkol.

informace o registraci úloh

o plánovače úloh

posílení zabezpečení úloh

TaskFolder.RegisterTaskDefinition

ITaskFolder::RegisterTaskDefinition

hlavní vlastnost ITaskDefinition

TASK_LOGON_TYPE