Catégorie > High Tech

Comment définir automatiquement la priorité et l'affinité dans Windows 11/10 avec un script

Posté par Helper, mise à jour le 14/12/2021 à 17:37:16

La définition de la priorité et/ou de l'affinité du processeur est un bon moyen de gérer le partage des ressources du processeur lorsque vous devez exécuter plusieurs applications ou jeux gourmands en ressources processeur. Pour la plupart des applications et programmes qui s'exécutent sur un seul processus .exe, vous pouvez créer un raccourci pour que l'application démarre toujours avec une certaine priorité et affinité CPU.

Pour les autres applications qui exécutent plusieurs processus exécutables, par exemple, les processus exécutés par la plupart des navigateurs Web modernes tels que Google Chrome (chrome.exe), Mozilla Firefox (firefox.exe) ou Microsoft Edge (msedge.exe), la méthode de raccourci ne fonctionnera pas car cela ne s'applique qu'au premier processus exécuté par l'application. Dans ce cas, vous pouvez utiliser un script PowerShell à la place pour définir en masse/en masse la priorité et l'affinité de plusieurs processus automatiquement, même pour les processus portant le même nom.

Définition automatique de la priorité et de l'affinité du processeur dans Windows 11/10



Ce didacticiel vous montrera comment créer un script PowerShell pour définir automatiquement la priorité du processeur et/ou l'affinité du processeur pour les applications qui exécutent plusieurs processus tels que Chrome dans Windows 11 ou Windows 10.

Dans l'exemple ci-dessous, je vais créer un script PowerShell pour définir automatiquement la priorité de tous les processus chrome.exe sur « Low » et définir l'affinité de tous les processus contenant le nom « chrome » sur « CPU 7 » uniquement. Vous pouvez suivre les mêmes étapes et modifier la valeur en fonction de vos besoins.

Étape 1 : créer un script PowerShell



Créez un fichier texte et nommez-le comme vous le souhaitez, mais avec l'extension .ps1 . Le fichier PS1 est un fichier de script qui peut contenir une série de commandes PowerShell qui peuvent être exécutées lors de l'exécution.

La définition de la priorité et/ou de l'affinité du processeur est un bon moyen de gérer le partage des ressources du processeur lorsque vous devez exécuter plusieurs applications ou jeux gourmands en ressources processeur. Pour la plupart des applications et programmes qui s'exécutent sur un seul processus .exe, vous pouvez créer un raccourci pour que l'application démarre toujours avec une certaine priorité et affinité CPU. Pour savoir comment procéder, consultez : Comment définir l'affinité ou la priorité du processeur de manière permanente dans Windows 11/10 .

Pour les autres applications qui exécutent plusieurs processus exécutables, par exemple, les processus exécutés par la plupart des navigateurs Web modernes tels que Google Chrome (chrome.exe), Mozilla Firefox (firefox.exe) ou Microsoft Edge (msedge.exe), la méthode de raccourci ne fonctionnera pas car cela ne s'applique qu'au premier processus exécuté par l'application. Dans ce cas, vous pouvez utiliser un script PowerShell à la place pour définir en masse/en masse la priorité et l'affinité de plusieurs processus automatiquement, même pour les processus portant le même nom.


Définition automatique de la priorité et de l'affinité du processeur dans Windows 11/10
Ce didacticiel vous montrera comment créer un script PowerShell pour définir automatiquement la priorité du processeur et/ou l'affinité du processeur pour les applications qui exécutent plusieurs processus tels que Chrome dans Windows 11 ou Windows 10.

Dans l'exemple ci-dessous, je vais créer un script PowerShell pour définir automatiquement la priorité de tous les processus chrome.exe sur « Low » et définir l'affinité de tous les processus contenant le nom « chrome » sur « CPU 7 » uniquement. Vous pouvez suivre les mêmes étapes et modifier la valeur en fonction de vos besoins.


