Delen via


Beveiligingscontexten voor taken

Taken worden geregistreerd en uitgevoerd onder een specifieke beveiligingscontext. Gebruikers kunnen toepassingen maken die taken kunnen registreren, bijwerken, verwijderen of uitvoeren, maar de gebruiker moet de juiste referenties opgeven wanneer een taak is geregistreerd en de toepassing moet worden uitgevoerd in een proces met de juiste bevoegdheden.

Referenties opgeven

U kunt de beveiligingscontext voor een taak opgeven door referenties op te geven in de methoden ITaskFolder::RegisterTask of ITaskFolder::RegisterTaskDefinition (TaskFolder.RegisterTask of TaskFolder.RegisterTaskDefinition voor scripting) of door een principal toe te wijzen aan de principal-eigenschap van ITaskDefinition (TaskDefinition.Principal voor scripting). Als er een principal wordt gemaakt voor een taakdefinitie en de taakdefinitie wordt geregistreerd met behulp van de methode RegisterTaskDefinition met verschillende referenties die zijn opgegeven in de methodeparameters, worden de referenties die zijn opgegeven in de methode RegisterTaskDefinition , de referenties in de principal overschreven. Als er een principal wordt gemaakt voor een taakdefinitie met XML en de XML voor de taak wordt geregistreerd met behulp van de Methode RegisterTask met verschillende referenties die zijn opgegeven in de methodeparameters, worden de referenties die zijn opgegeven in de Methode RegisterTask , de referenties in de principal overschreven.

U geeft een gebruikersaccount of groep op bij het registreren van een taak of het opgeven van het principe voor een taak. De beveiligingscontext van het gebruikersaccount of de groep wordt gebruikt voor de beveiligingscontext van de taak. In deze methoden en eigenschappen definieert u ook het aanmeldingstype. Het aanmeldingstype wordt gedefinieerd door een van de constanten in de opsomming TASK_LOGON_TYPE .

Taken die zijn geregistreerd bij de TASK_LOGON_PASSWORD of TASK_LOGON_S4U vlag worden alleen gestart als de opgegeven gebruiker de aanmelding als Batch-bevoegdheid heeft ingeschakeld. Beheerders en back-upoperators groep gebruikers hebben deze bevoegdheid standaard ingeschakeld.

Wanneer u de methode ITaskService::Connect (TaskService.Connect voor scripting) aanroept, worden voor alle volgende methode-aanroepen naar de Task Scheduler-service de referenties gebruikt die zijn doorgegeven aan de methode Connect . Dit is belangrijk om rekening mee te houden bij het registreren van taken met een interactief aanmeldingstype. Wanneer u een taak registreert met het aanmeldingstype dat gelijk is aan TASK_LOGON_INTERACTIVE_TOKEN en de taak geen referenties heeft die zijn opgegeven in de principal-eigenschap van de taakdefinitie, die is opgegeven in de parameters voor RegisterTaskDefinition of die is opgegeven in de XML die wordt doorgegeven aan RegisterTask, wordt de taak geregistreerd met de referenties van de gebruiker die de verbindingsmethode aangeroepen.

Gebruikersaccountbeheerbeveiliging (UAC) voor taken

Met Gebruikersaccountbeheer (UAC) kunnen gebruikers algemene functionaliteit uitoefenen, zoals het uitvoeren van programma's en het opslaan en wijzigen van gegevens zonder beheerdersbevoegdheden bloot te stellen. Een taak wordt standaard uitgevoerd met bevoegdheden op laag niveau wanneer UAC is ingeschakeld. Taken kunnen opgeven dat ze worden uitgevoerd met verhoogde bevoegdheden of lage bevoegdheden door een bevoegdheidsniveau in te stellen vanuit de TASK_RUNLEVEL_TYPE opsomming voor de eigenschap RunLevel van IPrincipal (Principal.RunLevel voor scripting). De waarde van de eigenschap RunLevel bepaalt het bevoegdheidsniveau waarop de acties van een taak worden uitgevoerd. Als de acties van een taak verhoogde bevoegdheden moeten hebben om uit te voeren, moet u de eigenschap RunLevel instellen op TASK_RUNLEVEL_HIGHEST. Als een taak is geregistreerd met behulp van de groep Administrators voor de beveiligingscontext van de taak, moet u ook de eigenschap RunLevel instellen op TASK_RUNLEVEL_HIGHEST als u de taak wilt uitvoeren. Als een taak is geregistreerd met behulp van het Ingebouwde\Administrator-account of het lokale systeem- of lokale serviceaccounts, wordt de eigenschap RunLevel genegeerd. De eigenschapswaarde wordt ook genegeerd als UAC (User Account Control) is uitgeschakeld. De waarde van de eigenschap RunLevel heeft geen invloed op de machtigingen die nodig zijn om een taak uit te voeren of te verwijderen.

Opmerking

Na het upgraden van een besturingssysteem van Windows XP naar Windows Vista, worden taken die zijn geregistreerd met het Builtin\Administrator-account in Windows XP, de eigenschap RunLevel ingesteld op TASK_RUNLEVEL_LUA. Dit kan ertoe leiden dat sommige taken mislukken. U kunt deze eigenschap handmatig bijwerken om ervoor te zorgen dat alle taken worden uitgevoerd.

 

