That’s how Powershell displays arrays and PSObjects as text. (Arrays go into a pair of curly braces with comma-separated values, and PSObjects are displayed like hashtable literals.) You can certainly change the text that’s displayed on screen if you like, but you’d have to decide what you want it to look like.
I’m not sure what you’re doing with that hashtable. Here’s a different approach which builds an array of objects, which are displayed in a more user-friendly way by Format-Table:
That’s easy enough, but you don’t have ComputerName or StartMode in that output, both of which were part of your original code. Should they be there as well? (If so, use the code from my previous post.)