2017-02-20 120 views
1

我試圖從PowerShell搜索Lotus Notes數據庫並獲取"Type Mismatch. (Exception from HResult: 0x80020005 (DISP_E_TYPEMISMATCH)" At line 1: char:1從PowerShell搜索Lotus Notes數據庫

設置代碼:

$notesSession = New-Object -ComObject Lotus.NotesSession 
$notesSession.Initialize() 
$notesDb = $notesSession.GetDatabase(..., ...) 

努力時,我得到的錯誤...

$results = $notesDb.Search("text", $null, 0) 
$results = $notesDb.Search("text", $(Get-Date), 0) 
$results = $notesDb.Search("text", $([System.DateTime]::Now), 0) 

任何人能發現錯誤了嗎?我認爲這個錯誤與日期參數有關,因此我嘗試了多次。

回答

2

該錯誤似乎來自.Search wants a notesDateTime object for that parameter這一事實。所以理論上你只需要創建一個notesdatetime對象並將其傳遞給搜索方法。

$searchDate = $notesSession.CreateDateTime(get-date -f "yyyy-MM-dd") 

我不是在一個位置,以檢驗這個我也不是知道怎麼去從這個短傳$空的CreateDateTime方法的返回null。

Unsure if this is the correct reference for the COM implementation但是從參數部分

你想要的對象來表示的日期和時間。如果使用空字符串(「」),則日期設置爲通配符日期。 Notes支持日期 - 時間表達式「今天」,「明天」和「昨天」。

+0

受過教育的猜測這是你的問題。可能沒有一個可行的解決方案。如果我不正確,我會刪除它。 – Matt

+0

謝謝,我錯過了'.CreateDateTime'方法,傻了我。現在得到一個公式錯誤!戰鬥繼續... – Federer