Das Erlernen des PowerShell Ungleich-Operators mit Beispielen

Abgesehen davon, dass es ein Befehlszeilenwerkzeug ist, ist PowerShell eine Programmiersprache von Microsoft, die es Ihnen ermöglicht, Ihre Systeme zu steuern und zu automatisieren. PowerShell verwendet eine andere Syntax für seine Operatoren als die meisten Programmiersprachen.

Aber sobald Sie die PowerShell-Operator-Syntax verstehen, werden Sie feststellen, dass sie nicht schwer zu verwenden ist. Einer der häufigsten Operatoren, den Sie in PowerShell verwenden werden, ist der „Nicht gleich“-Operator (-ne). Dieser Operator ermöglicht es Ihnen zu überprüfen, ob zwei Werte ungleich sind.

In diesem Artikel erfahren Sie mehr über den PowerShell-Operator „Nicht gleich“ und wie Sie ihn anhand von Beispielen verwenden können.

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie ein System mit PowerShell installiert haben. Dieses Tutorial verwendet Windows 10 und PowerShell 7.

Verwendung des PowerShell-Operators „Nicht gleich“ (Grundlagen)

Zusammengefasst bestimmt der PowerShell-Operator „Nicht gleich“ (-ne), ob der Wert zweier Objekte ungleich ist und gibt basierend auf dem Ergebnis einen booleschen Wert zurück. Wenn die Werte nicht gleich sind, ist das Ergebnis True; andernfalls ist das Ergebnis False.

Aber wie und wann verwenden Sie den PowerShell-Operator „Nicht gleich“? Die folgenden Abschnitte werden Ihnen die Grundlagen des PowerShell-Operators „Nicht gleich“ vermitteln.

Vergleich von Variablen

Einer der häufigsten Verwendungszwecke für den PowerShell Not Equal Operator besteht darin, zwei Variablen zu vergleichen. Angenommen, Sie haben zum Beispiel zwei Variablen, `$a` und `$b`, und möchten überprüfen, ob sie gleich sind. Die Vergleichssyntax lautet wie folgt:

$a -ne $b

Wenn die Werte von `$a` und `$b` nicht gleich sind, gibt dieser Vergleich `True` zurück. Andernfalls wird `False` zurückgegeben.

1. Führen Sie die folgenden Befehle in Ihrer PowerShell-Konsole aus, um die Variablen zu erstellen, die Sie als Beispiele verwenden werden. Die Variablen $a, $b, $c und $d repräsentieren unterschiedliche Werte. Sie können jeden dieser Werte vergleichen, um festzustellen, ob sie gleich sind oder nicht.

Sie weisen $c und $d den gleichen Wert zu, um zu sehen, wie der PowerShell Not Equal Operator mit gleichen Werten umgeht.

$a = 1
$b = 2
$c = 3
$d = 3

2. Führen Sie nun den Vergleich mit dem PowerShell Not Equal Operator durch, um festzustellen, ob die Werte von $a und $b nicht gleich sind.

$a -ne $b

Das Ergebnis ist `True`, da der Wert von $a 1 ist und $b 2 ist, was nicht gleich ist.

You will see a False output return, as shown in the image below, since the values of $c and $d are equal (3=3). variables with not equal values

3. Vergleichen Sie nun die Variablen $c und $d, um festzustellen, ob sie auch nicht gleich sind.

$c -ne $d

Sie werden ein False-Ergebnis erhalten, wie im Bild unten gezeigt, da die Werte von $c und $d gleich sind (3=3).

Comparing variables with equal values

Vergleich von Werten

Bei der Arbeit mit PowerShell sind nicht alle Objekte, die Sie vergleichen möchten, in Variablen. In diesem Fall können Sie Werte direkt mit dem PowerShell Not Equal Operator vergleichen.

Zum Beispiel vergleicht der folgende Befehl zwei Werte direkt mit dem PowerShell Not Equal Operator.

5 -ne 3

Sie werden einen True-Wert erhalten, wie unten gezeigt, da die Werte nicht gleich sind.

Comparing different values using the PowerShell not equal operator

Andererseits gibt das Vergleichen gleicher Werte `False` zurück.

5 -ne 5
Comparing equal values using the PowerShell not equal operator

Das Entfernen eines Werts aus dem Array

Der Operator PowerShell Not Equal gibt ein Boolesches Ergebnis zurück, um anzuzeigen, ob zwei Werte ungleich sind. Neben dieser Funktion kann dieser Operator auch Elemente aus einem Array filtern.

Zum Beispiel erstellen Sie eine Variable namens $numbers, die ein Array von Zahlen von 1 bis 5 enthält.

 # Erstellt ein Array mit Zahlen von 1 bis 5.
$numbers = 1..5
 # Zeigt das Array an.
$numbers
Storing an array

Führen Sie anschließend den Befehl aus, um das Array zurückzugeben, außer einer Zahl (4).

$numbers -ne 4

Und jetzt können Sie sehen, dass der Befehl jede Zahl im Array zurückgegeben hat, außer der Zahl 4.

Filtering an array

Vergleich von Zeichenfolgen

Neben Zahlen können Sie den Vergleich „PowerShell Not Equal“ auch auf Zeichenfolgen anwenden.

1. Nehmen wir zum Beispiel an, Sie haben zwei Zeichenfolgen, „Hallo“ und „Welt“. Um festzustellen, ob die beiden Zeichenfolgen ungleich sind, führen Sie den folgenden Befehl aus.

"Hello" -ne "World"

Das Ergebnis ist True, da „Hallo“ nicht gleich „Welt“ ist.

Comparing unequal stings

