我正在尝试获取我的AD域中的用户列表及其密码到期。 在PowerShell中,我有这个:
get-aduser -filter * -properties "msDS-UserPasswordExpiryTimeComputed" | select name,samaccountname,@{Name="Expiry";Expression="msDS-UserPasswordExpiryTimeComputed"}
结果如下所示:
name samaccountname Expiry ---- -------------- ------ longneck longneck 129802700808178073
如何将该Expiry列转换为date时间? 我试过这个:
get-aduser -filter * -properties "msDS-UserPasswordExpiryTimeComputed" | select name,samaccountname,@{Name="Expiry";Expression={[datetime]::FromFileTime("msDS-UserPasswordExpiryTimeComputed")}}
但是这只会导致一个空白的Expiry列。
name samaccountname Expiry ---- -------------- ------ longneck longneck
我究竟做错了什么?
您缺less$_来指示在expression式中使用哪个对象的msDS-UserPasswordExpiryTimeComputed属性。 $_variables是pipe道中的默认当前对象。 您可以在$_."msDS-UserPasswordExpiryTimeComputed"find该值$_."msDS-UserPasswordExpiryTimeComputed" 。
Get-ADUser -Filter * -Properties "msDS-UserPasswordExpiryTimeComputed" | Select-Object name,samaccountname,@{Name="Expry";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}