Select-从变量计算的对象 属性

Select-Object calculated property from variable

我知道我们可以在 Select-Object -Property 参数的变量中指定以逗号分隔的字符串 [] 属性。但是,我试图在该变量中包含计算属性。尝试通过将它们括在单引号/双引号中来添加它,例如

  1. $selectProps = "distinguishedname", '@{n="lastlogontimestamp";e={[datetime]::FromFileTime($_.lastlogontimestamp).ToString()}}'

  2. $selectProps = "distinguishedname","@{n=`"lastlogontimestamp`";e={[datetime]::FromFileTime(`$_.lastlogontimestamp).ToString()}}"

    但无济于事。任何帮助将不胜感激。

如果将字符串放入变量中,则应将其用引号引起来。但由于哈希表不是字符串,因此您不必将其放在引号中。 ;-)

$selectProps = @(
    'distinguishedname',
    @{ Name = 'lastlogontimestamp'; Expression = { [datetime]::FromFileTime($_.lastlogontimestamp).ToString() } }
)

它可以在不将数组包装在 @() 中的情况下工作...这只是一种视觉支持,使其更易于阅读。

如果您想将多个具有计算属性的数组添加到您的 Select-Object 命令中,您可以像这样将它们添加在一起,例如:

Select-Object -Property ($SelectProps + $SelectProps2)