J'ai une application Web qui s'exécute sur Windows Server 2008 R2, qui a un grand nombre de tâches planifiées qui s'occupent de tout le backend. Lorsque je fais un déploiement de logiciel qui touche la base de données, je dois désactiver toutes les tâches planifiées. Actuellement, j'ai une longue liste de contrôle que je dois parcourir manuellement, désactivant chaque tâche planifiée au fur et à mesure - c'est certainement un travail mûr pour l'automatisation avec Powershell.
Malheureusement, la documentation de Powershell semble assez timide sur la façon dont vous désactivez une tâche planifiée existante (et bien sûr, la réactivez une fois la publication terminée avec succès). Je peux obtenir une liste des tâches prêtes, en cours d'exécution ou désactivées, mais que faire ensuite?
la source
at.exe
. (Exemple:)AT 09:00 /every:SUNDAY shutdown.exe /r /f /d p:4:1 /c "Reboot via SchTask (AT Job)"
. L'erreur que vous obtiendrez est 0x80041327; La tâche a des propriétés qui ne sont pas compatibles avec les versions précédentes de WindowsSi vous essayez simplement d'arrêter TOUTES les tâches, il peut être plus facile d'arrêter simplement le service Planificateur de tâches. Le module ScheduledTasks n'est pas disponible avant Windows Server 2012, donc la gestion des tâches n'est pas aussi simple que l'arrêt et le démarrage d'un service:
Si cela ne fonctionne pas pour vous, schtasks.exe peut toujours être utilisé à partir de PowerShell pour gérer les tâches individuelles:
la source
Est-ce ce que vous recherchez (Disable-ScheduledTask) ?
la source
Encore mieux quand vous n'avez pas besoin de spécifier les noms des tâches:
la source
C'est parfait! Cela fonctionne mieux que Get-ScheduledTask car je suis dans un environnement mixte 2008/2012. J'ai ajouté quelques lignes pour interroger AD et appeler cette commande sur un groupe d'ordinateurs. Mon objectif était de désactiver la tâche d'ouverture du "Gestionnaire de serveur" à chaque fois qu'un utilisateur se connecte. Presto! tous partis!
la source
Regardez cette fonction
Par exemple, vous pouvez désactiver toutes les tâches du dossier "\ mysql" en appelant
Control-Tasks -FolderPath "\mysql" -Disable -Recursive
Ces extraits de code proviennent de Comment désactiver / activer la tâche planifiée en lot par PowerShell , vous pouvez y télécharger l'exemple d'archive complet.
la source
cela a fonctionné pour moi
la source