Contextes de sécurité pour les tâches

Les tâches sont inscrites et exécutées dans un contexte de sécurité spécifique. Les utilisateurs peuvent créer des applications qui inscrivent, mettent à jour, suppriment ou exécutent des tâches, mais l’utilisateur doit fournir les informations d’identification correctes lorsqu’une tâche est inscrite et l’application doit s’exécuter dans un processus avec les privilèges appropriés.

Spécification des informations d’identification

Vous pouvez spécifier le contexte de sécurité d’une tâche en spécifiant des informations d’identification dans les méthodes ITaskFolder :: RegisterTask ou ITaskFolder :: RegisterTaskDefinition (TaskFolder. RegisterTask ou TaskFolder. RegisterTaskDefinition pour l’écriture de scripts) ou en affectant un principal à la propriété principale de ITaskDefinition (TaskDefinition. principal pour l’écriture de scripts). Si un principal est créé pour une définition de tâche, puis que la définition de tâche est inscrite à l’aide de la méthode RegisterTaskDefinition avec d’autres informations d’identification spécifiées dans les paramètres de la méthode, les informations d’identification spécifiées dans la méthode RegisterTaskDefinition remplacent les informations d’identification dans le principal. Si un principal est créé pour une définition de tâche à l’aide de XML, puis que le XML de la tâche est inscrit à l’aide de la méthode RegisterTask avec des informations d’identification différentes spécifiées dans les paramètres de la méthode, les informations d’identification spécifiées dans la méthode RegisterTask remplacent les informations d’identification dans le principal.

Vous spécifiez un compte d’utilisateur ou un groupe lors de l’inscription d’une tâche ou la spécification du principe d’une tâche. Le contexte de sécurité du compte d’utilisateur ou du groupe est utilisé pour le contexte de sécurité de la tâche. Dans ces méthodes et propriétés, vous définissez également le type d’ouverture de session. Le type d’ouverture de session est défini par l’une des constantes de l’énumération du _ _ type de connexion à la tâche.

Les tâches inscrites avec _ l' _ indicateur de mot de passe d’ouverture de session ou d’ouverture de session de tâche s’exécutent _ _ uniquement si le privilège ouvrir une session en tant que par lot est activé pour l’utilisateur spécifié. Les utilisateurs du groupe administrateurs et opérateurs de sauvegarde disposent de ce privilège activé par défaut.

quand vous appelez la méthode la :: Connecter (TaskService. Connecter pour la création de scripts), tous les appels de méthode suivants au service Planificateur de tâches utilisent les informations d’identification passées à la méthode Connecter . Il est important de prendre en compte lors de l’enregistrement de tâches avec un type de connexion interactive. lorsque vous enregistrez une tâche avec le type de connexion égal à _ jeton interactif d’ouverture de session _ _ et que la tâche ne contient pas d’informations d’identification spécifiées dans la propriété principale de la définition de tâche, spécifiées dans les paramètres à RegisterTaskDefinition, ou spécifiées dans le XML transmis à RegisterTask, la tâche est inscrite avec les informations d’identification de l’utilisateur qui a appelé la méthode Connecter .

Sécurité du contrôle de compte d’utilisateur (UAC) pour les tâches

Le contrôle de compte d’utilisateur (UAC) permet aux utilisateurs d’exercer des fonctionnalités générales telles que l’exécution de programmes et l’enregistrement et la modification de données sans exposer de privilèges d’administrateur. Par défaut, une tâche s’exécute avec des privilèges de bas niveau lorsque le contrôle de compte d’utilisateur est activé. Les tâches peuvent spécifier qu’elles s’exécutent avec des privilèges élevés ou des privilèges faibles en définissant un niveau de privilège à partir de l’énumération de _ _ type tâche RUNLEVEL pour la propriété RUNLEVEL de IPrincipal (principal. RUNLEVEL pour les scripts). La valeur de la propriété runlevel détermine le niveau de privilège à partir duquel les actions d’une tâche seront exécutées. Si les actions d’une tâche doivent avoir des privilèges élevés pour s’exécuter, vous devez définir la propriété runlevel sur la tâche _ runlevel la _ plus élevée. Si une tâche est inscrite à l’aide du groupe administrateurs pour le contexte de sécurité de la tâche, vous devez également définir la propriété runlevel sur la tâche _ runlevel la _ plus élevée si vous souhaitez exécuter la tâche. Si une tâche est inscrite à l’aide du \ compte administrateur intégré ou des comptes système local ou service local, la propriété runlevel est ignorée. La valeur de propriété sera également ignorée si le contrôle de compte d’utilisateur (UAC) est désactivé. La valeur de la propriété runlevel n’affecte pas les autorisations nécessaires à l’exécution ou à la suppression d’une tâche.

Notes

après la mise à niveau d’un système d’exploitation de Windows xp vers Windows Vista, les tâches qui ont été inscrites à l’aide du \ compte administrateur intégré sur Windows XP auront la propriété RunLevel définie sur TASK _ RunLevel _ LUA. Cela peut entraîner l’échec de certaines tâches. Vous pouvez mettre à jour cette propriété manuellement pour vous assurer que toutes les tâches s’exécuteront.

