Le planificateur de tâches n'autorise pas la réutilisation des noms de tâches d'anciennes tâches supprimées automatiquement créées avec le commutateur / Z

2

En essayant de faire fonctionner cela, j'ai créé plusieurs tâches planifiées avec le /Zcommutateur qui, d'après la documentation, est ...

Une valeur qui marque la tâche à supprimer après sa dernière exécution.

J'ai pu créer des tâches planifiées qui ont été automatiquement supprimées après leur expiration, mais je ne pouvais pas créer de nouvelles tâches avec le même nom par la suite. Voici un journal partiel des commandes que j'ai utilisées:

C: \ WINDOWS \ system32> schtasks / create / TN testtask1 / TR calc.exe / SC ONCE / ST 20:06
SUCCESS: La tâche planifiée "testtask1" a été créée avec succès.

C: \ WINDOWS \ system32> schtasks / create / Testtask1 TN / calc.exe / SC ONCE / ST 20:07 / F
SUCCESS: La tâche planifiée "testtask1" a été créée avec succès.

C: \ WINDOWS \ system32> schtasks / create / Testtask1 / TR calc.exe / SC ONCE / ST 20:08 / F / Z
ERREUR: il manque un élément ou un attribut requis à la tâche XML.
(40,4): EndBoundary:
C: \ WINDOWS \ system32> schtasks / créer / TN testtask1 / TR calc.exe / SC MINUTE / MO 1 / ST 20:09 / HE 20:11 / F / Z
SUCCESS: La tâche planifiée "testtask1" a été créée avec succès.

C: \ WINDOWS \ system32> schtasks / query / TN testtask1

Dossier: \
Statut de la tâche Prochaine heure d'exécution
============================================== ===========================
testtask1 11-02-2016 20:11:00 Prêt

C: \ WINDOWS \ system32> schtasks / query / TN testtask1
ERREUR: le système ne peut pas trouver le fichier spécifié.

C: \ WINDOWS \ system32> schtasks / créer / TN testtask1 / TR calc.exe / SC MINUTE / MO 1 / ST 20:12 / HE 20:14 / F / Z
ERREUR: le système ne peut pas trouver le fichier spécifié.

C: \ WINDOWS \ system32> schtasks / créer / TN testtask1 / TR calc.exe / SC MINUTE / MO 1 / ST 20:12 / HE 20:14 / Z
AVERTISSEMENT: le nom de la tâche "testtask1" existe déjà. Voulez-vous le remplacer (O / N)? y
ERREUR: le système ne peut pas trouver le fichier spécifié.

J'utilise Windows 10 (version 10586.104) et je ne l'ai pas testé sur les anciennes versions de Windows. Je ne sais donc pas si ce problème est spécifique à mon système. Je ne peux pas non plus utiliser l'interface graphique ( taskschd.msc) pour créer des tâches planifiées avec des noms précédemment utilisés.

Sur la suggestion de @ root , j'ai essayé Unregister-ScheduledTask -TaskName testtask1 -Confirm:$falsede lancer PowerShell mais cela m'a valu l'erreur suivante:

Unregister-ScheduledTask: aucun objet MSFT_ScheduledTask trouvé avec la propriété 'TaskName' égal à 'testtask1'. Vérifier
la valeur de la propriété et réessayez.

J'ai également exécuté fsutil resource setautoreset true c:\et redémarré Windows comme recommandé par aikitsupport.com, mais cela n'a pas aidé non plus.


PS Si vous pouvez penser à un meilleur titre de question, n'hésitez pas à le modifier.

Vinayak
la source
Pouvez-vous confirmer si testtask1 existe une fois, plusieurs fois ou pas du tout Get-ScheduledTask | Sort-Object TaskName? Pour être précis, exécutez une instance élevée de PS
root le
@ root Il n'apparaît pas dans la liste. Le fichier XML pertinent n'apparaît pas non C:\Windows\System32\Tasksplus. Il l'a fait une fois, avant que la tâche planifiée soit exécutée et par la suite expirée et que le fichier ait été supprimé. Cela ne se verra plus.
Vinayak
Ce n'est pas que quiconque devrait s'attendre à des résultats différents entre schtaskset Get-ScheduledTask, mais je pense que le format du /TNparamètre nécessite le chemin d'accès complet à la tâche. Par exemple, schtasks /query /FO LIST /TN \Microsoft\Windows\Wininet\CacheTaskrenvoie un résultat là où schtasks /query /FO LIST /TN CacheTaskpas. De plus, juste par sécurité, si vous utilisez réellement calc.exe dans votre tâche et que celle-ci est toujours en cours d'exécution à partir de son exécution, fermez-la.
racine
1
Vous pouvez avoir d'anciens enregistrements testtask1 dans TaskCache. Je les chercherais ici et supprimerais ceux trouvés: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\TasksetHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree
root le
1
@ root Cela l'a fait! Merci beaucoup! Les tâches supprimées étaient répertoriées sous, HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Treemais pas ..\Taskset après avoir retiré les clés correspondantes, la schtasks.exeplainte a cessé. Je me demande s'il s'agit d'un bogue ou simplement d'un problème qui affecte uniquement mon système. Néanmoins, merci de poster comme réponse pour que je puisse accepter.
Vinayak

Réponses:

4

Supprimez les entrées non valides du TaskCache. TaskCache est normalement maintenu automatiquement, dans ce cas, certaines entrées n'ont pas été supprimées automatiquement lors de la suppression de la tâche.

Recherchez dans le registre et supprimez manuellement les clés contenant le nom de tâche programmée non valide qui se trouvent dans:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks

et

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree

Cela permettra la réutilisation du nom de la tâche.

D'autres utilisateurs de ce scénario peuvent également être amenés à supprimer des entrées C:\Windows\System32\Taskscontenues dans le nom de la tâche, bien que dans ce cas, vous ayez remarqué qu'elles avaient déjà été supprimées.

racine
la source