O Powershell expande automaticamente as variáveis entre aspas duplas. Em vez de retornar o nome propery do seu objeto, ele retorna o que ele acha que é o valor que você precisa.
Se você quiser selecionar o atributo name, você pode fazer assim:
gci test.* | % { "Name: $($_.Name)" }
Isso força o Powershell a avaliar a expressão nas chaves primeiro, para que concatene apenas a sua string e a propriedade name.
Uma abordagem melhor para isso seria:
gci test.* | select name
Por que você quer transformá-lo em uma string que elimina a ligação de parâmetros orientada a objeto dos pipelines?
Editar:
A melhor abordagem é a saída de material para um arquivo como este:
foreach($file in (gci test.*))
{
("Name: {0} is here {1}" -f $file.name,$file.fullname) | out-file C:\temp\log.txt -Append -Encoding utf8
}