So verwenden Sie PowerShell-Standardparameter, um das Befehlsverhalten zu ändern

So verwenden Sie PowerShell-Standardparameter, um das Befehlsverhalten zu ändern

Viele Leute verwenden gerne PowerShell , weil sie damit Dinge tun können, die mit der Windows-GUI nicht möglich sind. Dennoch lässt sich nicht leugnen, dass einige PowerShell-Cmdlets etwas mühsam oder kompliziert sein können. Aber was wäre, wenn es eine Möglichkeit gäbe, diese Cmdlets zu bearbeiten und dafür zu sorgen, dass sie sich so „verhalten“, wie Sie es möchten? Ob Sie es glauben oder nicht, es gibt einen einfachen Weg, dies zu tun. Sie können das Verhalten des Cmdlets ändern, indem Sie die Werte der PowerShell-Standardparameter ändern. In diesem Artikel erfahren Sie, wie Sie die Standardparameter von PowerShell verwenden, um das Verhalten von Cmdlet-Befehlen zu ändern.

Warnung

Bevor Sie beginnen, müssen Sie einige Dinge beachten. Obwohl das Ändern der PowerShell-Standardparameter und des Cmdelt-Verhaltens praktisch ist, kann es zu Problemen führen. Wenn Sie ein Skript ausführen und dieses davon ausgeht, dass sich das geänderte Cmdlet auf eine bestimmte Weise verhält, erhalten Sie möglicherweise unvorhersehbare Ergebnisse. Daher sollten Sie darauf achten, die PowerShell-Standardparameter sorgfältig zu ändern.

Kurze Rezension

Es gibt zwei PowerShell-Konzepte, mit denen Sie vertraut sein müssen, um mit Standardparametern arbeiten zu können. Das erste Konzept ist variabel. In PowerShell beginnen Variablennamen immer mit einem Dollarzeichen, und Sie können den Inhalt einer Variablen schreiben, indem Sie den Variablennamen eingeben.

Das zweite Konzept, mit dem Sie vielleicht vertraut sind, ist die Hash-Tabelle. Eine Hash-Tabelle ist im Wesentlichen eine Liste, die aus Schlüssel/Wert-Paaren besteht. Angenommen, Sie möchten eine Hash-Tabelle erstellen, die die Namen der US-Bundesstaaten und deren Abkürzungen enthält. Unten ist der Code:

$StateList = @{}
$StateList.add('Florida','FL')
$StateList.add('South Carolina','SC')
$StateList.add('Georgia','GA')
$StateList

Die erste Codezeile erstellt eine leere Hash-Tabelle namens $StateList . Die nächsten drei Zeilen fügen der Tabelle Einträge hinzu. Jeder Eintrag besteht aus einem Schlüssel (Staatsname) und einem Wert (Staatskürzel). Die letzte Zeile listet den Inhalt der Tabelle auf. Im Bild unten können Sie den Code in Aktion sehen.

Dies ist nur ein sehr einfaches Beispiel und es gibt viele andere Möglichkeiten, Hash-Tabellen zu verwenden.

Arbeiten Sie mit PowerShell-Standardparametern

PowerShell verfügt über eine integrierte Variable zum Speichern von Standardparametern, die mit seinen Cmdlets verwendet werden. Diese Variable heißt $PSDefaultParameterValues . Wie Sie vielleicht anhand der ersten Einführung und des Namens der Variablen bemerkt haben, handelt es sich hierbei nicht um eine gewöhnliche Variable, sondern um eine Hash-Tabelle. Wenn Sie jedoch den Variablennamen in PowerShell eingeben, werden Sie schnell feststellen, dass die Tabelle leer ist, wie unten gezeigt.

So verwenden Sie PowerShell-Standardparameter, um das Befehlsverhalten zu ändern

Was können wir also mit dieser $PSDefaultParameterValues- Variable machen ? Wie oben erwähnt, können Sie das Verhalten von PowerShell-Cmdlets steuern. Der einzige Punkt ist, dass Sie die inhärenten Fähigkeiten des Cmdlet-Befehls nicht überwinden können. Schauen wir uns also ein Beispiel an.

