2013-03-04 94 views
0

使用Powershell,我需要從Lotus Notes names.nsf地址簿中檢索Internet電子郵件地址。使用Powershell查找Lotus Notes Internet電子郵件地址

在Notes中,我可以看到我想要檢索的Internet電子郵件地址。它位於「郵件」部分的「基本」選項卡上的「Internet地址」字段中。但是,我一直無法找到它所處的視圖,或者查詢它或派生它的方法。在Lotus Notes中的「工作/主頁」選項卡上過濾公司希望找到的電子郵件地址也很有幫助。

在IE中打開其中一個names.nsf文件,我看到了一些我想要的字段,但格式化的Internet電子郵件地址不在那裏。我看到的是Lotus Notes電子郵件地址的方式:

名姓/ myCompany中/ ABC @ ABC

(即在名爲$ 16個列名)。

有沒有辦法從Lotus Notes names.nsf地址簿中提取完整的互聯網電子郵件地址?如果是這樣,怎麼樣?如果他們在某些「隱藏」視圖可用,如何查詢這些隱藏視圖中的值?

謝謝!

+1

一些提示這裏:http://stackoverflow.com/a/10648847/520612 – 2013-03-04 20:24:13

回答

2

在很多情況下,用於查找Person文檔的最佳視圖是名爲「$ Users」的隱藏視圖。它被索引了幾乎所有你能想到的名字的變體,所以查找只是傾向於工作。你可以從視圖中打開Person文檔並閱讀名爲「InternetAddress」的NotesItem,或者直接從標有「InternetAddress」的視圖列中讀取它,我相信這是第17列。

+0

你如何查詢/列出($用戶)隱藏的看法?當我列出可用的視圖時,我可以看到($ Users),但看不到其中的任何項目。 – 2013-03-05 13:37:54

+1

Notes類的最佳文檔位於Domino Designer幫助文件中。我建議你安裝它,並用它作爲參考,即使你沒有用它來進行實際的開發。由於您沒有顯示任何代碼,而且我也不瞭解PowerShell或任何關於如何編寫此代碼的內容,所以我可以做的最好的事情就是向您展示可以在LotusScript中完成的方式之一。設置myView = Database.getView(「$ Users」); set myEntry = myView.GetEntryByKey(「username goes here」,true); myInternetAddress = myEntry.columnValues(18)。 (我不是100%肯定這個值是18.) – 2013-03-05 15:41:12

+0

我發現我一直在做錯了 - 我選擇了第一個文檔,而不是在後面抓取任何東西。它每次都返回相同的空文檔。我確實有一個後續問題 - 我正在做$ doc = $ view.getfirstdocument()然後一段時間$ doc -ne $ null通過並獲取有意義的數據 - $ internetAddress = [string] $ doc.GetItemValue(「InternetAddress 「)並寫出來。但是,我發現$ Users視圖中有重複項。我怎樣才能做到這一點,但只抓住不同的價值觀(沒有> 1次傳球)? – 2013-03-05 17:33:26

0

您可以使用powershell從NAB訪問給定用戶的所有屬性。如果您的Notes客戶端是32位,則必須運行32位版本的PS。系統會提示您輸入Notes標識密碼。

$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]; 
相關問題