Outre être un outil en ligne de commande, PowerShell est un langage de programmation de Microsoft qui vous permet de contrôler et d’automatiser vos systèmes. PowerShell utilise une syntaxe différente pour ses opérateurs par rapport à la plupart des langages de programmation.
Mais une fois que vous comprenez la syntaxe des opérateurs PowerShell, vous verrez qu’il n’est pas difficile à utiliser. L’un des opérateurs les plus courants que vous utiliserez dans PowerShell est l’opérateur de non-égalité (-ne
). Cet opérateur vous permet de tester si deux valeurs ne sont pas égales l’une à l’autre.
Dans cet article, vous apprendrez sur l’opérateur de non-égalité PowerShell et comment l’utiliser avec des exemples.
Prérequis
Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d’avoir un système avec PowerShell installé. Ce tutoriel utilise Windows 10 et PowerShell 7.
Utilisation de l’opérateur de non-égalité PowerShell (Bases)
En résumé, l’opérateur de non-égalité PowerShell (-ne
) détermine si la valeur de deux objets n’est pas égale et renvoie une valeur booléenne en fonction du résultat. Si les valeurs ne sont pas égales, le résultat est True
; sinon, le résultat est False
.
Mais comment et quand utiliser l’opérateur de non-égalité PowerShell ? Les sections suivantes vous enseigneront les bases de l’opérateur de non-égalité PowerShell.
Comparaison de variables
L’un des usages les plus courants de l’opérateur « Différent de » PowerShell est de comparer deux variables. Par exemple, supposez que vous ayez deux variables, `$a` et `$b`, et que vous vouliez voir si elles sont égales. La syntaxe de comparaison est la suivante :
Si les valeurs de `$a` et `$b` ne sont pas égales, alors cette comparaison renverra `True`. Sinon, elle renverra False.
1. Exécutez les commandes suivantes dans votre console PowerShell pour créer les variables que vous utiliserez comme exemples. Les variables $a, $b, $c et $d représentent différentes valeurs. Vous pouvez comparer chacune de ces valeurs pour tester si elles sont égales ou non.
Vous attribuez à $c et $d la même valeur pour voir comment l’opérateur « Différent de » PowerShell fonctionne avec des valeurs égales.
2. Maintenant, effectuez la comparaison « Différent de » PowerShell pour voir si les valeurs de $a et $b ne sont pas égales.
Le résultat renvoie True car la valeur de $a est 1 et $b est 2, ce qui ne sont pas égaux.

3. Comparez maintenant les variables $c et $d pour voir si elles ne sont pas non plus égales.
Vous verrez un retour de sortie False, comme indiqué dans l’image ci-dessous, puisque les valeurs de $c et $d sont égales (3=3).

Comparaison des valeurs
Lorsque vous travaillez avec PowerShell, tous les objets que vous souhaitez comparer ne sont pas nécessairement dans des variables. Dans ce cas, vous pouvez comparer directement les valeurs avec l’opérateur « Différent de » PowerShell.
Par exemple, la commande ci-dessous compare directement deux valeurs en utilisant l’opérateur « Différent de » PowerShell.
Vous verrez un retour de valeur True, comme indiqué ci-dessous puisque les valeurs ne sont pas égales.

D’autre part, comparer des valeurs égales renverra False
.

Retrait d’une valeur du tableau
L’opérateur PowerShell Not Equal renvoie un résultat booléen pour indiquer si deux valeurs ne sont pas égales. En plus de cette fonction, cet opérateur peut également filtrer des éléments d’un tableau.
Par exemple, créez une variable appelée $numbers
contenant un tableau de nombres de 1 à 5.

Ensuite, exécutez la commande ci-dessous pour renvoyer le tableau à l’exception d’un nombre (4
).
Et maintenant vous pouvez voir que la commande a renvoyé chaque nombre dans le tableau à l’exception du nombre 4.

Comparer des chaînes de caractères
En plus des nombres, vous pouvez également appliquer la comparaison PowerShell Not Equal sur des chaînes de caractères.
1. Par exemple, supposez que vous ayez deux chaînes de caractères, « Bonjour » et « Monde ». Pour déterminer si les deux chaînes ne sont pas égales, exécutez la commande ci-dessous.
Le résultat est True car « Bonjour » n’est pas égal à « Monde ».