Dieses Beispiel möchten Sie vielleicht nicht im wirklichen Leben verwenden, aber es zeigt Ihnen, wie einfach es ist, das Cmdlet-Verhalten radikal zu ändern. Wenn Sie das Cmdlet Get-TimeZone in PowerShell eingeben, wird der Name der Zeitzone angezeigt, für die Ihr PC derzeit konfiguriert ist. Sie können dieses Beispiel im Bild unten sehen.

So verwenden Sie PowerShell-Standardparameter, um das Befehlsverhalten zu ändern

Jetzt ändern wir dieses Cmdlet so, dass es nicht die Zeitzone anzeigt, für die das System konfiguriert ist, sondern die verfügbaren Zeitzonen. Dazu benötigen wir eine Cmdlet-Syntax mit dem Cmdlet Get-Help , gefolgt vom Cmdlet Get-TimeZone . Die Syntax des Cmdlets können Sie unten sehen.

So verwenden Sie PowerShell-Standardparameter, um das Befehlsverhalten zu ändern

Diese Syntax enthält einen Parameter namens ListAvailable . Geben Sie den folgenden Befehl ein:

$PSDefaultParameterValues.Add(“Get-TimeZone:ListAvailable”,$True)

Der erste Teil dieses Befehls teilt PowerShell lediglich mit, dass Sie der Hash-Tabelle einen Wert hinzufügen möchten, genau wie wir es im vorherigen Abschnitt mit dem Beispiel für die Abkürzung des US-Bundesstaates getan haben. Diese Hash-Tabelle enthält ein Schlüssel/Wert-Paar. In diesem Fall ist der Schlüssel der Cmdlet-Name (Get-TimeZone), gefolgt von einem Komma und dem Namen des Parameters, den Sie festlegen möchten. In diesem Fall lautet der Parametername ListAvailable. Der zweite Teil dieses Cmdlets ist der Wert, den Sie dem Parameter zuweisen möchten. Hier ist es $True . Der ListAvailable-Parameter benötigt normalerweise keinen Wert. Wenn Sie also „$True“ angeben , weisen Sie PowerShell an, diesen Parameter zu verwenden, ohne ihm einen Wert zuzuweisen.

Wenn Sie sich das Bild unten ansehen, sehen Sie, was passiert, wenn Sie das Cmdlet Get-TimeZone ausführen.

So verwenden Sie PowerShell-Standardparameter, um das Befehlsverhalten zu ändern

Dinge, die Sie beachten sollten

Das Wichtigste, was Sie verstehen müssen, ist, dass das Hinzufügen eines neuen Werts für einen PowerShell-Standardparameter dazu dient, das Standardverhalten des Cmdlets zu ändern, und nicht, dass die Funktionen des Cmdlets entfernt werden. Auch wenn Sie das Cmdlet „Get-TimeZone“ ändern, um verfügbare Zeitzonen anstelle der aktuellen Zeitzone anzuzeigen. Sie können weiterhin die aktuellen Zeitzoneninformationen anzeigen, wenn Sie mehr anzeigen.

Sie müssen außerdem wissen, dass benutzerdefinierte Standardparameter entfernt werden können. Um ein einzelnes Element zu entfernen, verwenden Sie den Befehl $PSDefaultParameterValues.Remove , gefolgt vom Namen des Elements, das Sie entfernen möchten. Zum Beispiel:

$PSDefaultParameterValues.Remove(“Get-TimeZone:ListAvailable”)

Stattdessen können Sie mit diesem Befehl den gesamten Inhalt der Hash-Tabelle löschen:

$PSDefaultParameterValues.Clear();

Beispiele für beide Techniken finden Sie unten:

So verwenden Sie PowerShell-Standardparameter, um das Befehlsverhalten zu ändern

Sie können die gesamte Hash-Tabelle oder einen einzelnen Eintrag löschen.