Étape 1 : créer un script PowerShell
Créez un fichier texte et nommez-le comme vous le souhaitez, mais avec l'extension .ps1 . Le fichier PS1 est un fichier de script qui peut contenir une série de commandes PowerShell qui peuvent être exécutées lors de l'exécution.

Créer un script PowerShell PS1 Windows 11

Une fois créé, ouvrez le fichier .ps1 avec le Bloc - notes ou tout autre éditeur de texte compatible.

Étape 2 : Entrez la commande pour définir automatiquement la priorité du processus



Entrez la ligne de commande suivante dans le script PowerShell pour définir automatiquement la priorité de tout processus portant un certain nom.

Get-WmiObject Win32_process -filter 'name = " chrome.exe "' | foreach-object { $_.SetPriority( 64 ) }


Cette commande ci-dessus recherchera dans la liste des processus tout processus appelé "chrome.exe", puis définira sa priorité de processus sur "Low" (la valeur pour la priorité basse est 64). Remplacez chrome.exe par le nom du processus pour lequel vous souhaitez définir la priorité et la valeur de priorité dans SetPriority(value) par la valeur selon le tableau ci-dessous.

Temps réel 256
Haut 128
Dessus de la normale 32768
Normal 32
En dessous de la normale 16384
Meugler 64

Si vous ne souhaitez pas définir l'affinité CPU pour un processus avec ce script, passez à l' étape 5 .

Étape 3 : Découvrez la valeur décimale des cœurs de processeur (affinité) que vous souhaitez utiliser pour le processus



Étant donné que la commande PowerShell de l'étape suivante nécessite la valeur décimale du ou des cœurs de processeur que vous souhaitez utiliser pour un processus, vous devez d'abord trouver cette valeur décimale. Vous aurez besoin de cette valeur dans la commande plus tard.

Pour connaître la valeur décimale, vous devez d'abord déterminer le nombre binaire des cœurs de processeur que vous souhaitez utiliser pour un processus.

La longueur du nombre binaire est déterminée par le nombre de cœurs de processeur dont vous disposez. Dans le nombre binaire du processeur, 0 signifie « off » et 1 signifie « on » . Pour chaque cœur de processeur que vous souhaitez utiliser pour le processus, remplacez 0 par 1.

Par exemple, dans la capture d'écran ci-dessus, j'ai un processeur à 12 cœurs et je souhaite utiliser uniquement les processeurs 10 et 11 pour les processus Chrome. Ainsi, le nombre binaire de CPU que je souhaite utiliser est 1100000000 .

À titre d'exemple supplémentaire, si vous disposez d'un processeur à 8 cœurs et que vous souhaitez utiliser uniquement les processeurs 0 et 1 pour votre application ou votre jeu, le nombre binaire à utiliser sera 00000011.

Comme la ligne de commande ne nécessite pas le nombre binaire mais le nombre décimal des cœurs du processeur, vous devez convertir le nombre binaire en nombre décimal à l'aide d'un convertisseur.

Dans mon exemple, la valeur décimale des cœurs de processeur (CPU 10 et CPU 11) que je souhaite utiliser est 3072. Une fois que vous avez obtenu la valeur décimale, passez à l'étape suivante.

Étape 4: Entrez la commande pour définir automatiquement l'affinité du processeur



Pour un seul processus :

Si vous souhaitez définir l'affinité CPU pour un seul processus , entrez la ligne de commande ci-dessous dans le script PowerShell.

$Process = Get-Process Messenger ; $Process.ProcessorAffinity= 3072


Cette commande recherchera un processus appelé Messenger et définira son affinité de processeur sur 3072, qui correspond aux cœurs de processeur 10 et 11. Remplacez le nom du processus et la valeur d'affinité du processeur en conséquence.

Pour plusieurs processus portant le même nom :

Pour définir l'affinité CPU pour tous les processus portant le même nom , par exemple chrome.exe, firefox.exe ou msedge.exe, entrez la ligne de commande ci-dessous dans le script PowerShell.

