我有以下代码可以很好地从 AD 输出用户的显示名称和 accountExpires 属性。由于工作模式受限,我在命令行上运行它们:
$objSearch.findall() | %{" " + $_.properties.displayname + "| " + $_.properties.accountexpires}
现在我需要将此输出,特别是 accountExpires 属性转换为人类可读的日期。谷歌搜索后,我发现我可以使用类似下面的东西在 accountExpires 和 datetime 之间进行转换。
[datetime]::fromfiletime(129138320987173880)
但是我在将两者结合起来时遇到了问题。我尝试了以下方法:
$objSearch.findall() | %{" "+ $_.properties.displayname + " " + [datetime]::fromfiletime($_.properties.accountexpires)}
无法将参数“0”,值为:“System.DirectoryServices.ResultPropertyValueCollection”,将“FromFileTime”类型转换为“System.Int64”:“无法转换类型为“System.DirectoryServices.ResultPropertyValueCollection”的“System.DirectoryServices.ResultPropertyValueCollection”值" 键入 "System.Int64"。" 在 line:1 char:96 + $objSearch.findall() | %{" "+ $ .properties.displayname + " " + [datetime]::fromfiletime <<<< ($ .properties.accountexpires)} + CategoryInfo : NotSpecified: (:) [], MethodException + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument
$objSearch.findall() | %{" "+ $_.properties.displayname + " " + [datetime]::fromfiletime $_.properties.accountexpires}
表达式或语句中出现意外的标记“ ”。在 line:1 char:99 + $objSearch.findall() | %{"这是 "+ $ .properties.displayname + " " + [datetime]::fromfiletime $_ <<<< .properties.accountexpires} + CategoryInfo : ParserError: (_:String) [], ParentContainsErrorRecordException + FullyQualifiedErrorId :意外的标记
如何将 accountExpires 转换为人类可读的日期?