我使用扩展属性6来保存用户的出生日期。格式为 YYYY-MM-DD。 我试过:
Get-ADUser -Filter 'enabled -eq "true"' -Properties extensionAttribute6 | Sort-Object extensionAttribute6.substring(4,5), Name | ft Name, extensionAttribute6
但我明白:
Sort-Object : A positional parameter cannot be found that accepts argument 'System.Object[]'.
At D:\Scripts\getBirthdayList.ps1:1 char:75
+ ... ttribute6 | Sort-Object extensionAttribute6.substring(6,5), Name | ft ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Sort-Object], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SortObjectCommand
最终结果应如下所示:(按月、日、名称排序)
Name extensionAttribute6
---- -------------------
John Doe 1969-02-28
Albert Einstein 1897-03-14
Karl Meier 1973-12-01
James Bond 1975-12-22
如有任何帮助,我们将不胜感激。
您正在尝试评估表达式:
extensionAttribute6.SubString(6, 5)
作为Sort-Object
的参数之一,在这种情况下,您需要使用脚本块:
Get-ADUser .... | Sort-Object { $_.extensionAttribute6.SubString(6, 5) }, Name...
请参阅 about_Calculated_Properties #Sort-Object。
datetime
转换为 extensionAttribute6
的值,而不是使用 .SubString
:
Get-ADUser .... | Sort-Object { [datetime] $_.extensionAttribute6 }, Name...