2. Maintenant, comparez les chaînes « Bonjour » et « bonjour » pour voir si elles sont égales.
Vous verrez alors que le résultat est False car « Bonjour » est égal à « bonjour ».

3. L’opérateur PowerShell « Non égal » n’est pas sensible à la casse. Comme vous pouvez le voir dans l’étape précédente, « Bonjour » est égal à « bonjour ». Mais si vous avez besoin de sensibilité à la casse lors de la comparaison des valeurs de chaîne, remplacez l’opérateur -ne par l’opérateur -cne, ce qui signifie Non égal sensible à la casse.
Par conséquent, « Bonjour » et « bonjour » ne sont plus égaux selon PowerShell.

Utilisation de l’opérateur Non égal de PowerShell dans le monde réel (Exemples)
Maintenant que vous comprenez le concept de base de l’opérateur Non égal de PowerShell, les sections suivantes vous permettront de découvrir certaines de ses utilisations dans le monde réel.
Surveillance de l’état des services
A staple of Windows systems administration is monitoring the server service status. This task involves filtering out which services whose Status Is Not Running
.
Par exemple, exécutez la cmdlet Get-Service
pour afficher tous les services sur la machine locale.
Vous pouvez voir tous les services arrêtés et en cours d’exécution dans la sortie ci-dessous.

Maintenant, pour filtrer uniquement les services qui ne sont pas En cours d'exécution
, exécutez la commande ci-dessous et appliquez l’opérateur -ne
comme suit.
Comme vous pouvez le voir ci-dessous, la colonne État ne montre que les services arrêtés après l’application de la comparaison Non égal de PowerShell.

De même, exécutez la commande ci-dessous pour renvoyer les services dont l'état n'est pas Arrêté
.
Cette fois, vous ne voyez que les services qui sont en cours d’exécution.

Combinaison de PowerShell Not Equal avec l’opérateur AND
Outre la réalisation d’une comparaison 1:1, vous pouvez combiner la condition Not Equal de PowerShell avec un autre opérateur de comparaison, tel que -eq
(égal), en utilisant l’opérateur -and
. Cette méthode est utile lorsque l’objet que vous comparez doit répondre à plusieurs conditions.
Par exemple, la surveillance des services de serveur implique généralement de s’assurer que tous les services automatiques doivent être en cours d’exécution. Exécutez la commande ci-dessous pour répertorier tous les services dont l’état n’est pas En cours d'exécution
et dont le Type de démarrage est Automatique
. Dans cet exemple, la valeur de l’objet doit correspondre à toutes les conditions.
Maintenant, vous pouvez voir les services automatiques qui ne sont pas en cours d’exécution, ce qui peut vous aider à décider des actions à entreprendre.

Ajout de la logique conditionnelle If/Else
Vous pouvez également utiliser l’opérateur Not Equal de PowerShell à l’intérieur des instructions conditionnelles, telles que l’instruction if/else.
Par exemple, un service doit être en cours d’exécution dans la plupart des cas si sa valeur de Type de démarrage est Automatique. Le script ci-dessous récupère tous les services, vérifie quels services automatiques ne sont pas en cours d’exécution et exécute les actions correctives — pour afficher un message et démarrer le service.
Remarque : La ligne Start-Service $_.Name est commentée et ne sera pas exécutée. Décommentez cette ligne si vous souhaitez exécuter la commande.
Copiez le code ci-dessous et exécutez-le dans PowerShell.
Le résultat vous montre quels services automatiques ne sont pas en cours d’exécution.

Conclusion
Dans cet article, vous avez appris sur l’opérateur Différent de en PowerShell. Vous avez également appris comment l’utiliser avec des exemples. À ce stade, vous devriez avoir une bonne compréhension de son fonctionnement.
Avec cette connaissance nouvellement acquise, vous pouvez maintenant utiliser l’opérateur Différent de dans vos scripts PowerShell pour tester des conditions. Cependant, gardez à l’esprit que d’autres opérateurs de comparaison sont également disponibles. Vous voudrez peut-être combiner plusieurs opérateurs pour tester des conditions plus complexes.