2016-08-19 29 views
0

所以我有這一個班輪,返回有關AD中所有用戶的特定屬性。accountExpires屬性不改變格式

我的問題是它不斷返回「accountExpires」字段爲空,我不知道爲什麼。

如果我將腳本更改爲僅返回未格式化的屬性,但它的功能不完全可讀。

任何幫助,將不勝感激。

Get-ADUser -Filter * -Properties * | Select Name,Enabled,whenCreated,whenChanged,@{N='accountExpires';E={[DateTime]::FromFileTime($_.accountExpires)}},@{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}} 

回答

1

對我而言,ActiveDirectory模塊具有令人討厭的功能。不是在包含日期的字段(例如accountExpires)中轉換日期,而是使用包含轉換值的類似名稱呈現第二個屬性。

Get-ADUser -Filter * -Properties * | Select-Object AccountExpirationDate 

這應該會讓您遠離需要旋轉自己的轉換。

+0

有關AccountExpirationDate的事情是它必須是填寫字段,AccountExpires應該返回值9223372036854775807這意味着該帳戶沒有設置的到期日期。 像這樣: 「AccountExpirationDate: AccountExpires:9223372036854775807」 –

+0

沒有,到期可以被空或者你有以上的值表示。上面的值太大,無法轉換爲時間戳。這將拋出一個異常:'[DateTime] :: FromFileTime(9223372036854775807)',它在十六進制中看起來更漂亮('0x7FFFFFFFFFFFFFFF'),所以無論如何你最終會在日期表示中爲null。 –

+0

啊,好吧,這是有道理的。感謝Chris的幫助。 –