Expandindo atributos de objeto em strings Powershell entre aspas duplas

Expandindo atributos de objeto em strings Powershell entre aspas duplas

Sou bastante novo no Powershell e estou enfrentando um problema ao expandir o valor de um atributo de objeto em uma String entre aspas duplas. Alguém pode me explicar isso: eu esperaria que você escrevesse "$(var.attr)", mas isso falha, aqui está um exemplo que descreve o problema:

     PS C:\WINDOWS\system32> $c = Get-Volume -DriveLetter 'C'
PS C:\WINDOWS\system32> $c.Size
126696288256
PS C:\WINDOWS\system32> "$c.size"
MSFT_Volume (ObjectId = "{1}\\KEPPLAPTOP3\root/Microsoft/Windows...).size
PS C:\WINDOWS\system32> "$(c.size)"
c.size : The term 'c.size' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:4
+ "$(c.size)"
+    ~~~~~~
    + CategoryInfo          : ObjectNotFound: (c.size:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Como você pode ver, posso exibir facilmente o atributo Size do objeto $c, quando não está em uma string entre aspas duplas, quando tento expandir sem parênteses, ele apenas expande o objeto, mas quando incluo o object.attr entre parênteses, ele não consegue reconhecer a expressão. O que estou fazendo de errado aqui?

informação relacionada