0

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

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

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

    但无济于事。任何帮助都感激不尽。

4

1 回答 1

2

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

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

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

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

Select-Object -Property ($SelectProps + $SelectProps2)
于 2020-04-08T08:01:40.040 回答