Soy bastante nuevo en Powershell y tengo un problema al expandir el valor de un atributo de objeto en una cadena entre comillas dobles. ¿Puede alguien explicarme esto? Esperaría que escribiera "$(var.attr)", pero esto falla. Aquí hay un ejemplo que describe el 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 puede ver, puedo mostrar fácilmente el atributo Tamaño del objeto $c, cuando no está en una cadena entre comillas dobles, cuando intento expandir sin paréntesis, solo expande el objeto, pero cuando incluyo object.attr entre paréntesis, no puede reconocer la expresión. ¿Qué estoy haciendo mal aquí?