Tridionに1年間ログインしていないユーザーのレポートを生成するスクリプトを作成する必要があります。変更された日付とすべてのファイルのユーザーを取得できることは知っていますが、変更を加えていない、つまり読み取り専用アクセスのみのユーザーのログイン日を追跡するにはどうすればよいでしょうか。
5 に答える
Tridion 2011 アプリケーションの IIS ログを確認します。そこには、さまざまなユーザーによる Tridion のすべてのページに対する要求が表示されます。一部のエントリは次のようになります。
2012-09-20 00:48:53 ::1 GET /WebUI/Editors/CME/Views/TridionDashboard/TridionDashboard.aspx - 81 TRIDION\Administrator ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/537.1+(KHTML,+like+Gecko)+Chrome/21.0.1180.89+Safari/537.1 200 0 0 48
上記の項目から、TridionDashboard ページ、つまりログイン後に表示される最初のページが TRIDION\Administrator ユーザーによってアクセスされたことがわかります (はい、私の Tridion VM は「TRIDION」と呼ばれ、管理者アカウントを使用してログオンします)。 )。
そのため、ログがいっぱいになったときにログが上書きされないようにして、ログを取得して解析できる場所にアーカイブする必要があります。
必要な情報はユーザー名だけです。キーがユーザー名で値がタイムスタンプになるように、何らかの種類の HashSet データ構造 (一意のキーのみを格納する) に単純にスローします。Powershell を使用して数行のコードですべての解析を実行できるに違いありません (または、Cygwin を使用している場合は、grep コマンドを使用したワンライナーでもうまくいきます)。
通常、ログは %SystemDrive%\inetpub\logs\LogFiles にありますが、システムをチェックして、場所が変更されていないことを確認してください。
Mihai は少し前にこれについてブログを書きました。ここにリンクがあります。コード例もいくつかあります: http://yatb.mitza.net/2012/03/capturing-users-last-login-date-into.html
私はこのようなことを書いたことがありません。これを達成する唯一の方法は、CME を開くたびにユーザー オブジェクトにログイン時間を示す AppData を追加する GUI 拡張機能を作成することです。
ログインが発生したときにイベントがトリガーされるとは思いません。そうでない場合は、均等なシステムを作成することをお勧めします。
Nuno によるこの記事 (http://www.tridiondeveloper.com/inheriting-metadata-on-organizational-items) を読むことを検討してください。この記事では、ユーザーがアイテムを開くことによってトリガーされるアクションの実行について説明しています。ユーザーが読み取り専用アクセスしか持っていない場合でもトリガーされると思います(ただし、これを確認する必要があります)。すべての読み取りアクションでトリガーされる場合、ユーザーが CME で IdentifiableObject を開くたびに、ユーザーの AppData を更新できます。これにより、ユーザーが最後に CME のアイテムをいつ表示したかがわかります。
それが役立つことを願っています
クリス
Load イベントを実装できます。これは、GUI のほぼすべてのアクションで呼び出されます。誰かが Tridion を使用するとすぐに、イベントが確実に呼び出されます。ただし、注意してください。非常に効率的なコードを作成する必要があります。そうしないと、システムの速度が低下します。
Tridion は「このユーザーが最後に行った変更」を追跡しないため、自分でロールを作成する必要があります。
最初に頭に浮かぶのは、 のイベントのハンドラーSave
IdentifiableObject
を作成することです。そのハンドラーで、ユーザーのApplication Dataプロパティを更新できます。その後、スクリプトはすべてのユーザーを単純にループし、AppData を取得して、1 年以上非アクティブなユーザーを特定します。