我需要编写一个脚本,生成一个未登录Tridion 1年的用户报告。我知道我们可以检索修改日期和所有文件的用户,但是我们如何跟踪不进行任何修改的用户的登录日期,即只进行只读访问?
答案 0 :(得分:8)
查看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数据结构(仅存储唯一键),使得key为username,value为时间戳。我打赌你可以使用Powershell使用几行代码进行所有解析(或者如果你使用Cygwin,使用grep命令的单行代码也可以做到这一点。)
日志通常位于%SystemDrive%\ inetpub \ logs \ LogFiles中,但请检查您的系统以确保该位置尚未修改。
答案 1 :(得分:3)
我从未写过这样的东西,我想到实现这一点的唯一方法是创建一个GUI扩展,它会在打开CME时向用户对象添加指示登录时间的AppData。
我不相信登录时会触发事件,否则我建议创建一个偶数系统。
您可以考虑阅读Nuno的这篇文章(http://www.tridiondeveloper.com/inheriting-metadata-on-organizational-items),它描述了执行由用户打开项目触发的操作。我的猜测是,即使用户只具有只读访问权限,它也会被触发(但你需要检查一下)。如果在所有读取操作上触发,则只要用户在CME中打开任何IdentifiableObject,就可以更新用户AppData。这将告诉您用户上次查看CME中的任何项目。
希望有所帮助
克里斯
答案 2 :(得分:3)
Mihai在此前发表过关于此的博文,这里是链接,它也有一些代码示例:http://yatb.mitza.net/2012/03/capturing-users-last-login-date-into.html
答案 3 :(得分:-1)
Tridion没有跟踪“此用户最后修改”,因此您必须自己滚动。
我想到的第一件事是写IdentifiableObject
{{1}}。在该处理程序中,您可以更新用户的handler for the Save
event属性。然后,该脚本可以简单地遍历所有用户,获取您的AppData并确定哪些用户已处于非活动状态超过一年。