Я так не думаю, так как вы не можете даже заставить PSObject идентифицировать себя как пользовательский тип, например:
PS> $obj = new-object psobject
PS> $obj.psobject.TypeNames.Insert(0,'MyCustomType')
PS> $obj.psobject.TypeNames
MyCustomType
System.Management.Automation.PSCustomObject
System.Object
PS> $obj -is [MyCustomType]
Unable to find type [MyCustomType]: make sure that the assembly
containing this type is loaded.
Однако вы можете использовать Add-Type -TypeDefinition
, чтобы посыпать определения классов на основе C #, в комплекте с наследованием, в вашем скрипте.Что касается PowerShell, это по-прежнему прежде всего оболочка командной строки и язык сценариев.Он не имеет (и, вероятно, не должен обладать) всеми функциями языка программирования общего назначения, например, Python.