2016-07-12 12 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

はこれです関連性? http://stackoverflow.com/questions/26657780/get-user-created-date-in-sitecore(作成された日付について話していますが、ユーザー情報を取得するために2人のユーザーが別のアプローチを取っているようです) – TessellatingHeckler

答えて

2

Get-UserそのProfile性がSystem.Web.Profile.ProfileBaseから継承Sitecore.Security.UserProfileある意志出力一つ以上Sitecore.Security.Accounts.User、。したがって、LastActivityDateプロパティは、Sitecore以外のプロファイルにアクセスすることで得られるプロパティと同じにする必要があります。

しかし、プロファイルデータにアクセスするだけで最後の活動日が更新される可能性があります。

ユーザのLastActivityDateは System.Web.ProfileのクラスとSystem.Web.UI.WebControls.WebPartsによって更新されたユーザデータは、データにから取得または設定されているときはいつでも 名前空間ソース: ...

このように、プロファイルへのアクセスを避けることができ、代わりにMembershipUsersを取得できます。

[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 } } 

あなたが最後のアクティビティの日付を更新せずに、プロファイルにアクセスする必要がある場合、あなたも試してみてください:MembershipUserは、私はあなたが後にしているものだと思いますLastLoginDateという名前のプロパティを持ってい

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

私は、アクセスしているプロフィールがLastActivityDateを更新するのは間違いないと思います。これはログイン日時にアクセスするための優れた解決策であり、アカウントのメンテナンスに大きく役立ちます。ありがとう! –

関連する問題