Das Cmdlet Add-Type funktioniert nicht direkt mit Get-Member weil Add-Type normalerweise kein Ausgabeobjekt hat, auf das Get-Member angewendet werden kann. Das Cmdlet Get-Disk gibt als Standardobjekt eine Liste aller Festplatten aus die von Get-Member erkannt werden.
Wenn du Add-Type verwendest, um einen benutzerdefinierten Typ zu erstellen, würde dieser Typ dann seine eigenen Eigenschaften und Methoden haben, auf die du mit Get-Member zugreifen könntest.
$sourceCode = @"
public class MathFunctions {
public static int Add(int a, int b) {
return a + b;
}
}
"@
Diese Klasse kannst du mit Add-Type laden.
Add-Type -TypeDefinition $sourceCode
Das erstellt die Klasse als Typ "System.Runtime". Du kannst die Methode jetzt mit
[MathFunctions]::Add(2, 3)
aufrufen. Die Methode wird nicht als direktes Mitglied des Typs angezeigt, wenn du Get-Member verwendest. Das liegt daran, dass Add-Type eine statische Methode in eine Klasse einbettet und statische Methoden in PowerShell nicht wie Instanzmethoden behandelt werden. Um die Methode Add anzuzeigen, könntest du den Typ mit GetMethods filtern, um nur statische Methoden anzuzeigen.
[MathFunctions] | Get-Member -Static -MemberType Method