ForEach($PROCESS dans GET-PROCESS chrome ) { $PROCESS.ProcessorAffinity= 3072 }


La commande ci-dessus recherchera tous les processus en cours d'exécution pour tout processus contenant le nom « chrome » et définira l'affinité du processeur sur 3072 (CPU 10 et CPU 11) pour chaque processus trouvé.

Remplacez "chrome" par le nom du processus pour lequel vous souhaitez définir l'affinité du processeur et la valeur d'affinité par la valeur décimale que vous obtenez plus tôt à partir de l'étape 3.

Étape 5 : Exécutez le script



La capture d'écran ci-dessous est à quoi cela ressemble dans mon script PowerShell. Ce script recherchera tous les processus appelés chrome.exe et définira leur priorité sur Faible (la première ligne de commande), et recherchera également tous les processus qui contiennent le nom "chrome" et définira leur affinité CPU pour n'utiliser que CPU 10 et CPU 11 dans un ordinateur CPU à 12 cœurs (deuxième ligne de commande).

Pour exécuter le script, cliquez avec le bouton droit sur le fichier .ps1 que vous avez modifié et sélectionnez Exécuter avec PowerShell.

Lorsque vous exécutez le script, il vous affiche un avertissement concernant le changement de stratégie d'exécution . Par défaut, Windows n'autorise l'exécution d'aucun script sur le système. Pour autoriser l'exécution de votre script, appuyez sur Y . Le script s'exécutera alors et se fermera immédiatement après avoir exécuté toutes les commandes qu'il contient.

Après avoir exécuté le script, vérifiez les processus via le Gestionnaire des tâches. Vous devriez voir que l'affinité CPU et la priorité des processus sont définies en conséquence.

Impossible d'exécuter le script en raison de la politique d'exécution



Si vous n'avez pas de droits d'administrateur ou si vous rencontrez un problème pour exécuter le script en raison de la politique d'exécution, vous pouvez créer un raccourci pointant vers le script ps1 que vous avez créé précédemment avec un paramètre qui contourne la politique d'exécution.

Pour ce faire, cliquez avec le bouton droit n'importe où sur le bureau, sélectionnez Nouveau > Raccourci . Dans l'assistant de création de raccourci, saisissez la ligne suivante dans le champ « Tapez l'emplacement de l'élément ».

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -ExecutionPolicy Bypass -File "C:\Users\alvinsecond\OneDrive\Desktop\script.ps1"
Remarque : remplacez « C:\Users\alvinsecondary\OneDrive\Desktop\script.ps1 » par le chemin d'accès réel à votre fichier de script PS1. Si votre Windows n'est pas dans le lecteur C: ou que votre powershell est installé ailleurs, remplacez « C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe » par le chemin d'accès au powershell.exe sur votre système.

Le paramètre -noexit est facultatif. Ce paramètre indique au raccourci de ne pas fermer la fenêtre après avoir terminé l'exécution du script.

Ensuite, donnez au raccourci le nom de votre choix. Ce raccourci pourra exécuter votre script PS1 en contournant la politique d'exécution de Windows.



Ajouter une réponse

Votre message :

:

Votre prénom:

Votre email:

:



A voir aussi :

Les dernières discussions:



Qui est Réponse Rapide?

Réponse rapide est un site internet communautaire. Son objectif premier est de permettre à ses membres et visiteurs de poser leurs questions et d’avoir des réponses en si peu de temps.

Quelques avantages de réponse rapide :

Vous n’avez pas besoins d’être inscrit pour poser ou répondre aux questions.
Les réponses et les questions des visiteurs sont vérifiées avant leurs publications.
Parmi nos membres, des experts sont là pour répondre à vos questions.
Vous posez vos questions et vous recevez des réponses en si peu de temps.

Note :

En poursuivant votre navigation, vous acceptez l'utilisation de cookies. En savoir plus