Dans le calendrier, le processus est effectué plus lentement qu'en mode interactif.

J'ai une tâche planifiée qui charge le processeur et l'entrée et la sortie et commence environ quatre heures. (Construisez le code source si vous êtes intéressé). Tâche - Ceci est un script Powershell, qui lance diverses sous-traités pour effectuer leur travail. Quand j'exécute le même processus dans la ligne de commande en ligne Powershell Avec le même compte d'utilisateur, il est effectué environ deux heures et demie. La tâche est effectuée par Windows Server 2008 R2.

Je veux savoir pourquoi l'exécution de la tâche prévue prend beaucoup plus de temps - Plus d'une heure. J'ai remarqué une chose: le planificateur de tâches fonctionne avec une priorité inférieure à la normale, alors lorsque vous démarrez ma tâche, il hérite de la même priorité réduite. Néanmoins, j'ai mis à jour le script pour renvoyer la priorité du processus Powershell Retour à la valeur "normale", et cela prend toujours la même heure.

Quelqu'un a-t-il une idée qui peut différer entre deux scénarios? J'ai exclu les différences de chargement du processeur et des E / S - Cette tâche - La seule chose que le système est utilisé, alors rien ne fonctionne plus, ce qui pourrait rivaliser pour des ressources.
Invité:

Conrad

Confirmation de:

Il semble que quelque chose de plus que de la priorité de processus «ordinaire» soit valide. Comme je l'ai déjà noté dans la question, le planificateur de tâches par défaut lance votre tâche avec une priorité inférieure à celle d'habitude.
https://stackoverflow.com/ques ... ty-io
décrit comment réparer toute tâche afin qu'elle soit faite avec la priorité Normal, Mais la correction laisse encore un peu différente: la priorité de la mémoire. La priorité de la mémoire était une nouvelle fonctionnalité dans Windows Vista et décrit dans
http://technet.microsoft.com/e ... .aspx
. Vous pouvez voir la priorité de la mémoire en utilisant
http://technet.microsoft.com/e ... .aspx
, qui est un outil obligatoire pour tout administrateur ou programmeur.

Dans tous les cas, même avec la correction de la priorité de la tâche planifiée, la priorité de la mémoire de votre tâche est définie sur 4, cette étape est inférieure à la signification habituelle 5. Quand j'augmente manuellement la priorité de ma tâche de 5, La productivité était sur un pair avec un processus de départ interactif.

Pour plus d'informations sur l'amélioration de la priorité, voir
https://stackoverflow.com/ques ... 57675
sur la priorité des E / S; L'installation de la priorité de la mémoire est effectuée de la même manière, à travers NtSetInformationProcess, avec

PROCESS_INFORMATION_CLASS

Installé dans

ProcessMemoryPriority

(valeur 39 ou 0x27). Je pourrais faire une utilité gratuite qui pourrait être utilisée pour l'installer si elle est nécessaire pour les autres et qu'ils n'ont pas accès aux outils de programmeur.

EDIT: Je suis allé et a écrit une utilité gratuite pour demander et définir la priorité de la mémoire de la tâche,
http://blog.misterfoo.com/2010 ... .html
. Le chargement contient un code source et un fichier binaire compilé.

Hannah12

Confirmation de:

Le problème est que votre processus commence par une priorité faible de la priorité d'E / S et une priorité de mémoire faible. Le moyen le plus simple de vérifier - Utilisez les processus de conducteur de sysinternals. Si vous examinez les propriétés de l'un des processus générés par cette tâche planifiée, vous verrez qu'il a une priorité absolue de priorité et de mémoire I / O 2.

Voici la solution à ce problème:

Créer une tâche

Cliquez avec le bouton droit sur la tâche et "Exportation" sa.

Modifier juste un fichier exporté task.xml.

Vous trouverez une ficelle similaire à

<priority>7</priority>

Changer la valeur en priorité normale (de 4 avant que 6). Tableau des valeurs possibles:
https://msdn.microsoft.com/en- ... .aspx
Valeur 4 Il y aura la même priorité des E / S et de la mémoire en tant que processus interactif. Valeurs 5 et 6 Aura une priorité de mémoire inférieure.

Dans le planificateur de tâche, supprimez la tâche initialement créée.

Dans le planificateur de tâche de la zone d'action, importez la tâche à partir du fichier XML.

Malheureusement, il n'est pas possible de modifier la priorité initiale des tâches planifiées de l'interface graphique.

Camille

Confirmation de:

Si vous le configurez pour commencer comme tâche planifiée pour le compte de l'utilisateur X, puis entrez le système en tant qu'utilisateur X Avant de commencer, il doit ouvrir la fenêtre dans votre session lorsqu'il est en cours d'exécution, cela fonctionnera dans votre session.

Si vous le faites, cela prend-il plus ou moins de temps? Je ne sais pas de quoi ça va vouloir dire, mais cela peut être des honneurs utiles. Peut-il y avoir un accès au réseau qui possède un compte d'utilisateur lors de la connexion au système, mais pas lors du début de la tâche planifiée qui nécessite un délai et une défaillance? Le comportement diffère-t-il si vous créez un nouveau compte d'utilisateur et exécutez-le comme une tâche planifiée sous ce compte?

Une autre idée: lorsque vous commencez comme une tâche planifiée - Maintenant, lorsque vous définissez la priorité dans votre scénario, si toutes les sous-processus sont effectuées comme normales ou normales?

Christophe

Confirmation de:

Les tâches planifiées sont peut-être effectuées par défaut avec une priorité inférieure.

Utilisation

prio

Faire une priorité plus élevée.

Christine

Confirmation de:

Voici un fragment de code PowerShell Pour installer la priorité (Fonctionne dans une session distante PowerShell!):

$taskName = "MyTask" ;`
$currentTask = Get-ScheduledTask -TaskName $taskName ;`
$settings = $currentTask.Settings ;`
$settings.Priority = 4 ;`
Set-ScheduledTask -TaskName $taskName -Settings $settings

Georges

Confirmation de:

première - Vous pouvez utiliser la priorité au-dessus de l'habitude (Par exemple, élevé)

Deuxièmement, vous devez comprendre que la session de premier plan nécessite des ressources, essentiellement un disque dur et une mémoire d'outils d'E / S, de sorte que la tâche prévue devient moins. Pour un test clair, vous devez quitter le système pendant le scénario. PowerShell

et vous pouvez essayer d'ajouter plus de mémoire / utilisation ramdrive / Divisez des travaux sur plusieurs disques durs pour accélérer les processus

Gilles

Confirmation de:

Cette question a été définie il y a quelque temps et pour Windows Server 2008R2. J'ai eu la même question, mais pour Windows 10. À Windows 10 (Vérifié par 1703 et 1809) Il suffit de simplement installer "la priorité" sur 4 à travers importé xml, Pour vous donner la même priorité de base, priorité dynamique, priorité d'E / S. et la priorité de mémoire en tant que processus de lancement de manière interactive.

Pour répondre aux questions, connectez-vous ou registre