2. Vergleichen Sie nun die Zeichenfolgen „Hallo“ und „hello“, um zu sehen, ob sie gleich sind.

"Hello" -ne "hello"

Dann sehen Sie, dass das Ergebnis False ist, weil „Hallo“ gleich „hello“ ist.

Comparing two strings

3. Der PowerShell-Ungleichheitsoperator ist nicht Groß-/Kleinschreibung-sensitiv. Wie Sie im vorherigen Schritt sehen können, ist „Hello“ gleich „hello“. Wenn Sie jedoch Groß-/Kleinschreibungssensitivität beim Vergleichen von Zeichenfolgenwerten benötigen, ersetzen Sie den -ne Operator durch den -cne Operator, was Case Sensitive Not Equal bedeutet.

"Hello" -cne "hello"

Als Ergebnis sind „Hello“ und „hello“ gemäß PowerShell nicht mehr gleich.

“Hello” and “hello”

Verwendung des PowerShell-Ungleichheitsoperators in der realen Welt (Beispiele)

Jetzt, da Sie das grundlegende Konzept des PowerShell-Ungleichheitsoperators verstehen, werden Ihnen die folgenden Abschnitte einige seiner Anwendungen in der realen Welt näher bringen.

Überwachung des Dienststatus

A staple of Windows systems administration is monitoring the server service status. This task involves filtering out which services whose Status Is Not Running.

Zum Beispiel führen Sie das Get-Service-Cmdlet aus, um alle Dienste auf dem lokalen Rechner anzuzeigen.

Get-Service

Sie können alle gestoppten und laufenden Dienste in der untenstehenden Ausgabe sehen.

Display all services

Um jetzt nur diejenigen Dienste zu filtern, die nicht Running sind, führen Sie den folgenden Befehl aus und wenden Sie den -ne-Operator wie folgt an.

Get-Service | Where-Object {$_.Status -ne "Running"}

Wie Sie unten sehen können, zeigt die Statusspalte nur die gestoppten Dienste nach Anwendung des PowerShell-Ungleichheitsvergleichs.

Filtering non-running services

Ebenso führen Sie den untenstehenden Befehl aus, um die Dienste zurückzugeben, deren Status nicht Gestoppt ist.

Get-Service | Where-Object {$_.Status -ne "Stopped"}

Dieses Mal sehen Sie nur die Dienste, die ausgeführt werden.

Showing all running services

Kombinieren von PowerShell „Nicht gleich“ mit dem AND-Operator

Neben einer direkten 1:1-Vergleichsmethode können Sie die Bedingung „PowerShell Nicht gleich“ mit einem anderen Vergleichsoperator, wie z.B. -eq (gleich), kombinieren, indem Sie den -and-Operator verwenden. Diese Methode ist nützlich, wenn das Objekt, das Sie vergleichen, mehreren Bedingungen entsprechen muss.

Zum Beispiel beinhaltet die Überwachung von Serverdiensten in der Regel die Sicherstellung, dass alle automatischen Dienste ausgeführt werden müssen. Führen Sie den folgenden Befehl aus, um alle Dienste aufzulisten, deren Status nicht ausgeführt wird und deren Starttyp automatisch ist. In diesem Beispiel muss der Objektwert allen Bedingungen entsprechen.

Get-Service | 
Where-Object {$_.Status -ne "Running" -and $_.StartType -eq "Automatic"} |
Select-Object Status,StartType,Name

Jetzt können Sie die automatischen Dienste sehen, die nicht ausgeführt werden, was Ihnen dabei helfen kann, zu entscheiden, welche Maßnahmen Sie ergreifen müssen.

PowerShell Not Equal match all conditions

Hinzufügen von If/Else-Bedingungslogik

Sie können den PowerShell „Nicht gleich“-Operator auch in bedingten Anweisungen wie der if/else-Anweisung verwenden.

Zum Beispiel muss ein Dienst in den meisten Fällen ausgeführt werden, wenn sein Starttypwert automatisch ist. Das folgende Skript ruft alle Dienste ab, überprüft, welche automatischen Dienste nicht ausgeführt werden, und führt die Korrekturmaßnahmen durch – um eine Meldung anzuzeigen und den Dienst zu starten.

Hinweis: Die Zeile Start-Service $_.Name ist auskommentiert und wird nicht ausgeführt. Kommentieren Sie diese Zeile aus, wenn Sie den Befehl ausführen möchten.

Kopieren Sie den untenstehenden Code und führen Sie ihn in PowerShell aus.

Get-Service -ErrorAction SilentlyContinue | ForEach-Object {
    if ($_.Status -ne 'Running' -and $_.StartType -eq 'Automatic') {
        "The service [$($_.Name)] StartType is [$($_.StartType)] but its current Status is [$($_.Status)]"
        # Start-Service $_.Name
    }
}

Das Ergebnis zeigt Ihnen, welche automatischen Dienste nicht ausgeführt werden.

Using PowerShell Not Equal in Conditional Logic

Schlussfolgerung

In diesem Artikel haben Sie etwas über den PowerShell Not Equal Operator gelernt. Sie haben auch gelernt, wie Sie ihn mit Beispielen verwenden können. Zu diesem Zeitpunkt sollten Sie ein gutes Verständnis dafür haben, wie er funktioniert.

Mit diesem neu erworbenen Wissen können Sie den Not Equal Operator nun in Ihren PowerShell-Skripten verwenden, um Bedingungen zu testen. Beachten Sie jedoch, dass auch andere Vergleichsoperatoren verfügbar sind. Möglicherweise möchten Sie mehrere Operatoren kombinieren, um komplexere Bedingungen zu testen.

Source:
https://adamtheautomator.com/powershell-not-equal/