Das Standardverhalten eines Cmdlet-Befehls zu ändern, kommt nicht oft vor, aber wenn Sie es brauchen, wissen Sie bereits, wie Sie es ändern können.

Ich wünsche Ihnen viel Erfolg!

Mehr sehen:


So blockieren Sie den Internetzugriff mithilfe von Gruppenrichtlinien (GPO)

So blockieren Sie den Internetzugriff mithilfe von Gruppenrichtlinien (GPO)

In diesem Artikel erfahren Sie, wie Sie den Internetzugriff für Benutzer oder Computer im Active Directory-Gruppenrichtlinienobjekt blockieren. Lernen Sie effektive Methoden, moderne Sicherheitsprotokolle und Best Practices kennen.

Warum müssen wir USB formatieren? Wie formatiere ich USB?

Warum müssen wir USB formatieren? Wie formatiere ich USB?

Das Formatieren eines USB-Sticks ähnelt dem Formatieren jedes anderen Laufwerks. Hier erfahren Sie, warum und wie Sie USB formatieren sollten, um optimale Ergebnisse zu erzielen.

Beheben Sie den Fehler „Game Security Violation Detected“ in Windows 10

Beheben Sie den Fehler „Game Security Violation Detected“ in Windows 10

Wenn beim Starten eines Spiels unter Windows 10 der Fehler „Game Security Violation Detected“ angezeigt wird, sind die Lösungen einfach und effektiv. Hier erfahren Sie, wie Sie dieses Problem beheben können.

So wechseln Sie die Lautsprecher mit Tastenkombinationen unter Windows 10

So wechseln Sie die Lautsprecher mit Tastenkombinationen unter Windows 10

Wechseln Sie mühelos zwischen Audiogeräten unter Windows 10 mit Tastenkombinationen. Erfahren Sie, wie Sie den Audio-Umschalter effizient nutzen.

8 Möglichkeiten, MSConfig in Windows 11 zu öffnen

8 Möglichkeiten, MSConfig in Windows 11 zu öffnen

Entdecken Sie 8 einfache Möglichkeiten, MSConfig in Windows 11 zu öffnen, um zahlreiche Probleme effizient zu beheben.

4 gefälschte Viren, die zum Spaß Freunde trollen

4 gefälschte Viren, die zum Spaß Freunde trollen

Freunde und Familienmitglieder zu trollen macht Spaß mit diesen harmlosen gefälschten Viren. Hier sind vier kreative Ideen, um Ihre Freunde zum Lachen zu bringen.

Unterschied zwischen Virtualisierung und Emulation

Unterschied zwischen Virtualisierung und Emulation

Entdecken Sie die Unterschiede zwischen Virtualisierung und Emulation sowie deren Vor- und Nachteile. Erfahren Sie, wie diese Technologien in modernen IT-Umgebungen eingesetzt werden.

So aktivieren oder deaktivieren Sie Device Guard unter Windows 10

So aktivieren oder deaktivieren Sie Device Guard unter Windows 10

Device Guard ist ein wichtiges Sicherheitsfeature in Windows 10, das sicherstellt, dass nur vertrauenswürdige Anwendungen ausgeführt werden. So aktivieren oder deaktivieren Sie es.

So verwenden Sie vDOS, um alte DOS-Programme unter Windows 10 auszuführen

So verwenden Sie vDOS, um alte DOS-Programme unter Windows 10 auszuführen

Erfahren Sie, wie Sie vDOS verwenden, um alte DOS-Software unter Windows 10 auszuführen. Dieser Emulator ist ideal für die Nutzung älterer Programme, bietet jedoch keine optimale Lösung für Spiele.

3 Möglichkeiten, USB Selective Suspend in Windows 11 zu deaktivieren

3 Möglichkeiten, USB Selective Suspend in Windows 11 zu deaktivieren

Wenn Sie Probleme mit USB-Geräten auf Ihrem Windows 11-Computer haben, sollten Sie die Funktion „USB Selective Suspend“ deaktivieren.