2016-07-12 53 views
4

我正在編寫一個非常簡單的Sitecore PowerShell腳本來報告我們系統中的所有用戶。我們想知道每個用戶的最後登錄日期,但我沒有好運。我可以訪問$ _。Profile.LastActivityDate,但這沒有幫助,因爲它對所有用戶來說都是相同的值。任何想法的表達是什麼訪問上次登錄日期,或我如何找到它?謝謝。Sitecore Powershell:查找用戶上次登錄?

Get-User -Filter * | 

Show-ListView -Property @{Label="User"; Expression={ $_.Profile.UserName} }, 
    @{Label="Full Name"; Expression={ $_.Profile.FullName} }, 
    @{Label="Email"; Expression={ $_.Profile.Email} }, 
    @{Label="Logged In"; Expression={ $_.Profile.LastActivityDate } } 

Close-Window 
+1

是這樣的:

[System.Web.Security.Membership]::GetAllUsers() | Show-ListView -Property @{Label="User"; Expression={ $_.UserName} }, @{Label="Is Online"; Expression={ $_.IsOnline} }, @{Label="Creation Date"; Expression={ $_.CreationDate} }, @{Label="Last Login Date"; Expression={ $_.LastLoginDate} }, @{Label="Last Activity Date"; Expression={ $_.LastActivityDate } } 

如果您需要訪問配置文件,而無需更新上次活動日期,您也可以嘗試有關? http://stackoverflow.com/questions/26657780/get-user-created-date-in-sitecore(它談論的是創建日期,但它看起來像兩個人正在採取不同的方法來獲取用戶信息) – TessellatingHeckler

回答

2

Get-User將輸出一個或多個Sitecore.Security.Accounts.User,其Profile屬性是一個Sitecore.Security.UserProfileSystem.Web.Profile.ProfileBase繼承。因此,LastActivityDate屬性應該與您通過訪問Sitecore外部的配置文件相同。

也就是說,簡單訪問配置文件數據有可能會更新上次活動日期。

用於用戶的LastActivityDate通過在 System.Web.Profile的類和System.Web.UI.WebControls.WebParts更新 命名空間每當用戶數據從檢索或設置在數據 來源。 ...

因此,您可能能夠避免訪問配置文件,而是檢索MembershipUsers。 MembershipUser有一個名爲LastLoginDate屬性我想這是你追求的:

[System.Web.Security.Membership]::GetUser("sitecore\admin", $false) 
+1

我相信你是正確的訪問配置文件會更新LastActivityDate。這是訪問登錄日期的絕佳解決方案,並且可以極大地幫助我們進行帳戶維護。謝謝! –

相關問題