在 PowerShell 中,可以透過以下幾種方法查詢使用者的上次登入時間。不同的方法適用於不同的情況,具體取決於你是要查詢本地計算機上的使用者資訊,還是要查詢 Active Directory 中的使用者資訊。
1. 查詢本地計算機上的使用者上次登入時間
要查詢本地計算機上使用者的上次登入時間,可以使用 Get-LocalUser
和 Get-WmiObject
結合 Win32_NetworkLoginProfile
類來獲取使用者的登入資訊:
powershellCopy Code
# 獲取所有本地使用者的上次登入時間
Get-WmiObject Win32_NetworkLoginProfile | Select-Object Name, LastLogon
這個命令會列出所有本地使用者的上次登入時間。
2. 查詢 Active Directory 中的使用者上次登入時間
如果你的計算機是域環境中的一部分,你可能需要查詢 Active Directory 中使用者的上次登入時間。為此,你需要安裝並匯入 Active Directory 模組:
powershellCopy Code
# 確保 Active Directory 模組已安裝
Import-Module ActiveDirectory
# 查詢指定使用者的上次登入時間
Get-ADUser -Identity username -Properties LastLogonDate | Select-Object Name, LastLogonDate
替換 username
為你要查詢的使用者的使用者名稱。這個命令會返回使用者的名稱和上次登入的日期。
3. 查詢所有域使用者的上次登入時間
如果你需要查詢所有域使用者的上次登入時間,可以使用以下指令碼:
powershellCopy Code
# 匯入 Active Directory 模組
Import-Module ActiveDirectory
# 查詢所有域使用者的上次登入時間
Get-ADUser -Filter * -Properties LastLogonDate | Select-Object Name, LastLogonDate
這個指令碼會列出所有域使用者及其上次登入時間。
4. 查詢上次登入時間的進一步細化
如果你需要更詳細的資訊,比如包括使用者的 SID、域控制器等,可以進一步擴充套件查詢:
powershellCopy Code
# 匯入 Active Directory 模組
Import-Module ActiveDirectory
# 查詢所有使用者的詳細上次登入時間資訊
Get-ADUser -Filter * -Properties LastLogon, LastLogonTimestamp | Select-Object Name, LastLogon, LastLogonTimestamp
LastLogon
是一個更精確的屬性,但它不是在所有域控制器上同步的。LastLogonTimestamp
是一個更接近於所有域控制器同步的屬性,但它可能不是完全準確的,通常有延遲。
透過這些方法,你可以獲取到使用者的上次登入時間,無論是本地計算機還是 Active Directory 環境中的使用者。