Когда вы передаете VersionInfo.ProductVersion
в качестве аргумента параметра функции, PowerShell интерпретирует его как строку «VersionInfo.ProductVersion» и начинает поиск свойства с этим точным именем . Но объект FileInfo
не имеет такого свойства, поэтому он не работает.
Вам понадобится вычисленное свойство, чтобы получить значения свойств VersionInfo
:
Get-Item ... |Select Name,Length,@{Name='ProductVersion';Expression={$_.VersionInfo.ProductVersion}},@{Name='FileVersion';Expression={$_.VersionInfo.FileVersion}},CreationTime,LastAccessTime,LastWriteTime
Вы также можете заранее подготовить все имена свойств в виде массива:
$ItemProperties = @(
'Name'
'Length'
@{Name = 'ProductVersion'; Expression = {$_.VersionInfo.ProductVersion}}
@{Name = 'FileVersion'; Expression = {$_.VersionInfo.FileVersion}}
'CreationTime'
'LastAccessTime'
'LastWriteTime'
)
Get-Item ... |Select $ItemProperties