154 votes

Comment renommer une tâche dans Task Scheduled sur Windows Server 2008 R2 ?

J'ai quelques tâches dans le planificateur de tâches sur Windows 2008 R2. Je les ai créées en tant qu'administrateur et je suis connecté en tant qu'administrateur. Je n'ai aucun moyen facile de renommer les tâches. Le seul moyen que j'ai trouvé est d'exporter la configuration de la tâche dans un fichier XML et de la réimporter dans une nouvelle tâche, d'y changer le nom, puis de supprimer l'ancienne tâche. Existe-t-il un moyen plus simple ?

162voto

Wesley Points 32020

Félicitations ! Vous êtes confronté à un problème qui a laissé de nombreux utilisateurs/administrateurs de Windows perplexes. Non, vous ne pouvez pas renommer une tâche, sauf pour l'exporter, la renommer et la réimporter. Oui, c'est assez bête. Peut-être qu'un scripteur entreprenant pourrait créer un simple script PowerShell qui automatise cela, mais en attendant, vous êtes coincé avec votre exportation/importation en deux étapes. Désolé. =(

(Vous ne pouvez pas non plus renommer un dossier de tâches après l'avoir créé).

11voto

Damien Points 201

Ce n'est pas la meilleure solution, mais elle peut sauver des vies.

Les tâches sont stockées dans C:\Windows\System32\Tasks en format XML importable à l'aide de schtasks.exe . Comme l'a dit Weasly, renommer le fichier ne fonctionne pas mais Créer/Supprimer le fera. Cela dit, vous avez besoin du mot de passe de l'utilisateur courant (que vous avez)

Par rapport à la suggestion de Weasly, elle ne fait que sauter la phase d'exportation.

  1. créer une deuxième tâche en utilisant la première comme modèle
  2. retirer l'original

使用方法 srcname y dstname et un admin Shell dans le dossier Tasks :

C:\Windows\System32\Tasks>schtasks /Create /tn dstname /xml srcname /ru [running username] /rp [password]
SUCCESS: The scheduled task "dstname" has successfully been created.

C:\Windows\System32\Tasks>schtasks /delete /tn srcname /f
SUCCESS: The scheduled task "srcname" was successfully deleted.

Notes :

  • Avec un peu de script, vous pouvez renommer un grand nombre de tâches sans effort.
  • Si nécessaire, vous devriez être en mesure d'extraire l'EF originale du XML (dans le nœud Task/Principals/Principal/UserId )
  • Si vous voulez que schtasks demande le mot de passe, supprimez simplement /rp [password] portion

5voto

JohnThePro Points 2595

Malheureusement non. C'est ainsi que cela se passe maintenant. Je pense que c'est pour des raisons de sécurité, afin que les tâches définies ne puissent pas être modifiées pendant qu'elles sont effectivement configurées et activées.

5voto

Ian Boyd Points 5006

Version courte

Vous ne pouvez pas renommer une tâche planifiée, car cela modifierait le nom de la tâche. SID la tâche s'exécute comme.

Le nom forme le Identifiant de sécurité (SID) de l'utilisateur sous lequel la tâche sera exécutée. Renommer la tâche romprait toutes les autorisations existantes.

Version longue

De nombreuses personnes se plaignent de ne pas pouvoir renommer une tâche planifiée. Il y a une raison à cela.

Une tâche planifiée s'exécute comme une utilisateur par exemple :

  • Local Service (bon)
  • Network Service (bon)
  • System (mauvais)
  • un compte de processus créé manuellement dans Active Directory (mauvais)

Cela signifie que si votre tâche a besoin d'accéder à certaines ressources, vous devez accorder cet accès aux ressources. utilisateur l'accès à ces ressources.

Ce que nous voulons vraiment, c'est accorder l'accès à ce Tâche ; la tâche planifiée elle-même doit avoir les autorisations, et non l'utilisateur sous lequel la tâche est exécutée. Cela s'appelle Renforcement de la sécurité des tâches .

Durcissement des tâches

Lorsqu'une tâche planifiée est exécutée, le planificateur de tâches ajoute un élément supplémentaire à la liste des tâches. Identifiant de sécurité (SID) dans le jeton de l'utilisateur qui exécute la tâche. Par exemple :

  • Nom : NT TASK\[Task name] (par exemple, "NT TASK \The le renard brun a sauté par-dessus le chien paresseux")

  • Groupe sid : S-1-5-87-x-x-x-x-x (e.g. S-1-5-87-2312335432-65297056-3549082870-2589977271-250352331)

Le sid de ce groupe est généré dynamiquement sur la base du hash du nom de la tâche planifiée. Le groupe sid est un enfant de l'autorité S-1-5-87 . Les SID ID relatif 87 provient de la constante définie dans winnt.h :

SECURITY_TASK_ID_BASE_RID                 (0x00000057L)

Vous pouvez voir ce SID de groupe supplémentaire dans le jeton de sécurité du processus lancé :

enter image description here

Générer des SID de tâches

Vous pouvez hacher manuellement le nom d'une tâche, ou voir ce que serait le sid hypothétique pour cette tâche, en exécutant un outil en ligne de commande :

>schtasks /showsid /TN "The quick brown fox jumped over the lazy dog"

SUCCESS: The SID "S-1-5-87-2312335432-65297056-3549082870-2589977271-250352331" 
for the user name "The quick brown fox jumped over the lazy dog" 
has been computed successfully.

Et vous pouvez utiliser icacls pour accorder des permissions à ce groupe :

>icacls yellow.png /grant "*S-1-5-87-2312335432-65297056-3549082870-2589977271-250352331:(M)"

Si la tâche planifiée se trouve dans un dossier, vous devez également inclure ce dossier :

>schtasks /showsid /TN "Stackoverflow\Answer Question About Security"

SUCCESS: The SID "S-1-5-87-1865438416-972601292-3915696002-2261943663-3756584440" 
for the user name "Stackoverflow-Answer Question About Security" 
has been computed successfully.

Et, encore une fois, vous pouvez accorder à ce SID des permissions sur l'objet :

>icacls yellow.png /grant "*S-1-5-87-1865438416-972601292-3915696002-2261943663-3756584440:(M)"

processed file: yellow.png
Successfully processed 1 files; Failed processing 0 files

Et vous pouvez voir le groupe ayant reçu des permissions (dans ce cas-ci Modifier permissions) :

enter image description here

Le bon côté des choses :

  • ce système de comptes virtuels (qui est également utilisé par les services avec des NT SERVICE et par l'identité de l'application IIS).
  • et avec le spécial Local Service y Network Service comptes

est que ces comptes n'ont pas de mot de passe - aucun utilisateur n'est autorisé à se connecter sous leur nom. Cela signifie que vous n'avez pas à vous soucier de la fuite du mot de passe.

Et en plus de cela, lorsque vous utilisez NT TASK , NT SERVICE o IIS APPPOOL comptes virtuels pour attribuer des permissions : il n'y a aucun moyen de se faire passer pour cet utilisateur. Ce n'est en aucun cas un utilisateur. Ce sont des limites de sécurité supplémentaires qui sont une très bonne chose.

Donc, bien sûr, vous ne pouvez pas le renommer.

Si vous avez été attentif, vous comprenez maintenant pourquoi vous ne pouvez pas renommer une tâche planifiée ou la déplacer dans un autre dossier : cela changerait le hash du nom de la tâche, ce qui modifierait le nom de la tâche. NT TASK SID, et invalider toutes les permissions qui lui ont été accordées.

3voto

Tom Shaeffer Points 39

Assurez-vous avant de répondre "Impossible", "Impossible", etc.

Vérifiez ce pouvoir Shell Shell .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X