使用Powershell查找Lotus Notes Internet电子邮件地址

时间:2013-03-04 18:52:40

标签: email powershell lotus-notes lotus

使用Powershell,我需要从Lotus Notes names.nsf地址簿中检索Internet电子邮件地址。

在Notes中,我可以看到我想要检索的互联网电子邮件地址。它位于“基本”选项卡上的“邮件”部分的“Internet地址”字段中。但是,我无法找到它所处的视图,或查询它或派生它的方法。在Lotus Notes的“工作/主页”选项卡上过滤公司希望查找的电子邮件地址也很有帮助。

在IE中打开其中一个names.nsf文件,我看到了许多我想要的字段,但格式化的互联网电子邮件地址不在那里。我所看到的只是Lotus笔记的电子邮件地址:

名字姓氏/ mycompany / abc @ abc

(其中的列名称为 $ 16 )。

有没有办法从Lotus Notes names.nsf地址簿中提取完整的互联网电子邮件地址?如果是这样,怎么样?如果它们处于某些可用的“隐藏”视图中,您如何查询这些隐藏视图中的值?

谢谢!

2 个答案:

答案 0 :(得分:2)

在许多情况下,用于查找Person文档的最佳视图是名为“$ Users”的隐藏视图。它几乎被您能想到的名称的每个变体编入索引,因此查找只是起作用。您可以通过从视图中打开Person文档并读取名为“InternetAddress”的NotesItem来查找它,或者您可以直接从标有“InternetAddress”的视图列中读取它,我相信这是第17列。

答案 1 :(得分:0)

您可以使用powershell从NAB访问给定用户的所有属性。如果Notes客户端是32位,则必须运行32位版本的PS。系统将提示您输入Notes ID密码。

  $notes=new-object -comobject Lotus.NotesSession;
  $notes.Initialize("");
  $ndb = $notes.getdatabase("admin","names.nsf");
  $nview = $ndb.getview('($Users)');
  $searchkey = "Schmoe"; #whatever
  $doc =$nview.getdocumentbykey($searchkey,$true);
  $mailaddress = $doc.getitemvalue('mailaddress')[0];
  $internetaddress = $doc.getitemvalue('internetaddress')[0];