À partir d’un processus à faibles privilèges, vous ne pouvez pas inscrire une tâche avec la propriété runlevel égale à la tâche _ runlevel la _ plus élevée, mais vous pouvez inscrire une tâche avec la propriété runlevel égale à Task _ runlevel _ LUA. Les actions de tâche sont exécutées avec des privilèges faibles. Vous n’êtes pas autorisé à inscrire la tâche en tant que builtin/administrateur, système local ou pour un groupe.

À partir d’un processus avec privilèges élevés, vous pouvez inscrire une tâche avec la propriété runlevel égale à la tâche _ runlevel la _ plus élevée ou à la tâche _ runlevel _ LUA. La tâche est exécutée avec un niveau de privilège déterminé par la propriété runlevel , sauf si vous utilisez le compte d’administrateur, auquel cas la tâche est exécutée avec des privilèges élevés.

À partir d’un processus avec élévation de privilèges, vous pouvez inscrire une tâche Planificateur de tâches 1,0. Le service Planificateur de tâches définit le niveau d’exécution de la tâche sur tâche _ RUNLEVEL le _ plus élevé et la tâche s’exécute avec des privilèges élevés.

À partir d’un processus à faibles privilèges, vous pouvez également inscrire une tâche Planificateur de tâches 1,0. Le service Planificateur de tâches définit le niveau d’exécution de la tâche sur TASK _ RUNLEVEL _ LUA et la tâche s’exécute avec des privilèges faibles. Si cette tâche est mise à jour à partir d’un processus avec élévation de privilèges, le niveau d’exécution de la tâche reste tâche _ RUNLEVEL _ lua.

Sécurité pour l’inscription des tâches

Lorsque vous inscrivez une tâche à partir d’un compte membre du groupe administrateurs, il vous suffit de spécifier un mot de passe lors de l’inscription de la tâche dans les cas suivants :

  • Si vous inscrivez la tâche pour qu’elle s’exécute sous le contexte de sécurité de votre compte ou d’un compte d’utilisateur différent et que vous utilisez l' _ indicateur de mot de passe de connexion _ à la tâche dans la méthode RegisterTask ou RegisterTaskDefinition .
  • Si vous inscrivez la tâche pour qu’elle s’exécute sous le contexte de sécurité d’un compte d’utilisateur différent et que vous utilisez l' _ indicateur S4U d’ouverture de session de _ la tâche dans la méthode RegisterTask ou RegisterTaskDefinition .

Vous ne pouvez pas utiliser un groupe d’utilisateurs comme contexte de sécurité d’une tâche lorsque vous inscrivez la tâche à l’aide de l' _ indicateur S4U d’ouverture de session de la tâche _ ou de l' _ indicateur de mot de passe d’ouverture _ de session de la tâche dans la méthode RegisterTask ou RegisterTaskDefinition .

Lorsque vous inscrivez une tâche à partir d’un compte d’utilisateur qui n’est pas membre du groupe administrateurs, vous n’avez pas besoin de spécifier un mot de passe lors de l’inscription de la tâche si vous inscrivez la tâche pour qu’elle s’exécute sous le contexte de sécurité de votre compte et que vous utilisiez le type d’ouverture de session S4U ou interactive. Dans le cas contraire, vous devez spécifier un mot de passe lors de l’inscription de la tâche. En outre, vous ne pouvez pas inscrire la tâche à l’aide du compte de service local ou à l’aide d’un groupe pour le contexte de sécurité de la tâche.

Sécurité pour la lecture, la mise à jour, la suppression et l’exécution de tâches

Par défaut, un utilisateur qui crée une tâche peut lire, mettre à jour, supprimer et exécuter la tâche. Un utilisateur doit disposer d’une autorisation d’écriture de fichier sur un fichier de tâche pour mettre à jour une tâche, une autorisation de lecture de fichier sur un fichier de tâche pour lire une tâche, l’autorisation supprimer sur un fichier de tâche pour supprimer une tâche et l’autorisation d’exécution de fichier sur une tâche pour exécuter une tâche à l' aide des méthodes IRegisteredTask :: Run ou RunEx (RegisteredTask. Run Les membres du groupe administrateurs ou du compte système peuvent lire, mettre à jour, supprimer et exécuter des tâches. Les membres du groupe utilisateurs, du compte LocalService et du compte NetworkService peuvent uniquement lire, mettre à jour, supprimer et exécuter les tâches qu’ils ont créées. Ce comportement par défaut est modifié lorsque la liste DACL du fichier de tâche est modifiée, auquel cas la liste DACL définit les utilisateurs qui disposent d’une autorisation d’écriture de fichier, de lecture, d’exécution et de suppression. Pour définir des autorisations pour un fichier de tâche, utilisez la méthode IRegisteredTask. SetSecurityDescriptor (RegisteredTask. SetSecurityDescriptor pour l’écriture de scripts) ou définissez le descripteur de sécurité lorsque vous inscrivez la tâche à l’aide des méthodes RegisterTask ou RegisterTaskDefinition .

Un utilisateur doit disposer de l’autorisation WriteDAC en plus des autorisations de lecture/écriture pour mettre à jour une tâche si la mise à jour de la tâche nécessite une modification de la liste DACL pour la tâche.

Informations d’inscription de la tâche

À propos de l’Planificateur de tâches

Renforcement de la sécurité des tâches

TaskFolder. RegisterTaskDefinition

ITaskFolder :: RegisterTaskDefinition

Propriété principal de ITaskDefinition

_type de connexion à la tâche _