0

我正在使用Windows PowerShell 的 Active Directory 模块从 Active Directory 中导出某些值。如何以与列出的属性相同的顺序显示结果?当我运行此命令时,我会按字母顺序列出所有可用的属性。但我想要和期望的是只获取我在哈希表中列出的属性,其顺序与哈希表相同。

$GetADUserOptions = @{
    properties = @(
    "employeeID",
    "employeeNumber",
    "whencreated",
    "wWWHomePage",
    "c",
    "CO"
    )
}
Get-ADUser @GetADUserOptions

我错过了什么?

4

1 回答 1

1

您无法控制 Active Directory 或模块将属性返回给您的顺序。

但是,如果您对结果数据所做的事情是导出到 CSV(甚至只是控制台)之类的东西,并且您关心列的顺序,那么只需Select-Object在导出之前使用您想要的顺序即可。

您可以像 @AdminOfThings 这样建议的那样从 splat 传递数组

Get-ADUser @GetADUserOptions | Select-Object $GetADUserOptions.properties

或者您可以显式执行此操作,这也允许对默认情况下不太易于人类阅读的属性进行一些后处理,例如lastLogonTimestampor pwdLastSet

# assuming lastLogonTimestamp was added to your list of properties
Get-ADUser @GetADUserOptions | Select-Object sAMAccountName,@{
    Label='LastLogonTS'
    Expression={
        [DateTime]::FromFiletime($_.lastLogonTimestamp)
    }
}
于 2019-11-05T16:40:55.703 回答