In Schale geworfen
Teil 13: Die neue PowerShell einsetzen
- Die neue PowerShell einsetzen
- Teil 2: Die neue PowerShell einsetzen
- Teil 3: Die neue PowerShell einsetzen
- Teil 4: Die neue PowerShell einsetzen
- Teil 5: Die neue PowerShell einsetzen
- Teil 6: Die neue PowerShell einsetzen
- Teil 7: Die neue PowerShell einsetzen
- Teil 8: Die neue PowerShell einsetzen
- Teil 9: Die neue PowerShell einsetzen
- Teil 10: Die neue PowerShell einsetzen
- Teil 11: Die neue PowerShell einsetzen
- Teil 12: Die neue PowerShell einsetzen
- Teil 13: Die neue PowerShell einsetzen
- Teil 14: Die neue PowerShell einsetzen
- Teil 15: Die neue PowerShell einsetzen
Wer bereits erste Schritte in der neuen Microsoft- Programmierwelt .NET unternommen hat, kann mit diesem Wissen die PowerShell sogar erweitern. Möglich sind ebenso eigene neue Commandlets wie eigene Provider, die es dem dir-Befehl zum Beispiel ermöglichen, auch das Active Directory zu durchsuchen.

Neue Commandlets zu generieren ist nicht schwierig und gelingt mit reinen Bordmitteln. Die PowerShell kümmert sich dabei um Einund Ausgabe sowie das Objekt-Piping, so dass sich der Autor eines neuen Commandlets bequem zurücklehnen und auf die reine Funktionalität konzentrieren kann, die "sein" neues Commandlet liefern soll.
Das folgende Listing zeigt das Grundgerüst eines einfachen neuen Commandlets namens get-random, das eine Zufallszahl liefert:
using System;
using System.Management.Automation;
// GetRandom.cs
// <>summary>
// Ein Zufallszahlengenerator
// <>summary>
[Cmdlet("get", "random")]
public class GetRandomCommand :
Cmdlet
{
protected override void
EndProcessing()
{
Random r = new Random();
WriteObject(r.Next());
}
}
Der überwiegende Teil des Codes ist formaler Rahmenbau. Wirklich interessant ist nur die Funktion EndProcessing, die das Ergebnis des Commandlets zurückmeldet. Dazu beschafft sich das Commandlet einen Zufallszahlengenerator und meldet über WriteObject diese Zahl zurück an die PowerShell.
Diese Logik kann man übrigens auch direkt in der PowerShell testen, denn als .NET-Anwendung hat man auch von hier aus vollen Zugriff auf alle .NET-Klassen:
(new-object random).next
Damit aus dem Quellcode nun aber eine .NET-DLL wird, muss er kompiliert werden. Auch das leistet die PowerShell:
$ref =
"$MSHHOME/System.Management.Automation.
dll"
$compiler =
"$env:windir/Microsoft.NET/Framework/v2
.0.50727/csc" &$compiler /target:library /r:$ref
GetRandom.cs
Dabei werden zunächst zwei Variablen definiert: $ref liefert den Pfad zur PowerShell-Bibliothek und $compiler den zum Compiler.
Um den Compiler aufzurufen, bedient sich die PowerShellwieder eines schicken Tricks: Über das&-Zeichen kann der Inhalt einer Variablen ausgeführt werden, so als hätte man diesen von Hand eingegeben. &$compiler ruft also den in $compiler gespeicherten Befehl auf.
Gutscheine
-
eBay
10% eBay Gutschein auf TOP-Autoreifen Zum Gutschein
bis 11.10.2023 -
Peek & Cloppenburg* Düsseldorf
GLAMOUR SHOPPING WEEK bei Peek & Cloppenburg*: 20% Gutschein Zum Gutschein
bis 08.10.2023+ bis zu 1,0% Cashback -
XXXLutz
Glamour Shopping Week bei XXXLutz: 30% Rabatt + 22% Gutschein Zum Gutschein
bis 08.10.2023+ bis zu 3,0% Cashback -
Levi Strauss & Co.
Bis 25% sparen mit dem Levis Rabattcode zur GLAMOUR Shopping Week Zum Gutschein
bis 08.10.2023 -
Uber Eats
5€ Uber Eats Gutschein Zum Gutschein
bis 31.10.2023+ bis zu 2,50€ Cashback -
Parship
20% Parship Gutschein erhalten Zum Gutschein
bis 31.10.2023