9 horas ... comienzo a una respuesta.
En Powershell todo lo que manipulas es un objeto.
modo "Servidor:" es un objeto, $ a es un objeto
PS> "server :".gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
Write-output
es un cmdlet que puso objeto en una especie de lista (un tubo) para ser utilizado por otros cmdlets o scripts. Entonces, realmente no hay una nueva línea entre "Servidor:" y "foo". Es la forma en que la consola te muestra una lista (una matriz) de objetos. Como se puede ver aquí debajo:
PS> $a = "foo"
PS> (Write-Output "Server :" $a).gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
Es evidente que es un resumen aquí, pero espero que pueda hacerte entender.
'Write-Output "servidor: $ a"' –
@empo: Debe presentar esto como una respuesta. En mi opinión, es más directo y relevante que la única respuesta hasta ahora. –