Why do I get this object type in an array?

Can someone please help me understand this

This outputs the type that I would expect

In a scriptblock it outputs a string. Same thing for a function obviously.

Any help will be appreciated.

In the latter case you’re forcing the shell to evaluate the array and enumerate its contents. Given that it has one item, which is a string, that’s what you get. That’s standard .NET behavior, not really PowerShell per se.

Thanks Don. That makes sense.