Was gibt ein Cmdlet denn genau zurück?

In meinen PowerShell-Schulungen gebe ich mich mir jedes Mal sehr viel Mühe die Rolle der Objekte zu erklären. Alle Cmdlets, die etwas zurückgeben, geben Objekte zurück. Ein Objekt fasst die Daten über einen Gegenstand wie einen Prozess, ein Benutzerkonto oder ein Laufwerk so zusammen, dass diese Daten über Namen, die Eigenschaften genannt werden, einfach abgerufen werden können usw. usw.

Dabei erwähne ich auch, dass es unterschiedliche Sorten von Objekten gibt und man per Get-Member-Cmdlet herausbekommt, welche Sorte von Objekte ein Objekt zurückgegeben hat.

Doch das ist natürlich nur die vereinfachte Version. Vor kurzem kam die Frage auf, dass es ja Cmdlets gibt, die unterschiedliche Sorten von Objekten zurückgeben (stimmt) und ob man nicht vorab abfragen kann, welche Sorten ein Cmdlet insgesamt zurückgegeben kann.

Müsste sicher irgendwie gehen. Eigentlich weiß man es ja schon im voraus, wie bei Get-Process, und bei Cmdlets wie Get-Item hängt der Tyop vom Laufwerk ab und da es theoretisch unendlich viele Laufwerkstypen geben kann, kann es entsprechend auch unendlich viele Objekttypen geben. Bei bei Cmdlets wie Get-Command hängt der Typ des Rückgabeobjekts natürlich davon ab, welche Wert bzw. welche Werte dem CommandType-Parameter übergeben werden.

Doch da gibt es doch noch diese unscheinbare Information in der Hilfe zu einem Cmdlet, die den Typ des oder der Rückgabeobjekte angibt oder ein „none“, wenn ein Cmdlet keine Rückgabe besitzt. Zwar hängt es von der Gewissenhaftigkeit des Autors des Cmdlets ab, ob er oder sie hier etwas einträgt, doch bei bei den meisten Cmdlets ist dies der Fall.

Die folgende kleine Function gibt zu einem Cmdlet den oder die Typen der Objekte aus, die von dem Cmdlet zurückgegeben werden.

Aufgerufen wird die Function wie folgt:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.