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 aktivieren Sie Ultimate Performance, um die Leistung unter Windows 10/11 zu optimieren

So aktivieren Sie Ultimate Performance, um die Leistung unter Windows 10/11 zu optimieren

Microsoft hat dem Windows 10 Update im April 2018 eine Funktion namens Ultimate Performance hinzugefügt. Es ist verständlich, dass es sich dabei um eine Funktion handelt, die dem System hilft, in den Hochleistungs-Arbeitsmodus zu wechseln.

So installieren Sie ein neues Datei-Explorer-Symbolset wie Windows 10 Sun Valley

So installieren Sie ein neues Datei-Explorer-Symbolset wie Windows 10 Sun Valley

Wenn Ihnen das neue Symbol für den Datei-Explorer wie Windows 10 Sun Valley gefällt, folgen Sie dem folgenden Artikel, um die völlig neue Benutzeroberfläche für den Datei-Explorer zu ändern.

So testen Sie die Windows 10-Webcam

So testen Sie die Windows 10-Webcam

Die Überprüfung, ob die Webcam auf einem Windows-Computer ordnungsgemäß funktioniert, ist schnell und einfach. Im Folgenden finden Sie die Schritte, die Ihnen bei der Überprüfung der Kamera helfen.

So testen Sie das Mikrofon in Windows 10

So testen Sie das Mikrofon in Windows 10

Möglicherweise haben Sie hochwertige Kopfhörer angeschlossen, aber aus irgendeinem Grund versucht der Windows-Laptop ständig, mit seinem schrecklichen eingebauten Mikrofon aufzunehmen. Im folgenden Artikel erfahren Sie, wie Sie das Windows 10-Mikrofon testen.

So entfernen Sie Scan with Malwarebytes aus dem Rechtsklick-Menü

So entfernen Sie Scan with Malwarebytes aus dem Rechtsklick-Menü

Wenn Sie es nicht mehr benötigen, können Sie die Option „Mit Malwarebytes scannen“ aus dem Kontextmenü mit der rechten Maustaste entfernen. Hier ist wie.

Erfahren Sie mehr über das Border Gateway Protocol (BGP)

Erfahren Sie mehr über das Border Gateway Protocol (BGP)

Das Border Gateway Protocol (BGP) dient zum Austausch von Routing-Informationen für das Internet und ist das zwischen ISPs (unterschiedliche ASs) verwendete Protokoll.

So erstellen Sie Ihre eigene Hackdatei für die Windows-Registrierung

So erstellen Sie Ihre eigene Hackdatei für die Windows-Registrierung

Wenn Sie Tipps lesen, sehen Sie, dass Leute häufig Registrierungs-Hackdateien verwenden, um Windows-Computer anzupassen und zu optimieren, und sich fragen, wie man sie erstellt. Dieser Artikel führt Sie durch die grundlegenden Schritte zum Erstellen Ihrer eigenen Registry-Hack-Datei.

So aktivieren Sie die automatische Registrierungssicherung in Windows 10

So aktivieren Sie die automatische Registrierungssicherung in Windows 10

Früher hat Microsoft die Registrierung automatisch gesichert, aber diese Funktion wurde in Windows 10 stillschweigend deaktiviert. In diesem Artikel führt Sie Quantrimang.com durch die Schritte zum automatischen Sichern der Registrierung in einem Ordner. RegBack (Windows\System32\config \RegBack) unter Windows 10.

So machen Sie eine Aktion auf einem Windows-PC rückgängig

So machen Sie eine Aktion auf einem Windows-PC rückgängig

Bei der Nutzung eines Computers ist es völlig normal, Fehler zu machen.

Was tun, wenn die Ethernet-Verbindung unter Windows 10/11 immer wieder unterbrochen wird?

Was tun, wenn die Ethernet-Verbindung unter Windows 10/11 immer wieder unterbrochen wird?

Ihre Ethernet-Verbindung kann Sie manchmal frustrieren, wenn sie auf Ihrem Windows 10- oder 11-PC ohne ersichtlichen Grund getrennt wird.