Vanuit een proces met lage bevoegdheden kunt u geen taak registreren met de eigenschap RunLevel die gelijk is aan TASK_RUNLEVEL_HIGHEST, maar u kunt een taak registreren met de eigenschap RunLevel die gelijk is aan TASK_RUNLEVEL_LUA. De taakacties worden uitgevoerd met lage bevoegdheden. U mag de taak niet registreren als ingebouwd/administrator, lokaal systeem of voor een groep.

Vanuit een proces met verhoogde bevoegdheden kunt u een taak registreren met de eigenschap RunLevel die gelijk is aan TASK_RUNLEVEL_HIGHEST of TASK_RUNLEVEL_LUA. De taak wordt uitgevoerd met een bevoegdheidsniveau dat is bepaald door de eigenschap RunLevel , tenzij u het beheerdersaccount gebruikt. In dat geval wordt de taak uitgevoerd met verhoogde bevoegdheden.

Vanuit een verhoogd proces kunt u een Taakplanner 1.0-taak registreren. De Task Scheduler-service stelt het uitvoeringsniveau van de taak in op TASK_RUNLEVEL_HIGHEST en de taak wordt uitgevoerd met verhoogde bevoegdheden.

Vanuit een proces met lage bevoegdheden kunt u ook een Taakplanner 1.0-taak registreren. De Task Scheduler-service stelt het uitvoeringsniveau van de taak in op TASK_RUNLEVEL_LUA en de taak wordt uitgevoerd met lage bevoegdheden. Als deze taak wordt bijgewerkt vanuit een proces met verhoogde bevoegdheid, blijft het uitvoeringsniveau van de taak TASK_RUNLEVEL_LUA.

Beveiliging voor het registreren van taken

Wanneer u een taak registreert vanuit een account dat lid is van de groep Administrators, hoeft u alleen een wachtwoord op te geven tijdens het registreren van de taak in de volgende situaties:

  • Als u de taak registreert die moet worden uitgevoerd onder de beveiligingscontext van uw account of een ander gebruikersaccount en u de vlag TASK_LOGON_PASSWORD gebruikt in de methode RegisterTask of RegisterTaskDefinition .
  • Als u de taak registreert die moet worden uitgevoerd onder de beveiligingscontext van een ander gebruikersaccount en u de vlag TASK_LOGON_S4U gebruikt in de methode RegisterTask of RegisterTaskDefinition .

U kunt een gebruikersgroep niet gebruiken als beveiligingscontext van een taak wanneer u de taak registreert met behulp van de vlag TASK_LOGON_S4U of de TASK_LOGON_PASSWORD vlag in de methode RegisterTask of RegisterTaskDefinition .

Wanneer u een taak registreert van een gebruikersaccount dat geen lid is van de groep Administrators, hoeft u geen wachtwoord op te geven bij het registreren van de taak als u de taak registreert die moet worden uitgevoerd onder de beveiligingscontext van uw account en u het S4U- of interactieve aanmeldingstype gebruikt. Anders moet u een wachtwoord opgeven bij het registreren van de taak. U kunt de taak ook niet registreren met het lokale serviceaccount of met behulp van een groep voor de beveiligingscontext van de taak.

Beveiliging voor lezen, bijwerken, verwijderen en uitvoeren van taken

Standaard kan een gebruiker die een taak maakt de taak lezen, bijwerken, verwijderen en uitvoeren. Een gebruiker moet over een machtiging voor het schrijven van bestanden beschikken voor een taak om een taak bij te werken, de machtiging voor het lezen van een taak, het verwijderen van een machtiging voor een taak en het uitvoeren van een machtiging voor het uitvoeren van een taak met behulp van de IRegisteredTask::Run - of RunEx-methoden (RegisteredTask.Run en RunEx voor scripting). Leden van de groep Administrators of het SYSTEEM-account kunnen taken lezen, bijwerken, verwijderen en uitvoeren. Leden van de groep Gebruikers, het LocalService-account en het NetworkService-account kunnen alleen de gemaakte taken lezen, bijwerken, verwijderen en uitvoeren. Dit standaardgedrag wordt gewijzigd wanneer de DACL van het taakbestand wordt gewijzigd. In dat geval bepaalt de DACL welke gebruikers beschikken over machtigingen voor het schrijven, lezen, uitvoeren en verwijderen van bestanden. Als u machtigingen voor een taakbestand wilt instellen, gebruikt u de methode IRegisteredTask.SetSecurityDescriptor (RegisteredTask.SetSecurityDescriptor voor scripting) of stelt u de beveiligingsdescriptor in wanneer u de taak registreert met behulp van de RegisterTask- of RegisterTaskDefinition-methoden.

Een gebruiker moet een WriteDAC-machtiging hebben naast de lees-/schrijfmachtigingen om een taak bij te werken als voor de taakupdate een wijziging in de DACL voor de taak is vereist.

informatie over taakregistratie

Over de taakplanner

Beveiliging van taakbeveiliging

TaskFolder.RegisterTaskDefinition

ITaskFolder::RegisterTaskDefinition

Principal Property of ITaskDefinition

TASK_LOGON_TYPE