Вы получаете System.RuntimeType от [Math], потому что это то, что есть. Это тип класса, в отличие от объекта этого конкретного типа. Вы на самом деле не создали объект [Math]. Вы получите тот же вывод, если наберете:
[String] | gm
Однако, если вы сконструировали строковый объект из типа String, вы получите строковые члены:
PS C:\> [String]("hi") | gm
TypeName: System.String
Name MemberType Definition
---- ---------- ----------
Clone Method System.Object Clone()
CompareTo Method System.Int32 CompareTo(Object value), System.Int32 CompareTo(String strB)
Contains Method System.Boolean Contains(String value)
CopyTo Method System.Void CopyTo(Int32 sourceIndex, Char[] destination, Int32 destinationIn...
etc...
Поскольку System.Math имеет только статические члены, вы не можете создать его объект. Чтобы увидеть его участников, вы можете использовать функцию GetMembers () System.RuntimeType:
[Math].GetMethods()
Вы можете использовать один из командлетов format- * для форматирования вывода:
[Math].GetMethods() | format-table
Редактировать: О, и я должен добавить, чтобы вызвать один из статических членов, вы бы сделали это так:
[Math]::Cos(1.5)