2016-07-12 48 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。这是访问登录日期的绝佳解决方案,并且可以极大地帮助我们进行帐户维护。谢谢! –

相关问题