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 entfernen Sie den Urheberrechtshinweis in der rechten Ecke des Bildschirms unter Windows 10

So entfernen Sie den Urheberrechtshinweis in der rechten Ecke des Bildschirms unter Windows 10

Sehen Sie in der rechten Ecke des Bildschirms eine Windows 10-Aktivierungsbenachrichtigung? In diesem Artikel erfahren Sie, wie Sie den Copyright-Anfragehinweis unter Windows 10 löschen.

Anleitung von AZ zur Installation von Windows 10 Build 14393.222

Anleitung von AZ zur Installation von Windows 10 Build 14393.222

Kürzlich hat Microsoft das neueste kumulative Update für Windows 10-PC-Benutzer namens Build 14393.222 veröffentlicht. Dieses für Windows 10 veröffentlichte Update behebt hauptsächlich Fehler basierend auf Benutzerfeedback und verbessert die Leistung des Betriebssystems.

Schützen Sie Ihr Computernetzwerk mit Bastion Host in nur 3 Schritten

Schützen Sie Ihr Computernetzwerk mit Bastion Host in nur 3 Schritten

Gibt es Computer in Ihrem lokalen Netzwerk, die externen Zugriff benötigen? Die Verwendung eines Bastion-Hosts als Gatekeeper für Ihr Netzwerk kann eine gute Lösung sein.

So erstellen Sie eine Windows-Taste, wenn Ihre Tastatur nicht verfügbar ist

So erstellen Sie eine Windows-Taste, wenn Ihre Tastatur nicht verfügbar ist

Wenn Sie lieber eine alte klassische Tastatur wie das IBM Model M verwenden möchten, die keine physische Windows-Taste enthält, können Sie ganz einfach weitere hinzufügen, indem Sie sich eine Taste ausleihen, die Sie nicht oft verwenden. .

3 Möglichkeiten, alle Ereignisprotokolle in Windows 10 schnell zu löschen

3 Möglichkeiten, alle Ereignisprotokolle in Windows 10 schnell zu löschen

Manchmal müssen Sie möglicherweise alle alten Ereignisprotokolle auf einmal löschen. In dieser Anleitung zeigt Ihnen Quantrimang.com drei Möglichkeiten zum schnellen Löschen aller Ereignisprotokolle in der Windows 10-Ereignisanzeige.

Mit gefälschten IP-Methoden können Sie anonym zugreifen

Mit gefälschten IP-Methoden können Sie anonym zugreifen

In vielen früheren Artikeln haben wir erwähnt, dass es äußerst wichtig ist, online anonym zu bleiben. Jedes Jahr werden private Informationen preisgegeben, wodurch Online-Sicherheit immer wichtiger wird. Das ist auch der Grund, warum wir virtuelle IP-Adressen verwenden sollten. Im Folgenden erfahren Sie mehr über Methoden zur Erstellung gefälschter IPs!

So erstellen Sie einen transparenten Hintergrundmodus unter Windows 10

So erstellen Sie einen transparenten Hintergrundmodus unter Windows 10

WindowTop ist ein Tool, das alle Anwendungsfenster und Programme, die auf Windows 10-Computern ausgeführt werden, dimmen kann. Alternativ können Sie unter Windows eine Benutzeroberfläche mit dunklem Hintergrund verwenden.

So deaktivieren Sie die Sprachleiste in der Windows 8-Taskleiste

So deaktivieren Sie die Sprachleiste in der Windows 8-Taskleiste

Die Sprachleiste unter Windows 8 ist eine Miniatur-Sprachsymbolleiste, die automatisch auf dem Desktop-Bildschirm angezeigt wird. Viele Leute möchten diese Sprachleiste jedoch in der Taskleiste ausblenden.

So richten Sie WEP, WPA, WPA2 für den Linksys-Router ein

So richten Sie WEP, WPA, WPA2 für den Linksys-Router ein

Drahtlose Konnektivität ist heutzutage eine Notwendigkeit und daher ist drahtlose Sicherheit unerlässlich, um die Sicherheit in Ihrem internen Netzwerk zu gewährleisten.

Tipps zur Optimierung der Internetverbindungsgeschwindigkeit von Linksys

Tipps zur Optimierung der Internetverbindungsgeschwindigkeit von Linksys

Die Maximierung der Internetgeschwindigkeit ist für die Optimierung Ihrer Netzwerkverbindung von entscheidender Bedeutung. Mit Computern, internetfähigen Fernsehern, Spielekonsolen usw. können Sie ein optimales Unterhaltungs- und Arbeitserlebnis genießen.