none
[問題]列出AD內所有電腦的Last Logon Time.!? RRS feed

  • 問題

  •  

    有沒有什麼辦法可以列出AD內所有電腦的Last Logon Time呢!?

     

    因為公司內的電腦還蠻多的.

    有些電腦已經壞掉或有問題.

     

    但AD上卻都沒有清除.

     

    所以想將Last Logon Time 超過一年的電腦刪除.

     

     

    2007年12月13日 上午 06:28

解答

  • Last logon time 不代表這部電腦屬於 stale object. 以電腦物件來看, 應以 pwdLastSet 來做判斷. 判斷條件為超過 60 日的可被視為 stale object.  因為電腦物件會每 60 天自動與 DC 變更密碼一次. 因此你可以透過 ldifde 或是 csvde 來撈 AD 裡面的電腦物件, 包含 pwdLastSet 的屬性.

    • 無論是 lastLogonTime 或是 logonTimeStamp 的值是一個 Large interge. 因此需要轉換才能找出正確的日期. 同時這兩個屬性皆不是完全正確的最後登入日期. 僅供參考值而已. 原因是有多部 DC 時, 每部 DC 內所記載相同物件的 lastLogonTime ( 或是 lastLogonTimeStamp) 皆不同.
    • 因為上面所描述, 所以建議使用 pwdLastSet 來判斷最準確.

    補充一個指令提供參考, 還可以使用 dsquery 來 query DC 內的物件; 包含電腦物件.

    範例: 找出 Contoso.com 中 Computers OU 內所有電腦超過 60 天未更換密碼的物件

           dsquery ou=computers,dc=contoso,dc=com -stalepwd 60

    2007年12月13日 上午 06:47

所有回覆

  • Last logon time 不代表這部電腦屬於 stale object. 以電腦物件來看, 應以 pwdLastSet 來做判斷. 判斷條件為超過 60 日的可被視為 stale object.  因為電腦物件會每 60 天自動與 DC 變更密碼一次. 因此你可以透過 ldifde 或是 csvde 來撈 AD 裡面的電腦物件, 包含 pwdLastSet 的屬性.

    • 無論是 lastLogonTime 或是 logonTimeStamp 的值是一個 Large interge. 因此需要轉換才能找出正確的日期. 同時這兩個屬性皆不是完全正確的最後登入日期. 僅供參考值而已. 原因是有多部 DC 時, 每部 DC 內所記載相同物件的 lastLogonTime ( 或是 lastLogonTimeStamp) 皆不同.
    • 因為上面所描述, 所以建議使用 pwdLastSet 來判斷最準確.

    補充一個指令提供參考, 還可以使用 dsquery 來 query DC 內的物件; 包含電腦物件.

    範例: 找出 Contoso.com 中 Computers OU 內所有電腦超過 60 天未更換密碼的物件

           dsquery ou=computers,dc=contoso,dc=com -stalepwd 60

    2007年12月13日 上午 06:47
  •  

    感謝您的回答.

    最後用下列指令取得了所要的資訊.

    dsquery computers -stalepwd 60

     

     

    另外想請問. 有辦法取得電腦最後登入的IP 嗎!?

     

     

     

     

    2007年12月13日 上午 07:04
  • 可以.

    在 eventlog 的 security log 中, 檢視 source=security, ID=540 的事件. 該事件會記錄電腦何時登入, 是以 kerberos 或是其他的驗證方式登入. 同時也包含了電腦的 IP. 但一個個檢查這樣的事件其實蠻累的. 因此我的做法是透過 SCOM 來跑報表比較快.

    2007年12月13日 上午 07:44
  •  

    謝謝你的回答.

    但公司沒有買SCOM. 只有SCCM.

     

    我再來跟老闆提看看囉~~

     

     

    ^^"

    2007年12月13日 上午 08:04